demian-cli 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,158 @@
1
+ # Demian TUI
2
+
3
+ **Demian**은 로컬 터미널에서 사용하는 코딩 에이전트입니다. 프로젝트를
4
+ 읽고, 질문에 답하고, 파일을 수정하고, 명령 실행 전 권한을 묻고, 긴 작업을
5
+ `/goal`로 관리하며, 필요하면 `/cowork`로 여러 하위 에이전트를 조율합니다.
6
+
7
+ [English documentation](../../README.md)
8
+
9
+ ## 빠른 시작
10
+
11
+ ```sh
12
+ npm install -g demian-cli
13
+ cd ~/work/my-project
14
+ demian
15
+ ```
16
+
17
+ TUI에서:
18
+
19
+ - `p`: provider 선택
20
+ - `m`: model 입력
21
+ - `a`: agent 선택
22
+ - `Enter`: 메시지 전송
23
+ - `y`: 권한 1회 허용
24
+ - `a`: 같은 범위 항상 허용
25
+ - `n` 또는 `Enter`: 거부
26
+
27
+ 첫 질문 예시:
28
+
29
+ ```text
30
+ 이 저장소 구조를 요약하고 주요 진입점을 알려줘.
31
+ ```
32
+
33
+ ## Provider 설정
34
+
35
+ Demian은 다음 순서로 설정을 읽습니다.
36
+
37
+ 1. 기본값
38
+ 2. `~/.demian/config.json`
39
+ 3. `~/.demian/config.jsond`
40
+ 4. 작업 디렉터리의 `.demian/config.json`
41
+ 5. 작업 디렉터리의 `.demian/config.jsond`
42
+ 6. `--config <path>`
43
+ 7. `.demian/preferences.json`
44
+ 8. CLI 플래그
45
+
46
+ 예시:
47
+
48
+ ```jsonc
49
+ {
50
+ "defaultProvider": "openai",
51
+ "providers": {
52
+ "openai": {
53
+ "type": "openai-compatible",
54
+ "baseURL": "https://api.openai.com/v1",
55
+ "apiKeyEnv": "OPENAI_API_KEY",
56
+ "model": "gpt-5.5"
57
+ }
58
+ }
59
+ }
60
+ ```
61
+
62
+ API key는 공유 설정 파일에 직접 쓰기보다 `apiKeyEnv`를 권장합니다.
63
+
64
+ ## Claude 관련 provider
65
+
66
+ - `anthropic`: Anthropic API key를 사용하는 직접 API provider입니다.
67
+ - `claudecode`: 로컬 Claude Code 설치와 로그인/구독 경로를 사용하는 외부
68
+ agent runtime입니다.
69
+
70
+ 예시:
71
+
72
+ ```sh
73
+ demian --provider claudecode --model claude-sonnet-4-6
74
+ ```
75
+
76
+ 기본 Claude Code 모델 alias:
77
+
78
+ - `claude-sonnet-4-6`
79
+ - `claude-opus-4-7`
80
+
81
+ ## Goal Mode
82
+
83
+ 긴 작업은 `/goal`로 시작합니다.
84
+
85
+ ```text
86
+ /goal README를 갱신하고 관련 검증을 통과한 뒤에만 완료해 줘.
87
+ ```
88
+
89
+ 유용한 명령:
90
+
91
+ - `/goal status`
92
+ - `/goal pause`
93
+ - `/goal resume`
94
+ - `/goal clear`
95
+
96
+ 목표 상태는 `.demian/goals/` 아래에 저장됩니다.
97
+
98
+ ## Cowork Mode
99
+
100
+ 여러 관점이 필요한 작업은 `/cowork`를 사용합니다.
101
+
102
+ ```text
103
+ /cowork 한 에이전트는 API 계층을 보고, 다른 에이전트는 UI 흐름을 검토해서 원인을 비교해 줘.
104
+ ```
105
+
106
+ Demian이 main coordinator이고, cowork member들은 제한된 역할의 하위
107
+ 에이전트로 실행됩니다.
108
+
109
+ ## Plain CLI
110
+
111
+ 스크립트나 raw Markdown 출력이 필요하면 `demian-plain`을 사용합니다.
112
+
113
+ ```sh
114
+ demian-plain "릴리스 체크리스트를 만들어 줘"
115
+ demian-plain --image screenshot.png "이 UI 문제를 설명해 줘"
116
+ ```
117
+
118
+ ## 자주 쓰는 명령
119
+
120
+ ```sh
121
+ demian
122
+ demian --provider openai --model gpt-5.5
123
+ demian --provider claudecode --model claude-sonnet-4-6
124
+ demian --single-agent
125
+ demian --multi-agent
126
+ demian --sandbox read-only
127
+ demian-plain "프로젝트 구조를 요약해 줘"
128
+ ```
129
+
130
+ TUI 내부 명령:
131
+
132
+ - `/compact`: 오래된 대화 압축
133
+ - `/stop`: 현재 작업 중단
134
+ - `/exit` 또는 `/quit`: 종료
135
+ - `/goal ...`: 검증이 필요한 목표 시작
136
+ - `/cowork ...`: cowork 에이전트 조율
137
+
138
+ ## 저장 위치
139
+
140
+ - `~/.demian/config.json(d)`: 사용자 설정
141
+ - `.demian/config.json(d)`: 프로젝트 설정
142
+ - `.demian/preferences.json`: workspace별 provider/model 선택
143
+ - `.demian/grants.json`: persistent permission grant
144
+ - `.demian/goals/`: goal 상태
145
+
146
+ ## 문제 해결
147
+
148
+ TUI가 실행되지 않으면 `demian-plain`을 사용하거나 Node 버전을 확인하세요.
149
+
150
+ ```sh
151
+ node --version
152
+ ```
153
+
154
+ Claude Code가 동작하지 않으면 설치 경로를 확인하세요.
155
+
156
+ ```sh
157
+ ~/.local/bin/claude --version
158
+ ```
@@ -0,0 +1,9 @@
1
+ <svg width="128" height="128" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
2
+ <title>Demian sidebar concept 03 - egg silhouette with bird</title>
3
+ <path d="M25 72c0-35 17-62 39-62s39 27 39 62c0 31-15 50-39 50S25 103 25 72Z" fill="#FFF7D6"/>
4
+ <path d="M38 62c0-22 12-38 30-38 16 0 26 12 28 30l16 7-16 7c-3 15-14 22-32 22H49c-7 0-11-8-11-28Z" fill="#FACC15" stroke="#111827" stroke-width="4" stroke-linejoin="round"/>
5
+ <circle cx="74" cy="43" r="6" fill="#111827"/>
6
+ <path d="M25 79l7-7 7 7 7-7 7 7 7-7 7 7 7-7 7 7 7-7 7 7 7-7 7 7c0 27-17 43-48 43S25 106 25 79Z" fill="#FFF7D6"/>
7
+ <path d="M25 79l7-7 7 7 7-7 7 7 7-7 7 7 7-7 7 7 7-7 7 7 7-7 7 7" fill="none" stroke="#111827" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
8
+ <path d="M109 79c0 27-17 43-48 43S25 106 25 79" fill="none" stroke="#111827" stroke-width="4" stroke-linecap="round"/>
9
+ </svg>
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "demian-cli",
3
+ "version": "1.0.3",
4
+ "description": "Local terminal coding agent with TUI, goals, cowork agents, permissions, and provider switching.",
5
+ "type": "module",
6
+ "icon": "media/demian.svg",
7
+ "bin": {
8
+ "demian": "bin/demian",
9
+ "demian-cli": "bin/demian-cli.js",
10
+ "demian-plain": "bin/demian-plain.js"
11
+ },
12
+ "exports": {
13
+ ".": "./dist/index.mjs",
14
+ "./cli": "./dist/cli.mjs",
15
+ "./vscode-worker": "./dist/vscode-worker.mjs"
16
+ },
17
+ "files": [
18
+ "architecture.md",
19
+ "architecture-tui.md",
20
+ "bin",
21
+ "dist",
22
+ "docs",
23
+ "media",
24
+ "README.md",
25
+ "tsconfig.json"
26
+ ],
27
+ "scripts": {
28
+ "build": "esbuild src/index.ts src/tui.ts src/cli.ts src/vscode-worker.ts --bundle --platform=node --format=esm --target=node22 --outdir=dist --out-extension:.js=.mjs --loader:.ts=ts --define:process.env.DEV=\\\"false\\\" --external:@anthropic-ai/claude-agent-sdk-* --external:ink --external:react --external:react-devtools-core --banner:js=\"import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);\"",
29
+ "prepack": "npm run build",
30
+ "test": "node --experimental-strip-types --test test/*.test.ts",
31
+ "smoke": "npm run smoke:tui && npm run smoke:plain",
32
+ "smoke:tui": "bin/demian --help",
33
+ "smoke:plain": "bin/demian-plain.js --help"
34
+ },
35
+ "engines": {
36
+ "node": ">=22.18"
37
+ },
38
+ "dependencies": {
39
+ "@anthropic-ai/claude-agent-sdk": "0.3.143",
40
+ "@anthropic-ai/sdk": "0.96.0",
41
+ "chalk": "^5.4.1",
42
+ "cli-highlight": "^2.1.11",
43
+ "highlight.js": "^11.11.1",
44
+ "ink": "^5.0.1",
45
+ "marked": "^15.0.7",
46
+ "react": "^18.3.1",
47
+ "slice-ansi": "^7.1.0",
48
+ "string-width": "^7.2.0",
49
+ "wrap-ansi": "^9.0.0"
50
+ },
51
+ "devDependencies": {
52
+ "esbuild": "^0.24.0"
53
+ },
54
+ "keywords": [
55
+ "agent",
56
+ "coding-agent",
57
+ "openai-compatible",
58
+ "cli"
59
+ ],
60
+ "repository": {
61
+ "type": "git",
62
+ "url": "git+https://github.com/pydemia/demian.git",
63
+ "directory": "nodejs"
64
+ },
65
+ "author": "pydemia",
66
+ "license": "Apache-2.0"
67
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "strict": true,
7
+ "allowImportingTsExtensions": true,
8
+ "noEmit": true,
9
+ "types": [
10
+ "node"
11
+ ]
12
+ },
13
+ "include": [
14
+ "src/**/*.ts",
15
+ "test/**/*.ts"
16
+ ]
17
+ }