@opendots/cli 0.0.0-stage → 1.0.41

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.
Files changed (185) hide show
  1. package/LICENSE.md +12 -0
  2. package/README.md +1208 -2
  3. package/bin/dscode.exe +12 -0
  4. package/bin/stt/requirements.txt +20 -0
  5. package/bin/stt/stt_server.py +544 -0
  6. package/bin/tts/requirements.txt +21 -0
  7. package/bin/tts/tts_server.py +404 -0
  8. package/cli-wrapper.cjs +109 -0
  9. package/install.cjs +331 -0
  10. package/llms.txt +115 -0
  11. package/package.json +56 -4
  12. package/scripts/figure/compose.py +363 -0
  13. package/scripts/figure/replay-shots.mjs +205 -0
  14. package/web/dist/assets/AssistantsView-dhdYVIy0.js +1 -0
  15. package/web/dist/assets/AutomationView-D1dU5ZV7.js +1 -0
  16. package/web/dist/assets/ChannelConfigView-CEPVZntU.js +8 -0
  17. package/web/dist/assets/ChartsView-DdN-beHW.js +1 -0
  18. package/web/dist/assets/ConnectorsView-CseCss9C.js +1 -0
  19. package/web/dist/assets/FileTreeView-Dnc3-gRF.js +1 -0
  20. package/web/dist/assets/HookConfigView-DA2h4HdJ.js +1 -0
  21. package/web/dist/assets/InputArea-DAgOOjOc.js +14 -0
  22. package/web/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  23. package/web/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  24. package/web/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  25. package/web/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  26. package/web/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  27. package/web/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  28. package/web/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  29. package/web/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  30. package/web/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  31. package/web/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  32. package/web/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  33. package/web/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  34. package/web/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  35. package/web/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  36. package/web/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  37. package/web/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  38. package/web/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  39. package/web/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  40. package/web/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  41. package/web/dist/assets/MemoryView-D6OUBi4-.js +1 -0
  42. package/web/dist/assets/MessageBubble-CCTRbIMZ.css +1 -0
  43. package/web/dist/assets/MessageBubble-CV16DZMG.js +453 -0
  44. package/web/dist/assets/ModelsView-BuqD9vWl.js +1 -0
  45. package/web/dist/assets/PluginsView-CIziDHFJ.js +2 -0
  46. package/web/dist/assets/ProjectsView-c6faWy32.js +1 -0
  47. package/web/dist/assets/SessionGrid-BZJHcklh.js +4 -0
  48. package/web/dist/assets/SessionGrid-Bk5CAXEn.css +1 -0
  49. package/web/dist/assets/SettingsModal-BqdGEGW-.js +4 -0
  50. package/web/dist/assets/SkillsView-CB6CKkmb.js +1 -0
  51. package/web/dist/assets/TemplatesTab-B8efVwVZ.js +1 -0
  52. package/web/dist/assets/ThreadsView-CDoM0aNb.js +2 -0
  53. package/web/dist/assets/ToolsView-BG-xsWsO.js +1 -0
  54. package/web/dist/assets/abnfDiagram-WEYOIA3C-DGUPHfRO.js +1 -0
  55. package/web/dist/assets/agentIconSet-Btsb_SC4.js +1 -0
  56. package/web/dist/assets/api-CCt9DRQm.js +1 -0
  57. package/web/dist/assets/arc-Y1ARJVZ4.js +1 -0
  58. package/web/dist/assets/architecture-WOLXFQ4H-BUERx_-B.js +1 -0
  59. package/web/dist/assets/architectureDiagram-ZHVYKT53-BPsQL7O5.js +36 -0
  60. package/web/dist/assets/array-BifhSqXX.js +1 -0
  61. package/web/dist/assets/blockDiagram-RJAE7QA3-pB7EXp6p.js +140 -0
  62. package/web/dist/assets/c4Diagram-XDPPPE54-BnPeCq_L.js +38 -0
  63. package/web/dist/assets/channel-CSrLW66f.js +1 -0
  64. package/web/dist/assets/channelMeta-BGQXQxgj.js +1 -0
  65. package/web/dist/assets/chunk-2E7WHVMD-xX282MrC.js +88 -0
  66. package/web/dist/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  67. package/web/dist/assets/chunk-4EMNKR2T-BAQDLVqt.js +1 -0
  68. package/web/dist/assets/chunk-55XCU76K-BwAE3Eqq.js +1 -0
  69. package/web/dist/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  70. package/web/dist/assets/chunk-7S6XSTFO-DwwaClMo.js +2 -0
  71. package/web/dist/assets/chunk-AQDTSKZB-DHG5Km_p.js +72 -0
  72. package/web/dist/assets/chunk-DSNLSHJZ-a6-B52h-.js +129 -0
  73. package/web/dist/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
  74. package/web/dist/assets/chunk-HAGFOTED-DZMcAj3o.js +62 -0
  75. package/web/dist/assets/chunk-HNE4Q36P-gl_4xI6B.js +1 -0
  76. package/web/dist/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
  77. package/web/dist/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  78. package/web/dist/assets/chunk-NGNAAXSQ-Bw6tHVuc.js +136 -0
  79. package/web/dist/assets/chunk-NQOKRVIF-B8Q-YmhL.js +213 -0
  80. package/web/dist/assets/chunk-UHW7PFBP-isP5lYMB.js +1 -0
  81. package/web/dist/assets/chunk-VQ5W62QI-Bn68syIc.js +1 -0
  82. package/web/dist/assets/chunk-WQQL4CDK-CdZpmEYA.js +10 -0
  83. package/web/dist/assets/chunk-XXDRQBXY-CnbRkih_.js +1 -0
  84. package/web/dist/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  85. package/web/dist/assets/chunk-YZO67HFG-DX9GhJkR.js +1 -0
  86. package/web/dist/assets/chunk-ZAUX2LTX-Ki22UlYp.js +1 -0
  87. package/web/dist/assets/chunk-ZCHMQSOR-BVj0Zx6L.js +2 -0
  88. package/web/dist/assets/classDiagram-v2-4MYWR3UA-C7PV1veb.js +217 -0
  89. package/web/dist/assets/cn-rx4uumOJ.js +1 -0
  90. package/web/dist/assets/common-BHXgEvgk.js +192 -0
  91. package/web/dist/assets/cose-bilkent-JH36ORCC-DHFtpmij.js +1 -0
  92. package/web/dist/assets/cynefin-EF2NZ3EQ-1rI2T0cc.js +1 -0
  93. package/web/dist/assets/cynefinDiagram-WF24UDRP-C8O_v8xU.js +62 -0
  94. package/web/dist/assets/cytoscape.esm-BY277UBX.js +321 -0
  95. package/web/dist/assets/dagre-NK4GIZVX-BWGoHIUd.js +4 -0
  96. package/web/dist/assets/defaultLocale-BFoDCU3G.js +1 -0
  97. package/web/dist/assets/diagram-CBK3MWTC-kf9v35RN.js +24 -0
  98. package/web/dist/assets/diagram-I5XIIV2D-Ro-ig56_.js +24 -0
  99. package/web/dist/assets/diagram-ODIL2UCW-CtGga01G.js +30 -0
  100. package/web/dist/assets/diagram-PFBEJUXE-C14lcR-6.js +3 -0
  101. package/web/dist/assets/diagram-RJA3I4VV-BBbqaSKU.js +41 -0
  102. package/web/dist/assets/diagram-TYUNFSNR-BynvjQsr.js +200 -0
  103. package/web/dist/assets/dist-CumnGVmJ.js +1 -0
  104. package/web/dist/assets/ebnfDiagram-V4P3TTPT-BdqUCZnk.js +1 -0
  105. package/web/dist/assets/elk-QONTBCTQ-CYCP_9Jy.js +27 -0
  106. package/web/dist/assets/erDiagram-KYQIGQAA-C3L55l_F.js +99 -0
  107. package/web/dist/assets/eventmodeling-K75KTNOO-CTQdA_1v.js +1 -0
  108. package/web/dist/assets/flowDiagram-IUGLLWBU-COLKOzBg.js +1 -0
  109. package/web/dist/assets/ganttDiagram-R7GPNTJY-Be4Qk8Hx.js +292 -0
  110. package/web/dist/assets/gitGraph-VSP46ZUC-B59HXvj1.js +1 -0
  111. package/web/dist/assets/gitGraphDiagram-PDYL7XHY-C2A0VA6q.js +106 -0
  112. package/web/dist/assets/graphlib-DS17s2tU.js +1 -0
  113. package/web/dist/assets/icons-BvYhTENi.js +1 -0
  114. package/web/dist/assets/index-BNI6CNsY.css +1 -0
  115. package/web/dist/assets/index-BX-d2OBW.js +130 -0
  116. package/web/dist/assets/info-OHQRW6UA-DWlkKvmi.js +1 -0
  117. package/web/dist/assets/infoDiagram-MVDRKAX5-B8e6dTjN.js +2 -0
  118. package/web/dist/assets/init-C-OQMol4.js +1 -0
  119. package/web/dist/assets/ishikawaDiagram-HPEHV2GE-udXPYi9H.js +70 -0
  120. package/web/dist/assets/journeyDiagram-BOSHW7O7-DTyDkf5d.js +139 -0
  121. package/web/dist/assets/kanban-definition-FNSA4HC5-BXgV20qe.js +89 -0
  122. package/web/dist/assets/katex-B940_AAO.js +257 -0
  123. package/web/dist/assets/line-DVabuQAu.js +1 -0
  124. package/web/dist/assets/linear-gLkGxN9m.js +1 -0
  125. package/web/dist/assets/markdown-DAQZeY5V.js +14 -0
  126. package/web/dist/assets/mermaid-parser.core-BrXnuEs7.js +7 -0
  127. package/web/dist/assets/mermaid.core-BGbz3k1k.js +44 -0
  128. package/web/dist/assets/mindmap-definition-6OY57UG3-DbtP-bmk.js +98 -0
  129. package/web/dist/assets/ordinal-BDEzSJ7C.js +1 -0
  130. package/web/dist/assets/packet-JDAUHWVQ-iW8w3JF5.js +1 -0
  131. package/web/dist/assets/panels-DYiQiVWh.js +1 -0
  132. package/web/dist/assets/path-fybaL0A-.js +1 -0
  133. package/web/dist/assets/pegDiagram-ECIUJNBX-rBWJbaq4.js +1 -0
  134. package/web/dist/assets/pie-XZMESJXO-KHXEq-Yx.js +1 -0
  135. package/web/dist/assets/pieDiagram-GNMPY74T-DsW7yHm0.js +39 -0
  136. package/web/dist/assets/preload-helper-BLdHbfdN.js +1 -0
  137. package/web/dist/assets/profileChange-xrd7jkii.js +1 -0
  138. package/web/dist/assets/quadrantDiagram-D57K4MC3-DF_pwNhM.js +7 -0
  139. package/web/dist/assets/radar-ABXABTNO-BkAUJ_Zd.js +1 -0
  140. package/web/dist/assets/railroad-I3PHUGI6-BdnWRdGt.js +1 -0
  141. package/web/dist/assets/railroad-abnf-LNEFI6M7-C8K36-8b.js +1 -0
  142. package/web/dist/assets/railroad-ebnf-DWYD2UWJ-BlS25T3f.js +1 -0
  143. package/web/dist/assets/railroad-peg-JR7BVNR7-CBKGDi75.js +1 -0
  144. package/web/dist/assets/railroadDiagram-Y72NRBL7-DmrlMIvv.js +1 -0
  145. package/web/dist/assets/react-vendor-BlngCquv.js +19 -0
  146. package/web/dist/assets/requirementDiagram-EQYSW5RA-cvUq9H3I.js +84 -0
  147. package/web/dist/assets/rolldown-runtime-COiEfhsA.js +1 -0
  148. package/web/dist/assets/rough.esm-Dy-Kn_BL.js +1 -0
  149. package/web/dist/assets/sankeyDiagram-SY24JHO5-BdxXAbER.js +40 -0
  150. package/web/dist/assets/sequenceDiagram-BLEHNHQU-Druumi0k.js +169 -0
  151. package/web/dist/assets/settingsStore-RLUAWgIk.js +1 -0
  152. package/web/dist/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
  153. package/web/dist/assets/src-49LUQhkG.js +1 -0
  154. package/web/dist/assets/src-BWF7jMDv.js +1 -0
  155. package/web/dist/assets/state-_ZfNVAsd.js +1 -0
  156. package/web/dist/assets/stateDiagram-v2-A6IESKWZ-Jgh6qlrr.js +291 -0
  157. package/web/dist/assets/sttLanguages-aqoVC79g.js +2 -0
  158. package/web/dist/assets/swimlanes-B3ENRKFQ-4xKumvXQ.js +1 -0
  159. package/web/dist/assets/swimlanesDiagram-AYQRV4AK-bHcLKL3d.js +8 -0
  160. package/web/dist/assets/timeline-definition-JXYKGLGB-BYKhga9x.js +120 -0
  161. package/web/dist/assets/treeView-D4JQ5SDB-6-eTVUuH.js +1 -0
  162. package/web/dist/assets/treemap-SAJKECNS-Dxl8yCLE.js +1 -0
  163. package/web/dist/assets/ttsSettings-DHo3OsOq.js +15 -0
  164. package/web/dist/assets/types-JssxRFJn.js +1 -0
  165. package/web/dist/assets/useTranslation-BGmCDuQI.js +1 -0
  166. package/web/dist/assets/usecaseDiagram-WPOLBNNX-BaQ8nAv9.js +328 -0
  167. package/web/dist/assets/vennDiagram-Q3Y3IDCW-DkPvfmfT.js +34 -0
  168. package/web/dist/assets/wardley-7MLQ67FV-CZtI22aa.js +1 -0
  169. package/web/dist/assets/wardleyDiagram-IVAIDKWA-Dgi2OWQ4.js +78 -0
  170. package/web/dist/assets/websocket-C9e3h7VU.js +1 -0
  171. package/web/dist/assets/whatsNewStore-Bf_7lW8o.js +1 -0
  172. package/web/dist/assets/workspaceSemantics-RaIRer76.js +3 -0
  173. package/web/dist/assets/xychartDiagram-4URNHDU4-Ch96dep-.js +7 -0
  174. package/web/dist/favicon.svg +19 -0
  175. package/web/dist/fonts/OFL-Inter.txt +93 -0
  176. package/web/dist/fonts/inter-latin-400-normal.woff2 +0 -0
  177. package/web/dist/fonts/inter-latin-600-normal.woff2 +0 -0
  178. package/web/dist/icons/icon-1024.png +0 -0
  179. package/web/dist/icons/icon-180.png +0 -0
  180. package/web/dist/icons/icon-192.png +0 -0
  181. package/web/dist/icons/icon-512.png +0 -0
  182. package/web/dist/icons/icon-maskable-512.png +0 -0
  183. package/web/dist/index.html +90 -0
  184. package/web/dist/logo.svg +26 -0
  185. package/web/dist/manifest.webmanifest +16 -0
package/README.md CHANGED
@@ -1,3 +1,1209 @@
1
- # Temporary Holding Version
1
+ # DeepSeekCode CLI
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ [![npm version](https://img.shields.io/npm/v/@deepseekcode/cli.svg)](https://www.npmjs.com/package/@deepseekcode/cli)
4
+ [![License: Proprietary](https://img.shields.io/badge/license-Proprietary-red.svg)](#license)
5
+ [![Node version](https://img.shields.io/node/v/@deepseekcode/cli.svg)](https://nodejs.org)
6
+
7
+ <p align="center">
8
+ <a href="https://deepseekcode.github.io/deepseekwork/">
9
+ <img src="media/demo.gif" alt="DeepSeekCode running a task: file reads, a grep, an edit with a diff, and a written summary" width="880">
10
+ </a>
11
+ </p>
12
+
13
+ <p align="center">
14
+ <sub>
15
+ <b>40-second demo</b> — a real agent turn in the web UI: read, grep, edit, diff, summary.
16
+ The full-quality video ships in the repository under <code>docs/promo/media/</code>.
17
+ </sub>
18
+ </p>
19
+
20
+ **DeepSeekCode is a local-first AI coding agent that runs in your terminal.** One runtime on
21
+ your own machine serves three surfaces — an interactive terminal UI (TUI), a web UI, and an
22
+ HTTP/WebSocket API — and drives it with any OpenAI-compatible model. It is built around a real
23
+ permission/approval layer, a strictly read-only plan mode, and runtime-switchable act / goal /
24
+ chat modes.
25
+
26
+ Install it, run `dscode`, and you have an agent that reads and edits your files, runs commands,
27
+ reviews code, and can work unattended in CI.
28
+
29
+ Languages: **English** · [简体中文](#zh-cn) · [繁體中文](#zh-tw) · [日本語](#ja) · [한국어](#ko) ·
30
+ [Español](#es) · [Português](#pt) · [Français](#fr) · [Italiano](#it) · [Deutsch](#de) · [Русский](#ru) · [Türkçe](#tr) ·
31
+ [العربية](#ar) · [हिन्दी](#hi) · [Bahasa Indonesia](#id) · [Tiếng Việt](#vi) · [ไทย](#th) — 17 languages, each
32
+ repeating the same canonical definition; the application interface itself is localized into 13 languages, Arabic and Indonesian included.
33
+
34
+ ## At a glance
35
+
36
+ | | |
37
+ |---|---|
38
+ | **What it is** | A local-first AI coding agent — terminal-first, with an optional web UI |
39
+ | **Project page** | https://deepseekcode.github.io/deepseekwork/ |
40
+ | **Install** | `npm install -g @deepseekcode/cli` |
41
+ | **Run** | `dscode` (interactive) · `dscode exec "..."` (non-interactive) |
42
+ | **Requires** | Node.js >= 18 |
43
+ | **Platforms** | Prebuilt native binaries: Windows x64 / ARM64, macOS Intel / Apple Silicon, Linux glibc & musl, x64 / ARM64 |
44
+ | **Interfaces** | Terminal TUI · Web UI at `http://localhost:8080` · HTTP + WebSocket API · JSONL batch mode |
45
+ | **Modes** | `act` · `auto-act` · `goal` · `auto-goal` · `chat` (`Shift+Tab`), plus a read-only plan toggle (`/plan`) |
46
+ | **Models** | Any OpenAI-compatible endpoint (hosted or local) — no vendor lock-in |
47
+ | **Built-in tools** | ~70: files, search, git, LSP, code intelligence, browser, sub-agents, plans, memory, MCP |
48
+ | **License** | Proprietary (see [License](#license)) |
49
+
50
+ <a name="screenshots"></a>
51
+
52
+ ## Screenshots
53
+
54
+ | Agent turn | Finish state |
55
+ |---|---|
56
+ | <img src="media/web-tools.png" alt="Tool calls stream into the transcript: read_file, grep, edit_file with timing" width="440"> | <img src="media/web-answer.png" alt="Finished turn: diff card plus a written summary" width="440"> |
57
+
58
+ | Models and providers | |
59
+ |---|---|
60
+ | <img src="media/web-models.png" alt="Model list with per-model status, context window and pricing" width="880"> | |
61
+
62
+ Captured from a local instance at 1920×1080 (English UI). The same runtime renders the terminal
63
+ UI; both surfaces share sessions, tools, permissions and memory.
64
+
65
+ ## What you get
66
+
67
+ - **Terminal TUI** — a keyboard-first coding agent rendered with React through a vendored Ink
68
+ kernel. Fullscreen (alt-screen) by default; `--inline` opts back into main-screen mode.
69
+ - **Local runtime, started for you** — `dscode` starts the agent core plus an HTTP/WebSocket
70
+ server in the same process. There is no separate backend to install or connect.
71
+ - **Web UI** — sessions, tasks, models, themes and settings at `http://localhost:8080`
72
+ (provider setup lives at `http://localhost:8080/#models`).
73
+ - **Non-interactive modes** — `exec` (JSONL output), `codeview` (AI code review), and `test-fix`
74
+ (auto-fix test loop) for scripts, hooks and CI.
75
+ - **A permission layer on every tool call** — scopes `system > project > user > local > session`
76
+ (narrowest wins), `auto` / `ask` / `deny` policies, an optional AI classifier for the grey zone,
77
+ and timeout-means-deny.
78
+ - **Plan mode that is genuinely read-only** — `/plan` shows a checklist you approve before
79
+ anything executes; the running loop picks the checklist up instead of switching engines.
80
+ - **Sub-agents, background work and workflows** — delegate isolated jobs to sub-agents, detach
81
+ long-running work, and orchestrate multi-step tasks with an explicit plan.
82
+ - **Memory and skills** — durable notes that survive across sessions, plus reusable skills
83
+ inserted with `/skills`.
84
+ - **MCP support** — connect Model Context Protocol servers with `/mcp`.
85
+ - **IM channels** — LINE, Slack, WhatsApp, QQ, DingTalk and Feishu (with inbound
86
+ request-signature verification), so a session can also be driven from a chat app.
87
+ - **Sandboxed shell tools** — a local command sandbox (bwrap on Linux, SBPL on macOS,
88
+ MXC / Docker on Windows) that refuses to run rather than fall back to an unsandboxed host
89
+ shell when no policy is available.
90
+ - **Themes** — dark, light, nord, dracula, monokai, one-dark, tokyo-night.
91
+ - **Bilingual by design** — most interactive commands have Chinese aliases, and the interface
92
+ text is localized.
93
+
94
+ ## Who it's for
95
+
96
+ - You want the agent to run on your machine against your own provider credentials, not behind
97
+ someone else's cloud service.
98
+ - You care about controlling what the agent may touch — approvals, scope policies, a read-only
99
+ plan pass, and a command sandbox.
100
+ - You want one tool for interactive work **and** for CI (`dscode exec` emits JSONL).
101
+ - You live in a terminal but occasionally want a bigger view (the web UI shares the same runtime).
102
+ - You work in Chinese and/or English.
103
+
104
+ ## Install
105
+
106
+ ```bash
107
+ npm install -g @deepseekcode/cli
108
+ ```
109
+
110
+ Or with your favorite package manager:
111
+
112
+ ```bash
113
+ # pnpm
114
+ pnpm add -g @deepseekcode/cli
115
+
116
+ # yarn
117
+ yarn global add @deepseekcode/cli
118
+
119
+ # bun
120
+ bun add -g @deepseekcode/cli
121
+ ```
122
+
123
+ This installs two commands: **`dscode`** (short) and **`deepseekcode`** (full name). Installation
124
+ detects your platform and links the matching prebuilt native binary into place — after that
125
+ `dscode` execs the native binary directly, with no Node process left resident. If the optional
126
+ platform package is unavailable (for example `--omit=optional`), the installer prints instructions
127
+ instead and `cli-wrapper.cjs` remains available as the JavaScript fallback.
128
+
129
+ The same binary is published under several brand scopes, and **every brand exposes the same `dscode`
130
+ command** — so install **one brand at a time** globally. A second brand in the same prefix collides
131
+ on `dscode` and fails with npm's `EEXIST`; uninstall the current one (`npm uninstall -g <scope>`)
132
+ before switching. This package itself ships two command names — `dscode`, plus the brand name of its
133
+ scope (`@<scope>/cli` → `dscode` + `<scope>`) — and both launch the very same binary.
134
+
135
+ ## Quick Start
136
+
137
+ ```bash
138
+ dscode
139
+ ```
140
+
141
+ That's it. The CLI starts the local agent runtime and opens the interactive terminal. On first run
142
+ (no provider configured) it prints a link to the web UI where you can set up your LLM provider and
143
+ model:
144
+
145
+ ```bash
146
+ # model/provider setup page (also served by the CLI)
147
+ # -> http://localhost:8080/#models
148
+ ```
149
+
150
+ If your terminal's stdin isn't a TTY (e.g. a script or CI pipeline), the CLI skips the TUI and runs
151
+ **headless** — the web UI stays available at the printed URL.
152
+
153
+ Connect to an **existing** backend instead of starting a local one:
154
+
155
+ ```bash
156
+ dscode run --backend http://localhost:8080
157
+ ```
158
+
159
+ Resume your last session (or a specific one):
160
+
161
+ ```bash
162
+ dscode --resume # last session
163
+ dscode --resume <id> # specific session
164
+ ```
165
+
166
+ ## CLI Commands
167
+
168
+ | Command | Description |
169
+ |---------|-------------|
170
+ | `dscode` / `dscode start` | Start local runtime + interactive TUI (also serves Web UI + API) |
171
+ | `dscode start --auto` | Start with auto-approval mode enabled |
172
+ | `dscode run --backend URL` | Connect to an existing backend instead of starting one |
173
+ | `dscode exec <command>` | Execute a command non-interactively (JSONL output) |
174
+ | `dscode exec --file <path>` | Read the command from a file |
175
+ | `dscode codeview` | AI code review — bugs + unwired features (JSON output) |
176
+ | `dscode review` | Review current code changes (legacy) |
177
+ | `dscode test-fix` | Run the auto-fix test loop |
178
+ | `dscode --resume [id]` | Resume the last session, or a specific one |
179
+ | `dscode version` | Print version |
180
+
181
+ Run `dscode --help` (or `-h`) for the full list.
182
+
183
+ ### Non-interactive examples
184
+
185
+ ```bash
186
+ # Execute a command, get JSONL results
187
+ dscode exec "fix the failing test in src/utils"
188
+
189
+ # Plain text output, command from file
190
+ dscode exec --file ./task.txt --text
191
+
192
+ # AI code review focused on security, write report to file
193
+ dscode codeview --focus security --output review.json
194
+
195
+ # Auto-fix test loop (max 5 retries, analyze only)
196
+ dscode test-fix --packages packages/cli --retries 5 --dry-run
197
+ ```
198
+
199
+ ## Interactive Commands
200
+
201
+ Inside the TUI, use `/help` for the full list (most commands have Chinese aliases). Highlights:
202
+
203
+ | Command | Action |
204
+ |---------|--------|
205
+ | `/help` | Show all commands |
206
+ | `/model [name]` | Open model picker or switch model directly |
207
+ | `/theme [name]` | Show or change terminal theme |
208
+ | `/plan` | Toggle plan mode (review before executing) |
209
+ | `/auto` | Toggle auto-approval mode |
210
+ | `Shift+Tab` | Cycle modes: act · auto-act · goal · auto-goal · chat |
211
+ | `/goal` | Set goal-directed mode |
212
+ | `/thinking` | Toggle think mode on/off |
213
+ | `/context` | Show current conversation state |
214
+ | `/sessions [id]` / `/resume [id]` | List history / switch session |
215
+ | `/tasks` | Toggle sub-task output panel |
216
+ | `/undo [list]` | Undo the most recent file change |
217
+ | `/clear` | Start a new session (current session is saved, resumable via `/sessions`) |
218
+ | `/mcp <action>` | Manage MCP servers |
219
+ | `/skills` | Insert a skill |
220
+ | `/trace <traceId>` | Query a trace by id |
221
+ | `/stop` `/pause` `/continue` | Control AI generation |
222
+ | `Ctrl+S` / `Ctrl+G` | Stash the current draft / restore the most recent one |
223
+ | `/exit` | Exit |
224
+
225
+ ## Options
226
+
227
+ | Option | Description |
228
+ |--------|-------------|
229
+ | `-p, --port <port>` | HTTP port (default: first available from 8080) |
230
+ | `--ws-port <port>` | WebSocket port (default: HTTP port + 1) |
231
+ | `-w, --workspace <dir>` | Workspace directory (default: current directory) |
232
+ | `-F, --force` | Kill an existing process on the target port before starting |
233
+ | `-b, --backend <url>` | Backend URL for `run` mode |
234
+ | `--ws <url>` | Override WebSocket URL |
235
+ | `--provider <name>` | Provider to use (exec/review) |
236
+ | `--model <name>` | Model to use (exec/review) |
237
+ | `--theme <name\|path>` | Theme name or JSON theme file path |
238
+ | `--prompt-version <ver>` | Prompt template version |
239
+ | `--timeout <ms>` | Per-attempt LLM timeout (default: 300000 = 5 min) |
240
+ | `--stall-threshold <ms>` | Stream stall detection threshold (default: 240000 = 4 min) |
241
+ | `--no-update-check` | Disable the startup new-version notice |
242
+ | `--no-auto-update` | Disable background auto-update (notice still shown) |
243
+
244
+ ## Permissions and safety
245
+
246
+ Every tool call goes through the permission layer before it executes:
247
+
248
+ - **Scopes** — `system > project > user > local > session`; the narrowest matching rule wins, so a
249
+ session-level decision can grant what a project-level rule would ask about.
250
+ - **Policies** — `auto` (allow), `ask` (prompt), `deny`. High-risk operations ask even when a
251
+ broader rule would allow them, unless you are in auto-approval mode.
252
+ - **AI classifier** — optional review of risky calls that a static rule does not cover.
253
+ - **Timeout means deny** — an unanswered approval is a refusal, not an implicit yes.
254
+ - **Read-only modes** — plan mode and reviewer/coordinator sessions cannot write at all.
255
+ - **Command sandbox** — shell tools run inside a sandbox when a policy exists, and fail closed when
256
+ it does not.
257
+
258
+ `/stop` and `/pause` always win over anything the runtime would otherwise do on its own.
259
+
260
+ ## Providers and models
261
+
262
+ DeepSeekCode is provider-neutral: point it at any OpenAI-compatible endpoint, hosted or local, and
263
+ switch models per session (or per mode). Provider and model settings are managed in the web UI at
264
+ `http://localhost:8080/#models`, and stored under `~/.agent/`.
265
+
266
+ ## Configuration
267
+
268
+ The CLI reads `~/.agent/config.yaml`:
269
+
270
+ ```yaml
271
+ backend_url: http://localhost:8080
272
+ ws_url: ws://localhost:8081/ws
273
+ workspace_dir: /path/to/workspace
274
+ ```
275
+
276
+ Provider / model settings are managed through the web UI at `http://localhost:8080/#models`.
277
+
278
+ ### Attention (notifications & bell)
279
+
280
+ The TUI can notify you when a turn ends, errors, asks a question, needs a tool approval, or a
281
+ subagent finishes. It is focus-aware — by default it only fires while the terminal is in the
282
+ background. Add an `attention:` block to `~/.agent/config.yaml`:
283
+
284
+ ```yaml
285
+ attention:
286
+ notifications: true # OSC 9 / OSC 777 desktop notification
287
+ sound: true # terminal bell (BEL) — on by default
288
+ volume: 0.4 # reserved (parity with opencode); BEL has no volume
289
+ when: blurred # always | blurred | focused
290
+ sound_when: always
291
+ events: { done: true, error: true, question: true, permission: true, subagent_done: true }
292
+ ```
293
+
294
+ The completion sound is on by default. Toggle it in the web UI under
295
+ **Settings → Notifications** (writes `attention.sound` back to `config.yaml`); the CLI reads it at
296
+ startup, so the change applies on the next CLI launch.
297
+
298
+ `DEEPSEEKCODE_ATTENTION` overrides the file (`off` / `on`, or `notify,bell`). Terminals that don't
299
+ support the OSC sequences drop them silently.
300
+
301
+ <a name="local-state"></a>
302
+
303
+ ### Local state
304
+
305
+ | File | Purpose |
306
+ |------|---------|
307
+ | `~/.agent/config.yaml` | Runtime, provider and attention configuration |
308
+ | `~/.agent/sessions/` | Persisted sessions (resumable, format-versioned) |
309
+ | `~/.agent/skills/` | User skills available via `/skills` |
310
+ | `~/.agent/logs/` | Runtime logs |
311
+ | `~/.agent/prompt-stash.json` | Draft stash pushed by `Ctrl+S` (LIFO) |
312
+ | `~/.agent/frecency.json` | `@` file-mention ranking (`count · 0.5^(ageDays/30)`) |
313
+
314
+ ## Themes
315
+
316
+ Set the theme at startup via the `DEEPSEEKCODE_THEME` env var (or `--theme`):
317
+
318
+ | Theme | Env Value | Style |
319
+ |-------|-----------|-------|
320
+ | Dark (default) | `dark` | ANSI named colors, broad compat |
321
+ | Light | `light` | Light terminal variant |
322
+ | Nord | `nord` | Arctic blue-grey palette |
323
+ | Dracula | `dracula` | Dark purple-vibrant |
324
+ | Monokai | `monokai` | Classic code editor |
325
+ | One Dark | `one-dark` | Atom's iconic dark |
326
+ | Tokyo Night | `tokyo-night` | Deep navy + vibrant accents |
327
+
328
+ ```bash
329
+ DEEPSEEKCODE_THEME=nord dscode
330
+ DEEPSEEKCODE_THEME=/path/to/my-theme.json dscode
331
+
332
+ # Partial overrides on the current theme (JSON)
333
+ DEEPSEEKCODE_THEME_COLORS='{"primary":"#ff0000"}' dscode
334
+ ```
335
+
336
+ Switch themes at runtime with `/theme [name]`.
337
+
338
+ ## Auto-Update
339
+
340
+ On startup, `dscode` checks npm for the latest version asynchronously (non-blocking). When a newer
341
+ version is found, the CLI **automatically reinstalls the global package** in the background
342
+ (`npm install -g @deepseekcode/cli@latest`); the new version takes effect on the next launch.
343
+
344
+ - Only affects **global npm installs** — source builds and `npx`/`bunx` caches are never touched.
345
+ - Disable auto-install (keep the version notice): `DEEPSEEKCODE_NO_AUTO_UPDATE=1` or `--no-auto-update`
346
+ - Disable the check entirely: `DEEPSEEKCODE_NO_UPDATE_CHECK=1` or `--no-update-check`
347
+
348
+ ## Environment Variables
349
+
350
+ | Variable | Description |
351
+ |----------|-------------|
352
+ | `DEEPSEEKCODE_THEME` | Theme name or JSON theme file |
353
+ | `DEEPSEEKCODE_THEME_COLORS` | JSON partial color overrides |
354
+ | `DEEPSEEKCODE_ATTENTION` | Attention layer override: `off` / `on` / `notify,bell` |
355
+ | `DEEPSEEKCODE_HTTP_PORT` / `DEEPSEEKCODE_WS_PORT` | Default HTTP / WebSocket ports |
356
+ | `DEEPSEEKCODE_QUIET=1` | Suppress non-fatal startup warnings |
357
+ | `DEEPSEEKCODE_NO_AUTO_UPDATE=1` | Disable background auto-update |
358
+ | `DEEPSEEKCODE_NO_UPDATE_CHECK=1` | Disable the version check |
359
+ | `DEEPSEEKCODE_FORCE_UTF8=0` | Skip forcing the Windows console to UTF-8 |
360
+ | `DSC_HEAP_LIMIT_MB` | Node heap limit hint for large sessions (default: 8192) |
361
+
362
+ ## FAQ
363
+
364
+ **Is DeepSeekCode open source?**
365
+ No. It is proprietary, closed-source software. `LICENSE.md` holds the terms: copying, modifying,
366
+ distributing, sublicensing or selling it requires the prior written permission of the copyright
367
+ holder.
368
+
369
+ **Is DeepSeekCode a model?**
370
+ No. It is an agent runtime — a program you run — and it ships no model of its own. It drives
371
+ whichever OpenAI-compatible endpoint you configure; DeepSeek's models are one option among many,
372
+ and a local server works just as well.
373
+
374
+ **Which package is the official one?**
375
+ `@deepseekcode/cli` on npm — it installs the commands `dscode` and `deepseekcode`. The same build
376
+ is also published under additional brand scopes for distribution; `@deepseekcode` is the canonical
377
+ one, and the project page is https://deepseekcode.github.io/deepseekwork/.
378
+
379
+ **Is this affiliated with DeepSeek?**
380
+ No. DeepSeekCode is an independent project, not made, sponsored or endorsed by DeepSeek (深度求索)
381
+ or any other model vendor. The name refers to a runtime that drives models — not to a model family.
382
+
383
+ **Does it need an API key?**
384
+ Yes — it talks to an OpenAI-compatible endpoint you configure. The first run walks you through
385
+ provider setup; a local server (for example an OpenAI-compatible runtime on `localhost`) works too.
386
+
387
+ **Does my code leave my machine?**
388
+ The runtime, the UI, the file operations and the shell tools all run locally, and no DeepSeekCode
389
+ cloud service sits in the path. Prompts and tool results are sent to the model endpoint you
390
+ configured — that is the only outbound traffic the agent needs.
391
+
392
+ **Which models and providers are supported?**
393
+ Any endpoint that speaks the OpenAI-compatible API. Nothing is hardwired to a single vendor, and
394
+ you can switch models at runtime with `/model`.
395
+
396
+ **Does it run on Windows?**
397
+ Yes. Prebuilt native binaries cover Windows x64 and ARM64 (as well as macOS Intel/Apple Silicon and
398
+ Linux glibc/musl on x64/ARM64), and an offline package with bundled portable git is published for
399
+ machines without network access.
400
+
401
+ **Can it run unattended, or in CI?**
402
+ Yes. `dscode exec "..."` runs a command non-interactively and emits JSONL, and a non-TTY stdin
403
+ makes the CLI skip the TUI entirely. `dscode codeview` and `dscode test-fix` are built for the same
404
+ purpose.
405
+
406
+ **How do I stop it doing something I don't want?**
407
+ Use the permission layer (scopes plus auto/ask/deny policies), start with `/plan` so nothing
408
+ executes before you approve the checklist, rely on the command sandbox for shell tools, and press
409
+ `/pause` or `/stop` at any time. Reviewer and plan sessions are read-only by construction.
410
+
411
+ **Can I drive it from chat apps, MCP servers or my own tools?**
412
+ Yes — `/mcp` connects Model Context Protocol servers, plugins extend the runtime, and channel
413
+ plugins (LINE, Slack, WhatsApp, QQ, DingTalk, Feishu) let a chat message drive a session.
414
+
415
+ **Where is my data and configuration kept?**
416
+ Under `~/.agent/` (`config.yaml`, `sessions/`, `skills/`, `logs/`). See
417
+ [Local state](#local-state).
418
+
419
+ **How do I update it?**
420
+ It updates itself: on startup a global npm install is upgraded in the background to the latest
421
+ version. Disable that with `DEEPSEEKCODE_NO_AUTO_UPDATE=1` (or disable the check with
422
+ `DEEPSEEKCODE_NO_UPDATE_CHECK=1`).
423
+
424
+ ## How it differs
425
+
426
+ - **Local-first, single runtime.** The TUI, the web UI and the API come from one process you
427
+ start — not a hosted service, and not three things to install and wire together.
428
+ - **Permissions are a first-class layer, not a toggle.** Scopes, policies, an optional AI
429
+ classifier, and fail-closed behaviour for approvals and sandboxed commands.
430
+ - **Plan mode is read-only and live.** The plan is a checklist the running loop adopts, so what you
431
+ approve is what executes.
432
+ - **Provider-neutral by construction.** Any OpenAI-compatible endpoint; nothing is tied to one
433
+ vendor's API surface.
434
+ - **Built for both the interactive and the unattended case.** The same agent drives the TUI and
435
+ emits JSONL for scripts and CI.
436
+ - **Extensible at the edges.** MCP servers, skills, plugins, sub-agents, workflows and chat
437
+ channels all attach to the same core loop.
438
+
439
+ ## Terminal rendering internals
440
+
441
+ The TUI is a fork-free React renderer: a vendored Ink kernel plus a pure-TypeScript yoga port live
442
+ under `src/ink/` and `src/ink-yoga/`. If you change them, the layout-cache generations, the
443
+ alt-screen trailing newline and the fd-write ban are hard invariants — they are documented in
444
+ `docs/terminal-rendering-invariants.md` in the repository, together with the regression test that
445
+ guards each one.
446
+
447
+ The `terminal_figure` tool (capture → xterm.js replay → PNG composition) is an internal
448
+ verification path rather than a user-facing feature. Running it needs a Python interpreter with
449
+ Pillow installed and a Playwright Chromium browser; without them the tool returns an actionable
450
+ setup error instead of writing anything outside the workspace.
451
+
452
+ <a name="zh-cn"></a>
453
+
454
+ ## 简体中文
455
+
456
+ **DeepSeekCode 是一个本地运行的 AI 编程智能体:一条命令在终端里跑起来,同时提供终端 TUI、Web UI 和本地 HTTP/WebSocket API 三个界面**,可接任意 OpenAI 兼容模型。它的核心是权限审批层、严格只读的方案模式(plan),以及可在运行时切换的 act / goal / chat 三种工作模式。
457
+
458
+ 安装后运行 `dscode`,它就能读改文件、执行命令、审查代码,也能在 CI 里无人值守地跑。
459
+
460
+ ### 安装与启动
461
+
462
+ ```bash
463
+ npm install -g @deepseekcode/cli
464
+ dscode # 启动本地运行时 + 终端界面
465
+ dscode exec "修复 src/utils 里失败的测试" # 非交互,输出 JSONL
466
+ dscode codeview --focus security # AI 代码审查
467
+ ```
468
+
469
+ 需要 Node.js 18+。首次启动会引导你配置模型;Web UI 在 `http://localhost:8080`(模型配置页 `/#models`)。
470
+
471
+ 同一份二进制会以多个品牌 scope 发布,而**每个品牌都暴露同一个 `dscode` 命令**,所以全局**一次只装一个品牌**:往同一个前缀装第二个品牌会在 `dscode` 上撞名,npm 直接报 `EEXIST` 失败;要换品牌先 `npm uninstall -g <当前品牌>`。本包自身提供两个命令名——`dscode`,加上它所在 scope 的品牌名(`@<scope>/cli` → `dscode` + `<scope>`),两者启动的是同一个二进制。
472
+
473
+ ### 核心能力
474
+
475
+ - **终端 TUI**:键盘优先的交互界面;默认全屏(alt-screen),`--inline` 回到主屏模式。
476
+ - **本地运行时**:`dscode` 在同进程内启动智能体内核与 HTTP/WebSocket 服务,不用另装后端。
477
+ - **权限审批层**:每次工具调用都过权限层 —— 作用域 `system > project > user > local > session`(越窄越优先)、`auto` / `ask` / `deny` 策略、高风险调用可交给 AI 分类器,审批超时按拒绝处理。
478
+ - **只读方案模式**:`/plan` 先给一份清单,你确认后才动手;执行中的回合会直接采纳这份清单。
479
+ - **模式可运行时切换**:`Shift+Tab` 在 act · auto-act · goal · auto-goal · chat 之间切换。
480
+ - **子智能体 / 后台任务 / 工作流**:把独立任务派给子智能体,长任务可脱离当前回合继续跑。
481
+ - **记忆与技能**:跨会话的持久记忆,`/skills` 插入可复用技能。
482
+ - **扩展**:`/mcp` 接 MCP 服务、插件、以及 LINE / Slack / WhatsApp / QQ / 钉钉 / 飞书等 IM 频道(入站请求带签名校验)。
483
+ - **命令沙箱**:Shell 工具走本地沙箱(Linux bwrap、macOS SBPL、Windows MXC / Docker),没有策略时拒绝执行而不是退回宿主机。
484
+ - **主题**:dark / light / nord / dracula / monokai / one-dark / tokyo-night。
485
+ - **中文友好**:界面文案本地化,多数交互命令有中文别名。
486
+
487
+ ### 常用命令
488
+
489
+ | 命令 | 作用 |
490
+ |------|------|
491
+ | `dscode` | 启动本地运行时 + 交互 TUI(同时提供 Web UI 与 API) |
492
+ | `dscode exec "<任务>"` | 非交互执行,输出 JSONL(适合脚本与 CI) |
493
+ | `dscode exec --file ./task.txt --text` | 从文件读任务,输出纯文本 |
494
+ | `dscode codeview --focus security` | AI 代码审查(可指定关注点并落盘报告) |
495
+ | `dscode test-fix --retries 5` | 自动修复测试循环 |
496
+ | `dscode --resume [id]` | 恢复上一次(或指定)会话 |
497
+
498
+ ### 常见问题
499
+
500
+ **是开源的吗?** 不是。本项目是闭源专有软件,条款见仓库内 `LICENSE.md`;复制、修改、分发、再授权或销售均需事先获得著作权人的书面许可。
501
+
502
+ **它是模型吗?** 不是。它是跑在你机器上的智能体程序(runtime),自身不带模型 —— 模型由你配置:任何 OpenAI 兼容端点都行,DeepSeek 的模型只是其中一种,本地起一个服务也同样可用。
503
+
504
+ **哪个包才是官方的?** npm 上的 `@deepseekcode/cli`,安装后得到 `dscode` 与 `deepseekcode` 两个命令。同一份构建也会以其他品牌 scope 分发;`@deepseekcode` 是规范名称,项目主页是 https://deepseekcode.github.io/deepseekwork/。
505
+
506
+ **它和 DeepSeek 官方有关系吗?** 没有。DeepSeekCode 是独立项目,与 DeepSeek(深度求索)及任何模型厂商没有隶属、赞助或背书关系;名字指的是驱动模型的运行时,不指代任何模型家族。
507
+
508
+ **代码会上传到哪里?** 运行时、界面、文件操作与 Shell 工具全部在本机执行,中间没有 DeepSeekCode 的云服务;只有到你配置的模型端点的请求会离开本机。
509
+
510
+ **必须联网吗?** 需要能访问一个 OpenAI 兼容端点(可以是本机的兼容服务)。
511
+
512
+ **怎么防止它乱动我的项目?** 三层:权限层(作用域 + auto/ask/deny,超时即拒绝)、`/plan` 只读方案模式、命令沙箱;随时可以 `/pause` 或 `/stop`。
513
+
514
+ **支持 Windows 吗?** 支持,提供 Windows x64 / ARM64 原生二进制(另含 macOS、Linux glibc/musl 的 x64/ARM64);还发布了内置便携 git 的离线包。
515
+
516
+ **配置放在哪?** `~/.agent/` 下(`config.yaml`、`sessions/`、`skills/`、`logs/`)。
517
+
518
+ 更新日志(中英对照)见下方 [What's New](#whats-new)。
519
+
520
+ <a name="ja"></a>
521
+
522
+ ## 日本語
523
+
524
+ **DeepSeekCode はローカルで動く AI コーディングエージェントです。** 1 つのランタイムがターミナル TUI、Web UI、HTTP/WebSocket API の 3 つの画面を提供し、任意の OpenAI 互換モデルで動作します。権限承認レイヤー、読み取り専用のプランモード、実行中に切り替えられる act / goal / chat モードを中心に設計されています。
525
+
526
+ ```bash
527
+ npm install -g @deepseekcode/cli
528
+ dscode # ローカルランタイム + ターミナル UI
529
+ dscode exec "src/utils の失敗テストを修正" # 非対話、JSONL 出力
530
+ ```
531
+
532
+ Node.js 18 以上が必要です。初回起動時にモデルの設定を案内します。Web UI は `http://localhost:8080`(モデル設定は `/#models`)。
533
+
534
+ 同じバイナリが複数のブランド scope で公開されており、**どのブランドも同じ `dscode` コマンドを公開します**。そのためグローバルには**1 ブランドだけ**を入れてください。同じ prefix に 2 つ目のブランドを入れると `dscode` が衝突し、npm は `EEXIST` で失敗します。切り替える前に `npm uninstall -g <現在のブランド>` で外してください。このパッケージ自身は `dscode` に加えて、所属 scope のブランド名も提供します(`@<scope>/cli` → `dscode` + `<scope>`)。どちらも同じバイナリを起動します。
535
+
536
+ 主な特徴:
537
+
538
+ - **ターミナル TUI** — キーボード中心の操作。既定は全画面(alt-screen)、`--inline` で通常画面に戻せます。
539
+ - **ローカルランタイム** — `dscode` がエージェント本体と HTTP/WebSocket サーバーを同一プロセスで起動します。別途バックエンドを用意する必要はありません。
540
+ - **権限承認レイヤー** — すべてのツール呼び出しが権限レイヤーを通ります。スコープは `system > project > user > local > session`(狭い方が優先)、ポリシーは `auto` / `ask` / `deny`、リスクの高い呼び出しは AI 分類器に委ねられ、承認のタイムアウトは拒否として扱われます。
541
+ - **読み取り専用のプランモード** — `/plan` で実行前に対象のチェックリストを確認できます。
542
+ - **モード切り替え** — `Shift+Tab` で act · auto-act · goal · auto-goal · chat を切り替え。
543
+ - **サブエージェント / バックグラウンド作業 / ワークフロー** — 独立した作業を委譲し、長時間の処理を切り離して実行できます。
544
+ - **メモリとスキル** — セッションをまたぐ記憶と、`/skills` で挿入できる再利用可能なスキル。
545
+ - **拡張性** — `/mcp` で MCP サーバー、プラグイン、LINE / Slack / WhatsApp / QQ / DingTalk / Feishu の各チャネル。
546
+ - **コマンドサンドボックス** — シェルツールはサンドボックス内で実行され、ポリシーがない場合は実行を拒否します(ホスト側にフォールバックしません)。
547
+ - **テーマ** — dark / light / nord / dracula / monokai / one-dark / tokyo-night。
548
+
549
+ よくある質問:
550
+
551
+ **オープンソースですか?** いいえ。本ソフトウェアはプロプライエタリ(非公開ソース)です。条件は `LICENSE.md` に記載されており、複製・改変・配布・再許諾・販売には著作権者の事前の書面による許可が必要です。
552
+
553
+ **コードはどこかに送られますか?** ランタイム、UI、ファイル操作、シェルツールはすべてローカルで動作します。DeepSeekCode のクラウドサービスは介在せず、設定したモデルエンドポイントへのリクエストのみが外部に出ます。
554
+
555
+ **Windows でも使えますか?** はい。Windows x64 / ARM64 向けのネイティブバイナリを提供しています(macOS、Linux の glibc/musl・x64/ARM64 も同様)。
556
+
557
+ **設定はどこに保存されますか?** `~/.agent/`(`config.yaml`、`sessions/`、`skills/`、`logs/`)。
558
+
559
+ リリースノート(英語・中文)は下の [What's New](#whats-new) を参照してください。
560
+
561
+ <a name="es"></a>
562
+
563
+ ## Español
564
+
565
+ **DeepSeekCode es un agente de programación con IA que se ejecuta localmente.** Un único runtime ofrece tres superficies —una interfaz de terminal (TUI), una interfaz web y una API HTTP/WebSocket— y funciona con cualquier modelo compatible con la API de OpenAI. Está construido alrededor de una capa real de permisos y aprobaciones, un modo de plan estrictamente de solo lectura y modos act / goal / chat conmutables en caliente.
566
+
567
+ ```bash
568
+ npm install -g @deepseekcode/cli
569
+ dscode # runtime local + interfaz de terminal
570
+ dscode exec "arregla el test que falla en src/utils" # no interactivo, salida JSONL
571
+ ```
572
+
573
+ Requiere Node.js 18 o superior. La primera ejecución te guía en la configuración del modelo. La interfaz web está en `http://localhost:8080` (modelos en `/#models`).
574
+
575
+ El mismo binario se publica bajo varios scopes de marca y **todas las marcas exponen el mismo comando `dscode`**, así que instala **una sola marca a la vez** en global. Una segunda marca en el mismo prefix choca en `dscode` y falla con `EEXIST` de npm; desinstala la actual (`npm uninstall -g <scope>`) antes de cambiar. Este paquete ofrece dos nombres de comando: `dscode` y el nombre de marca de su scope (`@<scope>/cli` → `dscode` + `<scope>`); ambos lanzan el mismo binario.
576
+
577
+ Qué incluye:
578
+
579
+ - **TUI de terminal** — interfaz pensada para el teclado. Pantalla completa (alt-screen) por defecto; `--inline` vuelve al modo normal.
580
+ - **Runtime local** — `dscode` inicia el núcleo del agente y el servidor HTTP/WebSocket en el mismo proceso: no hay un backend aparte que instalar.
581
+ - **Capa de permisos** — cada llamada a una herramienta pasa por ella: ámbitos `system > project > user > local > session` (gana el más específico), políticas `auto` / `ask` / `deny`, clasificador de IA opcional para llamadas de riesgo y tiempo de espera que equivale a denegación.
582
+ - **Modo de plan de solo lectura** — `/plan` te muestra una lista de comprobación antes de ejecutar nada.
583
+ - **Modos conmutables** — `Shift+Tab` alterna act · auto-act · goal · auto-goal · chat.
584
+ - **Subagentes, trabajo en segundo plano y flujos de trabajo** — delega tareas aisladas y deja correr trabajos largos sin bloquear el turno.
585
+ - **Memoria y skills** — memoria persistente entre sesiones y skills reutilizables con `/skills`.
586
+ - **Extensible** — servidores MCP con `/mcp`, plugins y canales de mensajería (LINE, Slack, WhatsApp, QQ, DingTalk, Feishu).
587
+ - **Sandbox de comandos** — las herramientas de shell se ejecutan en un sandbox (bwrap en Linux, SBPL en macOS, MXC/Docker en Windows) y se niegan a ejecutar si no hay política, en lugar de recurrir al host.
588
+ - **Temas** — dark, light, nord, dracula, monokai, one-dark, tokyo-night.
589
+
590
+ Preguntas frecuentes:
591
+
592
+ **¿Es código abierto?** No. Es software propietario y de código cerrado; las condiciones están en `LICENSE.md`. Copiarlo, modificarlo, distribuirlo, sublicenciarlo o venderlo requiere autorización previa por escrito del titular de los derechos.
593
+
594
+ **¿Sale mi código de mi máquina?** El runtime, la interfaz, las operaciones de archivos y las herramientas de shell se ejecutan en local; no hay ningún servicio en la nube de DeepSeekCode en medio. Solo salen las peticiones al endpoint de modelo que hayas configurado.
595
+
596
+ **¿Funciona en Windows?** Sí: hay binarios nativos para Windows x64 / ARM64 (además de macOS y Linux glibc/musl en x64/ARM64) y un paquete offline con git portátil.
597
+
598
+ **¿Dónde se guarda la configuración?** En `~/.agent/` (`config.yaml`, `sessions/`, `skills/`, `logs/`).
599
+
600
+ Notas de la versión (inglés y chino) en [What's New](#whats-new).
601
+
602
+ <a name="ko"></a>
603
+
604
+ ## 한국어
605
+
606
+ **DeepSeekCode는 로컬에서 동작하는 AI 코딩 에이전트입니다.** 하나의 런타임이 터미널 TUI, 웹 UI, HTTP/WebSocket API 세 가지 화면을 제공하며, OpenAI 호환 모델이면 무엇이든 연결해 사용합니다. 권한 승인 계층, 엄격한 읽기 전용 플랜 모드, 실행 중에 전환하는 act / goal / chat 모드를 중심으로 설계되었습니다.
607
+
608
+ ```bash
609
+ npm install -g @deepseekcode/cli
610
+ dscode # 로컬 런타임 + 터미널 UI
611
+ dscode exec "src/utils의 실패한 테스트 수정" # 비대화형, JSONL 출력
612
+ dscode codeview --focus security # AI 코드 리뷰
613
+ ```
614
+
615
+ Node.js 18 이상이 필요합니다. 첫 실행에서 모델 설정을 안내하며, 웹 UI는 `http://localhost:8080`(모델 설정은 `/#models`)에서 열립니다.
616
+
617
+ 같은 바이너리가 여러 브랜드 scope로 배포되며 **모든 브랜드가 동일한 `dscode` 명령을 노출합니다.** 따라서 전역에는 **한 번에 하나의 브랜드만** 설치하세요. 같은 prefix에 두 번째 브랜드를 설치하면 `dscode`가 충돌해 npm이 `EEXIST`로 실패합니다. 브랜드를 바꾸려면 먼저 `npm uninstall -g <현재 브랜드>`로 제거하세요. 이 패키지 자체는 `dscode`와 자신이 속한 scope의 브랜드 이름(`@<scope>/cli` → `dscode` + `<scope>`) 두 가지 명령을 제공하며, 둘 다 같은 바이너리를 실행합니다.
618
+
619
+ 주요 기능:
620
+
621
+ - **터미널 TUI** — 키보드 중심 인터페이스. 기본은 전체 화면(alt-screen)이며 `--inline`으로 일반 화면으로 돌아갑니다.
622
+ - **로컬 런타임** — `dscode`가 에이전트 코어와 HTTP/WebSocket 서버를 같은 프로세스에서 띄웁니다. 따로 설치할 백엔드가 없습니다.
623
+ - **권한 계층** — 모든 도구 호출이 권한 계층을 통과합니다. scope는 `system > project > user > local > session`(좁은 쪽 우선), 정책은 `auto` / `ask` / `deny`, 회색 지대는 선택적 AI 분류기가 판단하며 승인 시간 초과는 거부로 처리됩니다.
624
+ - **읽기 전용 플랜 모드** — `/plan`은 실행 전에 체크리스트를 보여주고, 승인한 내용만 실제로 실행됩니다.
625
+ - **모드 전환** — `Shift+Tab`으로 act · auto-act · goal · auto-goal · chat 전환.
626
+ - **서브에이전트 · 백그라운드 작업 · 워크플로** — 독립적인 작업을 위임하고 오래 걸리는 일을 분리해 실행합니다.
627
+ - **메모리와 스킬** — 세션을 넘어 유지되는 기억과 `/skills`로 삽입하는 재사용 스킬.
628
+ - **확장성** — `/mcp`로 MCP 서버 연결, 플러그인, 메시징 채널(LINE, Slack, WhatsApp, QQ, DingTalk, Feishu).
629
+ - **명령 샌드박스** — 셸 도구는 샌드박스에서 실행되며 정책이 없으면 호스트로 폴백하지 않고 실행을 거부합니다.
630
+ - **테마** — dark, light, nord, dracula, monokai, one-dark, tokyo-night.
631
+
632
+ 자주 묻는 질문:
633
+
634
+ **오픈소스인가요?** 아닙니다. 사유 소프트웨어이며 소스는 비공개입니다. 조건은 `LICENSE.md`에 있으며, 복제·수정·배포·재라이선스·판매에는 저작권자의 사전 서면 허가가 필요합니다.
635
+
636
+ **제 코드가 외부로 나가나요?** 런타임, UI, 파일 조작, 셸 도구는 모두 로컬에서 실행되며 DeepSeekCode 클라우드 서비스는 관여하지 않습니다. 외부로 나가는 것은 설정한 모델 엔드포인트로의 요청뿐입니다.
637
+
638
+ **Windows에서도 되나요?** 됩니다. Windows x64 / ARM64 네이티브 바이너리를 제공합니다(macOS Intel/Apple Silicon, Linux glibc/musl x64/ARM64 포함). 오프라인 패키지에는 포터블 git이 함께 들어 있습니다.
639
+
640
+ **설정은 어디에 저장되나요?** `~/.agent/`(`config.yaml`, `sessions/`, `skills/`, `logs/`)입니다.
641
+
642
+ 릴리스 노트(영어·중국어)는 아래 [What's New](#whats-new)를 참고하세요.
643
+
644
+ <a name="fr"></a>
645
+
646
+ ## Français
647
+
648
+ **DeepSeekCode est un agent de codage IA qui s'exécute en local.** Un seul runtime fournit trois surfaces — une interface terminal (TUI), une interface web et une API HTTP/WebSocket — et s'appuie sur n'importe quel modèle compatible OpenAI. Il est bâti autour d'une véritable couche de permissions et d'approbations, d'un mode plan strictement en lecture seule et de modes act / goal / chat commutables à chaud.
649
+
650
+ ```bash
651
+ npm install -g @deepseekcode/cli
652
+ dscode # runtime local + interface terminal
653
+ dscode exec "corrige le test qui échoue dans src/utils" # non interactif, sortie JSONL
654
+ dscode codeview --focus security # revue de code par IA
655
+ ```
656
+
657
+ Node.js 18 ou supérieur est requis. Le premier lancement guide la configuration du modèle. L'interface web est servie sur `http://localhost:8080` (modèles : `/#models`).
658
+
659
+ Le même binaire est publié sous plusieurs scopes de marque et **chaque marque expose la même commande `dscode`** : n'installez donc **qu'une seule marque à la fois** en global. Une seconde marque dans le même prefix entre en collision sur `dscode` et échoue avec `EEXIST` ; désinstallez la marque courante (`npm uninstall -g <scope>`) avant de changer. Ce paquet fournit deux noms de commande — `dscode` et le nom de marque de son scope (`@<scope>/cli` → `dscode` + `<scope>`) — qui lancent le même binaire.
660
+
661
+ Ce que vous obtenez :
662
+
663
+ - **TUI terminal** — interface pensée pour le clavier. Plein écran (alt-screen) par défaut ; `--inline` revient au mode normal.
664
+ - **Runtime local** — `dscode` démarre le cœur de l'agent et le serveur HTTP/WebSocket dans le même processus : aucun backend séparé à installer.
665
+ - **Couche de permissions** — chaque appel d'outil la traverse : portées `system > project > user > local > session` (la plus étroite gagne), politiques `auto` / `ask` / `deny`, classifieur IA optionnel pour la zone grise, et expiration d'une approbation = refus.
666
+ - **Mode plan en lecture seule** — `/plan` affiche une liste de contrôle avant toute exécution ; seule la liste approuvée s'exécute.
667
+ - **Modes commutables** — `Shift+Tab` alterne act · auto-act · goal · auto-goal · chat.
668
+ - **Sous-agents, travail en arrière-plan et workflows** — déléguez des tâches isolées et détachez les traitements longs.
669
+ - **Mémoire et skills** — mémoire persistante entre sessions et skills réutilisables insérables via `/skills`.
670
+ - **Extensible** — serveurs MCP avec `/mcp`, plugins, canaux de messagerie (LINE, Slack, WhatsApp, QQ, DingTalk, Feishu).
671
+ - **Bac à sable des commandes** — les outils shell s'exécutent dans un bac à sable (bwrap sous Linux, SBPL sous macOS, MXC/Docker sous Windows) et refusent d'exécuter s'il n'y a pas de politique, au lieu de retomber sur l'hôte.
672
+ - **Thèmes** — dark, light, nord, dracula, monokai, one-dark, tokyo-night.
673
+
674
+ Questions fréquentes :
675
+
676
+ **Est-ce open source ?** Non. C'est un logiciel propriétaire à code fermé ; les conditions figurent dans `LICENSE.md`. Copier, modifier, distribuer, sous-licencier ou vendre exige l'autorisation écrite préalable du titulaire des droits.
677
+
678
+ **Mon code quitte-t-il ma machine ?** Le runtime, l'interface, les opérations sur les fichiers et les outils shell s'exécutent en local ; aucun service cloud DeepSeekCode ne s'interpose. Seules les requêtes vers l'endpoint de modèle configuré sortent.
679
+
680
+ **Fonctionne-t-il sous Windows ?** Oui : des binaires natifs existent pour Windows x64 / ARM64 (ainsi que macOS Intel/Apple Silicon et Linux glibc/musl x64/ARM64), avec un paquet hors ligne incluant un git portable.
681
+
682
+ **Où sont stockés les réglages ?** Dans `~/.agent/` (`config.yaml`, `sessions/`, `skills/`, `logs/`).
683
+
684
+ Notes de version (anglais et chinois) dans [What's New](#whats-new).
685
+
686
+ <a name="zh-tw"></a>
687
+
688
+ ## 繁體中文
689
+
690
+ **DeepSeekCode 是一個在本機執行的 AI 編程代理。** 一套執行環境同時提供終端機 TUI、Web UI 與 HTTP/WebSocket API 三種介面,可接任意 OpenAI 相容模型。核心是權限審批層、嚴格唯讀的方案模式(plan),以及可在執行時切換的 act / goal / chat 模式。
691
+
692
+ ```bash
693
+ npm install -g @deepseekcode/cli
694
+ dscode # 啟動本機執行環境 + 終端機介面
695
+ dscode exec "修好 src/utils 裡失敗的測試" # 非互動,輸出 JSONL
696
+ dscode codeview --focus security # AI 程式碼審查
697
+ ```
698
+
699
+ 需要 Node.js 18 以上。首次啟動會引導你設定模型;Web UI 在 `http://localhost:8080`(模型設定頁 `/#models`)。
700
+
701
+ 同一份二進位檔會以多個品牌 scope 發佈,而**每個品牌都暴露同一個 `dscode` 指令**,所以全域**一次只裝一個品牌**:把第二個品牌裝到同一個前綴會在 `dscode` 上撞名,npm 直接以 `EEXIST` 失敗;換品牌前先 `npm uninstall -g <目前品牌>`。本套件自身提供兩個指令名——`dscode`,加上它所在 scope 的品牌名(`@<scope>/cli` → `dscode` + `<scope>`),兩者啟動同一個二進位檔。
702
+
703
+ 核心能力:
704
+
705
+ - **終端機 TUI**:鍵盤優先的互動介面;預設全螢幕(alt-screen),`--inline` 回到主畫面模式。
706
+ - **本機執行環境**:`dscode` 在同一行程內啟動代理核心與 HTTP/WebSocket 服務,不必另裝後端。
707
+ - **權限審批層**:每次工具呼叫都會經過——作用域 `system > project > user > local > session`(越窄越優先)、`auto` / `ask` / `deny` 策略、高風險呼叫可交給 AI 分類器,審批逾時視同拒絕。
708
+ - **唯讀方案模式**:`/plan` 先給清單,你確認後才動手。
709
+ - **模式可執行時切換**:`Shift+Tab` 在 act · auto-act · goal · auto-goal · chat 間切換。
710
+ - **子代理/背景工作/工作流程**:把獨立任務派給子代理,長任務可脫離目前回合繼續跑。
711
+ - **記憶與技能**:跨工作階段的持久記憶,`/skills` 插入可重用技能。
712
+ - **擴充**:`/mcp` 接 MCP 服務、外掛,以及 LINE / Slack / WhatsApp / QQ / 釘釘 / 飛書等 IM 頻道。
713
+ - **指令沙箱**:Shell 工具走本機沙箱(Linux bwrap、macOS SBPL、Windows MXC / Docker),沒有策略時拒絕執行而非退回主機。
714
+ - **主題**:dark / light / nord / dracula / monokai / one-dark / tokyo-night。
715
+
716
+ 常見問題:
717
+
718
+ **是開源的嗎?** 不是。本專案為閉源專有軟體,條款見倉庫內 `LICENSE.md`;複製、修改、散布、再授權或販售都需事先取得著作權人的書面許可。
719
+
720
+ **程式碼會上傳到哪裡?** 執行環境、介面、檔案操作與 Shell 工具全在本機執行,中間沒有 DeepSeekCode 的雲端服務;只有前往你設定之模型端點的請求會離開本機。
721
+
722
+ **支援 Windows 嗎?** 支援,提供 Windows x64 / ARM64 原生二進位檔(另含 macOS、Linux glibc/musl 的 x64/ARM64),並有內建可攜式 git 的離線包。
723
+
724
+ **設定放在哪?** `~/.agent/`(`config.yaml`、`sessions/`、`skills/`、`logs/`)。
725
+
726
+ 更新日誌(中英對照)見下方 [What's New](#whats-new)。
727
+
728
+ <a name="pt"></a>
729
+
730
+ ## Português
731
+
732
+ **O DeepSeekCode é um agente de programação com IA que roda localmente.** Um único runtime na sua máquina serve três superfícies — interface de terminal (TUI), interface web e API HTTP/WebSocket — e funciona com qualquer modelo compatível com OpenAI. A base é uma camada real de permissões e aprovações, um modo de plano estritamente somente leitura e modos act / goal / chat alternáveis em tempo de execução.
733
+
734
+ ```bash
735
+ npm install -g @deepseekcode/cli
736
+ dscode # runtime local + interface de terminal
737
+ dscode exec "corrija o teste que falha em src/utils" # não interativo, saída JSONL
738
+ dscode codeview --focus security # revisão de código por IA
739
+ ```
740
+
741
+ Requer Node.js 18 ou superior. A primeira execução guia a configuração do modelo. A interface web fica em `http://localhost:8080` (modelos em `/#models`).
742
+
743
+ O mesmo binário é publicado em vários escopos de marca e **toda marca expõe o mesmo comando `dscode`** — instale **apenas uma marca por vez** no global. Uma segunda marca no mesmo prefixo colide em `dscode` e falha com `EEXIST`; rode `npm uninstall -g <marca atual>` antes de trocar. Este pacote oferece dois nomes de comando: `dscode` e o nome da marca do seu escopo (`@<scope>/cli` → `dscode` + `<scope>`) — ambos iniciam o mesmo binário.
744
+
745
+ O que você recebe:
746
+
747
+ - **TUI de terminal** — interface pensada para teclado. Tela cheia (alt-screen) por padrão; `--inline` volta ao modo normal.
748
+ - **Runtime local** — `dscode` sobe o núcleo do agente e o servidor HTTP/WebSocket no mesmo processo, sem backend separado.
749
+ - **Camada de permissões** — toda chamada de ferramenta passa por ela: escopos `system > project > user > local > session` (o mais específico vence), políticas `auto` / `ask` / `deny`, classificador de IA opcional para chamadas de risco e timeout de aprovação tratado como negação.
750
+ - **Modo de plano somente leitura** — `/plan` mostra uma lista de verificação antes de executar.
751
+ - **Modos alternáveis** — `Shift+Tab` alterna act · auto-act · goal · auto-goal · chat.
752
+ - **Subagentes, trabalho em segundo plano e workflows** — delegue tarefas isoladas e solte trabalhos longos do turno atual.
753
+ - **Memória e skills** — memória persistente entre sessões e skills reutilizáveis com `/skills`.
754
+ - **Extensível** — servidores MCP com `/mcp`, plugins e canais de mensagem (LINE, Slack, WhatsApp, QQ, DingTalk, Feishu).
755
+ - **Sandbox de comandos** — as ferramentas de shell rodam em sandbox (bwrap no Linux, SBPL no macOS, MXC/Docker no Windows) e recusam executar sem política em vez de cair no host.
756
+ - **Temas** — dark, light, nord, dracula, monokai, one-dark, tokyo-night.
757
+
758
+ Perguntas frequentes:
759
+
760
+ **É código aberto?** Não. É software proprietário de código fechado; as condições estão em `LICENSE.md`. Copiar, modificar, distribuir, sublicenciar ou vender exige autorização prévia por escrito do titular dos direitos.
761
+
762
+ **Meu código sai da minha máquina?** Runtime, interface, operações de arquivo e ferramentas de shell rodam localmente; não há serviço de nuvem do DeepSeekCode no meio. Só saem as requisições ao endpoint de modelo que você configurou.
763
+
764
+ **Funciona no Windows?** Sim: binários nativos para Windows x64 / ARM64 (além de macOS Intel/Apple Silicon e Linux glibc/musl em x64/ARM64) e um pacote offline com git portátil.
765
+
766
+ **Onde ficam as configurações?** Em `~/.agent/` (`config.yaml`, `sessions/`, `skills/`, `logs/`).
767
+
768
+ Notas da versão (inglês e chinês) em [What's New](#whats-new).
769
+
770
+ <a name="it"></a>
771
+
772
+ ## Italiano
773
+
774
+ **DeepSeekCode è un agente di programmazione IA che gira in locale.** Un unico runtime sulla tua macchina serve tre superfici — interfaccia terminale (TUI), interfaccia web e API HTTP/WebSocket — e funziona con qualsiasi modello compatibile OpenAI. Al centro ci sono un vero livello di permessi e approvazioni, una modalità piano rigorosamente in sola lettura e modalità act / goal / chat commutabili a runtime.
775
+
776
+ ```bash
777
+ npm install -g @deepseekcode/cli
778
+ dscode # runtime locale + interfaccia terminale
779
+ dscode exec "sistema il test che fallisce in src/utils" # non interattivo, output JSONL
780
+ dscode codeview --focus security # code review con IA
781
+ ```
782
+
783
+ Richiede Node.js 18 o superiore. Al primo avvio una procedura guidata configura il modello. L'interfaccia web è su `http://localhost:8080` (modelli su `/#models`).
784
+
785
+ Lo stesso binario è pubblicato con più scope di marca e **ogni marca espone lo stesso comando `dscode`**: installa quindi **una sola marca alla volta** in globale. Una seconda marca nello stesso prefix va in collisione su `dscode` e fallisce con `EEXIST`; prima di cambiare esegui `npm uninstall -g <marca attuale>`. Il pacchetto fornisce due nomi di comando: `dscode` e il nome di marca del suo scope (`@<scope>/cli` → `dscode` + `<scope>`); entrambi avviano lo stesso binario.
786
+
787
+ Cosa ottieni:
788
+
789
+ - **TUI da terminale** — interfaccia pensata per la tastiera. Schermo intero (alt-screen) per impostazione predefinita; `--inline` torna alla modalità normale.
790
+ - **Runtime locale** — `dscode` avvia il core dell'agente e il server HTTP/WebSocket nello stesso processo: nessun backend separato da installare.
791
+ - **Livello di permessi** — ogni chiamata a uno strumento lo attraversa: scope `system > project > user > local > session` (vince il più stretto), policy `auto` / `ask` / `deny`, classificatore IA opzionale per le chiamate a rischio e timeout di approvazione trattato come rifiuto.
792
+ - **Modalità piano in sola lettura** — `/plan` mostra una checklist prima di eseguire qualsiasi cosa.
793
+ - **Modalità commutabili** — `Shift+Tab` alterna act · auto-act · goal · auto-goal · chat.
794
+ - **Subagenti, lavoro in background e workflow** — delega attività isolate e stacca i lavori lunghi dal turno corrente.
795
+ - **Memoria e skill** — memoria persistente tra sessioni e skill riutilizzabili con `/skills`.
796
+ - **Estendibile** — server MCP con `/mcp`, plugin e canali di messaggistica (LINE, Slack, WhatsApp, QQ, DingTalk, Feishu).
797
+ - **Sandbox dei comandi** — gli strumenti shell girano in sandbox (bwrap su Linux, SBPL su macOS, MXC/Docker su Windows) e rifiutano di eseguire senza policy invece di ricadere sull'host.
798
+ - **Temi** — dark, light, nord, dracula, monokai, one-dark, tokyo-night.
799
+
800
+ Domande frequenti:
801
+
802
+ **È open source?** No. È software proprietario a codice chiuso; le condizioni sono in `LICENSE.md`. Copiare, modificare, distribuire, sublicenziare o vendere richiede l'autorizzazione scritta preventiva del titolare dei diritti.
803
+
804
+ **Il mio codice esce dalla macchina?** Runtime, interfaccia, operazioni sui file e strumenti shell girano in locale; non c'è alcun servizio cloud DeepSeekCode in mezzo. Escono solo le richieste all'endpoint del modello che hai configurato.
805
+
806
+ **Funziona su Windows?** Sì: binari nativi per Windows x64 / ARM64 (oltre a macOS Intel/Apple Silicon e Linux glibc/musl x64/ARM64) e un pacchetto offline con git portatile.
807
+
808
+ **Dove stanno le impostazioni?** In `~/.agent/` (`config.yaml`, `sessions/`, `skills/`, `logs/`).
809
+
810
+ Note di rilascio (inglese e cinese) in [What's New](#whats-new).
811
+
812
+ <a name="de"></a>
813
+
814
+ ## Deutsch
815
+
816
+ **DeepSeekCode ist ein KI-Programmieragent, der lokal läuft.** Eine einzige Laufzeit auf deinem Rechner bedient drei Oberflächen — ein Terminal-UI (TUI), ein Web-UI und eine HTTP/WebSocket-API — und arbeitet mit jedem OpenAI-kompatiblen Modell. Kern sind eine echte Berechtigungs- und Freigabeschicht, ein strikt lesender Plan-Modus und zur Laufzeit umschaltbare act / goal / chat-Modi.
817
+
818
+ ```bash
819
+ npm install -g @deepseekcode/cli
820
+ dscode # lokale Laufzeit + Terminal-UI
821
+ dscode exec "fehlschlagenden Test in src/utils reparieren" # nicht interaktiv, JSONL
822
+ dscode codeview --focus security # KI-Code-Review
823
+ ```
824
+
825
+ Node.js 18 oder neuer. Beim ersten Start führt dich die Einrichtung durch die Modellkonfiguration; das Web-UI läuft unter `http://localhost:8080` (Modelle unter `/#models`).
826
+
827
+ Dasselbe Binary erscheint unter mehreren Marken-Scopes, und **jede Marke stellt denselben Befehl `dscode` bereit** — installiere global also **nur eine Marke**. Eine zweite Marke im selben Prefix kollidiert bei `dscode` und scheitert mit `EEXIST`; vor dem Wechsel `npm uninstall -g <bisherige Marke>` ausführen. Dieses Paket liefert zwei Befehlsnamen: `dscode` und den Markennamen seines Scopes (`@<scope>/cli` → `dscode` + `<scope>`) — beide starten dasselbe Binary.
828
+
829
+ Was du bekommst:
830
+
831
+ - **Terminal-TUI** — tastaturzentrierte Oberfläche. Standard ist Vollbild (alt-screen); `--inline` kehrt zum normalen Bildschirm zurück.
832
+ - **Lokale Laufzeit** — `dscode` startet Agent-Kern und HTTP/WebSocket-Server im selben Prozess; kein separates Backend nötig.
833
+ - **Berechtigungsschicht** — jeder Tool-Aufruf läuft durch sie: Scopes `system > project > user > local > session` (enger gewinnt), Richtlinien `auto` / `ask` / `deny`, optionaler KI-Klassifikator für Grauzonen, Timeout einer Freigabe gilt als Ablehnung.
834
+ - **Plan-Modus nur lesend** — `/plan` zeigt vorab eine Checkliste; erst nach Bestätigung wird ausgeführt.
835
+ - **Umschaltbare Modi** — `Shift+Tab` wechselt zwischen act · auto-act · goal · auto-goal · chat.
836
+ - **Subagenten, Hintergrundarbeit, Workflows** — isolierte Aufgaben delegieren, lange Läufe vom aktuellen Turn lösen.
837
+ - **Speicher und Skills** — sitzungsübergreifendes Gedächtnis, wiederverwendbare Skills über `/skills`.
838
+ - **Erweiterbar** — MCP-Server via `/mcp`, Plugins, Messaging-Kanäle (LINE, Slack, WhatsApp, QQ, DingTalk, Feishu).
839
+ - **Befehlssandbox** — Shell-Tools laufen in einer Sandbox (bwrap unter Linux, SBPL unter macOS, MXC/Docker unter Windows) und verweigern die Ausführung ohne Richtlinie statt auf den Host zurückzufallen.
840
+ - **Themes** — dark, light, nord, dracula, monokai, one-dark, tokyo-night.
841
+
842
+ Häufige Fragen:
843
+
844
+ **Ist es Open Source?** Nein. Es ist proprietäre Software mit geschlossenem Quellcode; die Bedingungen stehen in `LICENSE.md`. Vervielfältigen, Ändern, Verbreiten, Unterlizenzieren oder Verkaufen erfordert vorherige schriftliche Zustimmung des Rechteinhabers.
845
+
846
+ **Verlässt mein Code die Maschine?** Laufzeit, UI, Dateioperationen und Shell-Tools laufen lokal; es gibt keinen Cloud-Dienst von DeepSeekCode dazwischen. Nach außen gehen nur Anfragen an den von dir konfigurierten Modell-Endpunkt.
847
+
848
+ **Läuft es unter Windows?** Ja — native Binaries für Windows x64 / ARM64 (dazu macOS Intel/Apple Silicon und Linux glibc/musl auf x64/ARM64) und ein Offline-Paket mit portablem git.
849
+
850
+ **Wo liegen die Einstellungen?** Unter `~/.agent/` (`config.yaml`, `sessions/`, `skills/`, `logs/`).
851
+
852
+ Versionshinweise (Englisch und Chinesisch) im Abschnitt [What's New](#whats-new).
853
+
854
+ <a name="ru"></a>
855
+
856
+ ## Русский
857
+
858
+ **DeepSeekCode — это ИИ-агент для программирования, работающий локально.** Один рантайм на вашей машине обслуживает три интерфейса — TUI в терминале, веб-интерфейс и HTTP/WebSocket API — и работает с любой моделью, совместимой с OpenAI. В основе — реальный слой разрешений и подтверждений, строго режим плана «только чтение» и переключаемые на ходу режимы act / goal / chat.
859
+
860
+ ```bash
861
+ npm install -g @deepseekcode/cli
862
+ dscode # локальный рантайм + интерфейс терминала
863
+ dscode exec "починить падающий тест в src/utils" # неинтерактивно, вывод JSONL
864
+ dscode codeview --focus security # ИИ-ревью кода
865
+ ```
866
+
867
+ Нужен Node.js 18+. При первом запуске мастер поможет настроить модель. Веб-интерфейс — `http://localhost:8080` (модели: `/#models`).
868
+
869
+ Один и тот же бинарник публикуется под несколькими брендовыми scope, и **каждый бренд предоставляет одну и ту же команду `dscode`** — поэтому глобально ставьте **только один бренд**. Второй бренд в том же prefix конфликтует по `dscode` и падает с `EEXIST`; перед сменой выполните `npm uninstall -g <текущий бренд>`. Сам пакет даёт два имени команды: `dscode` и брендовое имя своего scope (`@<scope>/cli` → `dscode` + `<scope>`); обе запускают один и тот же бинарник.
870
+
871
+ Что вы получаете:
872
+
873
+ - **TUI в терминале** — интерфейс, рассчитанный на клавиатуру. По умолчанию полный экран (alt-screen), `--inline` возвращает обычный режим.
874
+ - **Локальный рантайм** — `dscode` поднимает ядро агента и HTTP/WebSocket-сервер в одном процессе, отдельный бэкенд не нужен.
875
+ - **Слой разрешений** — через него проходит каждый вызов инструмента: scope `system > project > user > local > session` (побеждает более узкий), политики `auto` / `ask` / `deny`, опциональный ИИ-классификатор для спорных вызовов, истёкшее подтверждение считается отказом.
876
+ - **Режим плана только для чтения** — `/plan` сначала показывает чек-лист, работа начинается после подтверждения.
877
+ - **Переключение режимов** — `Shift+Tab` циклически переключает act · auto-act · goal · auto-goal · chat.
878
+ - **Субагенты, фоновая работа, workflow** — изолированные задачи можно делегировать, а долгие процессы отвязать от текущего хода.
879
+ - **Память и навыки** — постоянная память между сессиями и переиспользуемые навыки через `/skills`.
880
+ - **Расширяемость** — MCP-серверы через `/mcp`, плагины и каналы мессенджеров (LINE, Slack, WhatsApp, QQ, DingTalk, Feishu).
881
+ - **Песочница команд** — инструменты shell выполняются в песочнице (bwrap в Linux, SBPL в macOS, MXC/Docker в Windows) и при отсутствии политики отказываются работать, а не откатываются на хост.
882
+ - **Темы** — dark, light, nord, dracula, monokai, one-dark, tokyo-night.
883
+
884
+ Частые вопросы:
885
+
886
+ **Это open source?** Нет. Это проприетарное ПО с закрытым исходным кодом, условия — в `LICENSE.md`. Копирование, изменение, распространение, сублицензирование и продажа требуют предварительного письменного разрешения правообладателя.
887
+
888
+ **Код уходит с машины?** Рантайм, интерфейс, работа с файлами и инструменты shell выполняются локально; облачных сервисов DeepSeekCode в цепочке нет. Наружу уходят только запросы к настроенному вами endpoint модели.
889
+
890
+ **Работает под Windows?** Да — есть нативные бинарники для Windows x64 / ARM64 (а также macOS Intel/Apple Silicon и Linux glibc/musl на x64/ARM64) и офлайн-пакет с портативным git.
891
+
892
+ **Где хранится конфигурация?** В `~/.agent/` (`config.yaml`, `sessions/`, `skills/`, `logs/`).
893
+
894
+ Заметки о выпуске (английский и китайский) — в разделе [What's New](#whats-new).
895
+
896
+ <a name="tr"></a>
897
+
898
+ ## Türkçe
899
+
900
+ **DeepSeekCode, yerelde çalışan bir yapay zekâ kodlama ajanıdır.** Tek bir çalışma zamanı makinenizde üç yüzey sunar — terminal TUI, web arayüzü ve HTTP/WebSocket API — ve herhangi bir OpenAI uyumlu modelle çalışır. Temelinde gerçek bir izin/onay katmanı, kesinlikle salt okunur plan modu ve çalışma anında geçiş yapılabilen act / goal / chat modları vardır.
901
+
902
+ ```bash
903
+ npm install -g @deepseekcode/cli
904
+ dscode # yerel çalışma zamanı + terminal arayüzü
905
+ dscode exec "src/utils içindeki hatalı testi düzelt" # etkileşimsiz, JSONL çıktı
906
+ dscode codeview --focus security # yapay zekâ kod incelemesi
907
+ ```
908
+
909
+ Node.js 18 veya üzeri gerekir. İlk başlatmada model kurulumu adım adım yönlendirilir. Web arayüzü `http://localhost:8080` adresinde (modeller: `/#models`).
910
+
911
+ Aynı ikili dosya birden çok marka scope'u altında yayınlanır ve **her marka aynı `dscode` komutunu sunar**; bu yüzden global olarak **aynı anda tek marka** kurun. Aynı prefix'e ikinci bir marka kurulursa `dscode` çakışır ve npm `EEXIST` ile başarısız olur; markayı değiştirmeden önce `npm uninstall -g <mevcut marka>` çalıştırın. Bu paket iki komut adı sağlar: `dscode` ve bulunduğu scope'un marka adı (`@<scope>/cli` → `dscode` + `<scope>`); ikisi de aynı ikili dosyayı başlatır.
912
+
913
+ Neler alırsınız:
914
+
915
+ - **Terminal TUI** — klavye odaklı arayüz. Varsayılan tam ekran (alt-screen); `--inline` normal ekrana döner.
916
+ - **Yerel çalışma zamanı** — `dscode` ajan çekirdeğini ve HTTP/WebSocket sunucusunu aynı süreçte başlatır; ayrı bir arka uç kurmanız gerekmez.
917
+ - **İzin katmanı** — her araç çağrısı bu katmandan geçer: `system > project > user > local > session` kapsamları (dar olan önceliklidir), `auto` / `ask` / `deny` politikaları, riskli çağrılar için isteğe bağlı yapay zekâ sınıflandırıcısı ve onay zaman aşımı red sayılır.
918
+ - **Salt okunur plan modu** — `/plan` çalıştırmadan önce bir kontrol listesi gösterir; yalnızca onayladığınız adımlar yürütülür.
919
+ - **Mod geçişi** — `Shift+Tab` ile act · auto-act · goal · auto-goal · chat arasında geçiş.
920
+ - **Alt ajanlar, arka plan işleri ve iş akışları** — bağımsız işleri devredin, uzun işleri mevcut turdan ayırın.
921
+ - **Bellek ve beceriler** — oturumlar arası kalıcı bellek ve `/skills` ile eklenen yeniden kullanılabilir beceriler.
922
+ - **Genişletilebilirlik** — `/mcp` ile MCP sunucuları, eklentiler ve mesajlaşma kanalları (LINE, Slack, WhatsApp, QQ, DingTalk, Feishu).
923
+ - **Komut sandbox'ı** — shell araçları sandbox içinde çalışır (Linux'ta bwrap, macOS'ta SBPL, Windows'ta MXC/Docker) ve politika yoksa ana makineye düşmek yerine çalışmayı reddeder.
924
+ - **Temalar** — dark, light, nord, dracula, monokai, one-dark, tokyo-night.
925
+
926
+ Sık sorulanlar:
927
+
928
+ **Açık kaynak mı?** Hayır. Kapalı kaynaklı, tescilli bir yazılımdır; koşullar `LICENSE.md` içinde. Kopyalamak, değiştirmek, dağıtmak, alt lisanslamak veya satmak için hak sahibinin önceden yazılı izni gerekir.
929
+
930
+ **Kodum makineden çıkıyor mu?** Çalışma zamanı, arayüz, dosya işlemleri ve shell araçları yerelde çalışır; arada DeepSeekCode bulut servisi yoktur. Yalnızca yapılandırdığınız model uç noktasına giden istekler dışarı çıkar.
931
+
932
+ **Windows'ta çalışır mı?** Evet — Windows x64 / ARM64 için yerel ikili dosyalar (ayrıca macOS Intel/Apple Silicon ve Linux glibc/musl x64/ARM64) ve taşınabilir git içeren çevrimdışı paket var.
933
+
934
+ **Ayarlar nerede?** `~/.agent/` altında (`config.yaml`, `sessions/`, `skills/`, `logs/`).
935
+
936
+ Sürüm notları (İngilizce ve Çince) [What's New](#whats-new) bölümünde.
937
+
938
+ <a name="ar"></a>
939
+
940
+ ## العربية
941
+
942
+ **DeepSeekCode وكيل برمجة بالذكاء الاصطناعي يعمل محليًا.** وقت تشغيل واحد على جهازك يقدّم ثلاث واجهات — واجهة طرفية (TUI) وواجهة ويب وواجهة HTTP/WebSocket API — ويعمل مع أي نموذج متوافق مع OpenAI. يقوم على طبقة حقيقية للأذونات والموافقات، ووضع خطة للقراءة فقط بشكل صارم، وأوضاع act / goal / chat قابلة للتبديل أثناء التشغيل.
943
+
944
+ ```bash
945
+ npm install -g @deepseekcode/cli
946
+ dscode # وقت التشغيل المحلي + واجهة الطرفية
947
+ dscode exec "أصلح الاختبار الفاشل في src/utils" # بدون تفاعل، ناتج JSONL
948
+ dscode codeview --focus security # مراجعة كود بالذكاء الاصطناعي
949
+ ```
950
+
951
+ يتطلب Node.js 18 أو أحدث. عند أول تشغيل يرشدك معالج الإعداد إلى ضبط النموذج. واجهة الويب على `http://localhost:8080` (النماذج على `/#models`).
952
+
953
+ يُنشر الملف التنفيذي نفسه تحت عدة نطاقات (scope) للعلامات، و**كل علامة تُظهر الأمر `dscode` نفسه**؛ لذا ثبّت **علامة واحدة فقط** على المستوى العام. تثبيت علامة ثانية في البادئة نفسها يتعارض على `dscode` ويفشل بخطأ `EEXIST` من npm؛ نفّذ `npm uninstall -g <العلامة الحالية>` قبل التبديل. توفّر هذه الحزمة اسمَي أمر: `dscode` واسم علامة نطاقه (`@<scope>/cli` → `dscode` + `<scope>`)، وكلاهما يشغّل الملف نفسه.
954
+
955
+ ما الذي تحصل عليه:
956
+
957
+ - **واجهة طرفية TUI** — واجهة تعتمد على لوحة المفاتيح أولًا. الشاشة الكاملة (alt-screen) هي الافتراضي، و`--inline` يعيدك إلى الوضع العادي.
958
+ - **وقت تشغيل محلي** — يشغّل `dscode` نواة الوكيل وخادم HTTP/WebSocket في العملية نفسها، دون خدمة خلفية منفصلة.
959
+ - **طبقة الأذونات** — يمرّ كل استدعاء أداة عبرها: النطاقات `system > project > user > local > session` (الأضيق يفوز)، والسياسات `auto` / `ask` / `deny`، ومصنّف ذكاء اصطناعي اختياري للاستدعاءات عالية الخطورة، وانتهاء مهلة الموافقة يُعامل كرفض.
960
+ - **وضع خطة للقراءة فقط** — يعرض `/plan` قائمة تحقق قبل التنفيذ، ولا يُنفَّذ إلا ما توافق عليه.
961
+ - **تبديل الأوضاع** — `Shift+Tab` يتنقل بين act · auto-act · goal · auto-goal · chat.
962
+ - **وكلاء فرعيون وعمل في الخلفية وسير عمل** — فوّض المهام المستقلة وافصل الأعمال الطويلة عن الجولة الحالية.
963
+ - **الذاكرة والمهارات** — ذاكرة دائمة بين الجلسات ومهارات قابلة لإعادة الاستخدام تُدرج بـ `/skills`.
964
+ - **قابل للتوسيع** — خوادم MCP عبر `/mcp`، وإضافات، وقنوات مراسلة (LINE وSlack وWhatsApp وQQ وDingTalk وFeishu).
965
+ - **عزل للأوامر (sandbox)** — أدوات الصدفة تُنفَّذ داخل عزل (bwrap على Linux، وSBPL على macOS، وMXC/Docker على Windows)، وترفض التنفيذ عند غياب السياسة بدل الرجوع إلى المضيف.
966
+ - **السمات** — dark / light / nord / dracula / monokai / one-dark / tokyo-night.
967
+
968
+ أسئلة شائعة:
969
+
970
+ **هل هو مفتوح المصدر؟** لا. برنامج احتكاري مغلق المصدر، والشروط في `LICENSE.md`؛ النسخ أو التعديل أو التوزيع أو الترخيص من الباطن أو البيع يتطلب إذنًا كتابيًا مسبقًا من صاحب الحقوق.
971
+
972
+ **هل يخرج الكود من جهازي؟** وقت التشغيل والواجهة وعمليات الملفات وأدوات الصدفة تعمل محليًا، ولا توجد خدمة سحابية من DeepSeekCode في المسار. لا يخرج سوى الطلبات إلى نقطة نهاية النموذج التي أعددتها.
973
+
974
+ **هل يعمل على Windows؟** نعم — ملفات تنفيذية أصلية لـ Windows x64 / ARM64 (إضافة إلى macOS بنسختي Intel وApple Silicon وLinux glibc/musl على x64/ARM64)، وحزمة دون اتصال تتضمن git محمولًا.
975
+
976
+ **أين تُحفظ الإعدادات؟** في `~/.agent/` (`config.yaml` و`sessions/` و`skills/` و`logs/`).
977
+
978
+ ملاحظات الإصدار (بالإنجليزية والصينية) في [What's New](#whats-new).
979
+
980
+ <a name="hi"></a>
981
+
982
+ ## हिन्दी
983
+
984
+ **DeepSeekCode एक लोकल-फ़र्स्ट AI कोडिंग एजेंट है।** आपकी मशीन पर एक ही रनटाइम तीन सतहें देता है — टर्मिनल TUI, वेब UI और HTTP/WebSocket API — और किसी भी OpenAI-संगत मॉडल के साथ चलता है। इसका आधार असली permission/approval लेयर, सख़्त read-only plan मोड और रनटाइम पर बदले जा सकने वाले act / goal / chat मोड हैं।
985
+
986
+ ```bash
987
+ npm install -g @deepseekcode/cli
988
+ dscode # लोकल रनटाइम + टर्मिनल UI
989
+ dscode exec "src/utils का फ़ेल होता टेस्ट ठीक करो" # नॉन-इंटरैक्टिव, JSONL आउटपुट
990
+ dscode codeview --focus security # AI कोड रिव्यू
991
+ ```
992
+
993
+ Node.js 18 या नया चाहिए। पहले लॉन्च पर मॉडल सेटअप का गाइड मिलता है। वेब UI `http://localhost:8080` पर है (मॉडल: `/#models`)।
994
+
995
+ वही बाइनरी कई ब्रांड scope में प्रकाशित होती है और **हर ब्रांड वही `dscode` कमांड देता है**, इसलिए ग्लोबली **एक बार में सिर्फ़ एक ब्रांड** इंस्टॉल करें। उसी prefix में दूसरा ब्रांड `dscode` पर टकरा जाता है और npm `EEXIST` के साथ फ़ेल होता है; बदलने से पहले `npm uninstall -g <मौजूदा ब्रांड>` चलाएँ। यह पैकेज दो कमांड नाम देता है — `dscode` और अपने scope का ब्रांड नाम (`@<scope>/cli` → `dscode` + `<scope>`) — दोनों एक ही बाइनरी चलाते हैं।
996
+
997
+ आपको क्या मिलता है:
998
+
999
+ - **टर्मिनल TUI** — कीबोर्ड-फ़र्स्ट इंटरफ़ेस। डिफ़ॉल्ट पूरी स्क्रीन (alt-screen); `--inline` से सामान्य मोड।
1000
+ - **लोकल रनटाइम** — `dscode` एजेंट कोर और HTTP/WebSocket सर्वर एक ही प्रोसेस में शुरू करता है, अलग बैकएंड नहीं चाहिए।
1001
+ - **Permission लेयर** — हर टूल कॉल इससे गुज़रता है: scope `system > project > user > local > session` (संकीर्ण पहले), नीतियाँ `auto` / `ask` / `deny`, जोखिम भरे कॉल के लिए वैकल्पिक AI क्लासिफ़ायर, और approval का टाइमआउट अस्वीकृति माना जाता है।
1002
+ - **read-only plan मोड** — `/plan` पहले चेकलिस्ट दिखाता है; मंज़ूरी के बाद ही काम होता है।
1003
+ - **मोड बदलना** — `Shift+Tab` से act · auto-act · goal · auto-goal · chat।
1004
+ - **सब-एजेंट, बैकग्राउंड काम और वर्कफ़्लो** — अलग काम सौंपें और लंबे काम मौजूदा टर्न से अलग चलाएँ।
1005
+ - **मेमोरी और स्किल** — सेशन के पार टिकने वाली मेमोरी और `/skills` से जोड़ी जाने वाली दोबारा इस्तेमाल योग्य स्किल।
1006
+ - **एक्सटेंसिबल** — `/mcp` से MCP सर्वर, प्लगइन, और मैसेजिंग चैनल (LINE, Slack, WhatsApp, QQ, DingTalk, Feishu)।
1007
+ - **कमांड सैंडबॉक्स** — शेल टूल सैंडबॉक्स में चलते हैं (Linux पर bwrap, macOS पर SBPL, Windows पर MXC/Docker) और नीति न होने पर होस्ट पर लौटने के बजाय चलने से मना कर देते हैं।
1008
+ - **थीम** — dark / light / nord / dracula / monokai / one-dark / tokyo-night।
1009
+
1010
+ आम सवाल:
1011
+
1012
+ **क्या यह ओपन सोर्स है?** नहीं। यह क्लोज़्ड-सोर्स प्रोप्राइटरी सॉफ़्टवेयर है, शर्तें `LICENSE.md` में हैं; कॉपी, बदलाव, वितरण, सब-लाइसेंस या बिक्री के लिए अधिकारधारी की पूर्व लिखित अनुमति चाहिए।
1013
+
1014
+ **क्या मेरा कोड मशीन से बाहर जाता है?** रनटाइम, UI, फ़ाइल ऑपरेशन और शेल टूल सब लोकल चलते हैं; बीच में DeepSeekCode की कोई क्लाउड सेवा नहीं है। बाहर सिर्फ़ आपके सेट किए मॉडल endpoint की रिक्वेस्ट जाती हैं।
1015
+
1016
+ **Windows पर चलता है?** हाँ — Windows x64 / ARM64 के नेटिव बाइनरी (साथ में macOS Intel/Apple Silicon और Linux glibc/musl x64/ARM64) और पोर्टेबल git वाला ऑफ़लाइन पैकेज।
1017
+
1018
+ **सेटिंग्स कहाँ रहती हैं?** `~/.agent/` में (`config.yaml`, `sessions/`, `skills/`, `logs/`)।
1019
+
1020
+ रिलीज़ नोट्स (अंग्रेज़ी और चीनी) नीचे [What's New](#whats-new) में।
1021
+
1022
+ <a name="id"></a>
1023
+
1024
+ ## Bahasa Indonesia
1025
+
1026
+ **DeepSeekCode adalah agen coding AI yang berjalan lokal.** Satu runtime di mesin Anda melayani tiga permukaan — TUI terminal, UI web, dan API HTTP/WebSocket — dan bekerja dengan model apa pun yang kompatibel dengan OpenAI. Fondasinya lapisan izin/persetujuan yang nyata, mode plan yang benar-benar hanya-baca, dan mode act / goal / chat yang bisa diganti saat berjalan.
1027
+
1028
+ ```bash
1029
+ npm install -g @deepseekcode/cli
1030
+ dscode # runtime lokal + UI terminal
1031
+ dscode exec "perbaiki tes yang gagal di src/utils" # non-interaktif, keluaran JSONL
1032
+ dscode codeview --focus security # review kode dengan AI
1033
+ ```
1034
+
1035
+ Butuh Node.js 18 atau lebih baru. Peluncuran pertama memandu penyiapan model. UI web ada di `http://localhost:8080` (model di `/#models`).
1036
+
1037
+ Biner yang sama dirilis di beberapa scope merek dan **setiap merek menyediakan perintah `dscode` yang sama**, jadi pasang **hanya satu merek** secara global. Merek kedua di prefix yang sama bentrok di `dscode` dan npm gagal dengan `EEXIST`; jalankan `npm uninstall -g <merek saat ini>` sebelum berganti. Paket ini menyediakan dua nama perintah: `dscode` dan nama merek scope-nya (`@<scope>/cli` → `dscode` + `<scope>`); keduanya menjalankan biner yang sama.
1038
+
1039
+ Yang Anda dapat:
1040
+
1041
+ - **TUI terminal** — antarmuka yang mengutamakan keyboard. Layar penuh (alt-screen) sebagai default; `--inline` kembali ke mode biasa.
1042
+ - **Runtime lokal** — `dscode` menjalankan inti agen dan server HTTP/WebSocket dalam proses yang sama, tanpa backend terpisah.
1043
+ - **Lapisan izin** — setiap pemanggilan alat melewatinya: scope `system > project > user > local > session` (yang paling sempit menang), kebijakan `auto` / `ask` / `deny`, klasifikasi AI opsional untuk panggilan berisiko, dan timeout persetujuan dianggap penolakan.
1044
+ - **Mode plan hanya-baca** — `/plan` menampilkan daftar periksa sebelum eksekusi, dan hanya yang Anda setujui yang dijalankan.
1045
+ - **Mode yang bisa diganti** — `Shift+Tab` berganti act · auto-act · goal · auto-goal · chat.
1046
+ - **Subagen, kerja latar belakang, dan workflow** — delegasikan tugas terisolasi dan lepaskan pekerjaan panjang dari giliran berjalan.
1047
+ - **Memori dan skill** — memori lintas sesi dan skill yang bisa dipakai ulang lewat `/skills`.
1048
+ - **Dapat diperluas** — server MCP lewat `/mcp`, plugin, dan kanal perpesanan (LINE, Slack, WhatsApp, QQ, DingTalk, Feishu).
1049
+ - **Sandbox perintah** — alat shell berjalan di sandbox (bwrap di Linux, SBPL di macOS, MXC/Docker di Windows) dan menolak jalan bila tidak ada kebijakan, bukan jatuh ke host.
1050
+ - **Tema** — dark, light, nord, dracula, monokai, one-dark, tokyo-night.
1051
+
1052
+ Pertanyaan umum:
1053
+
1054
+ **Apakah open source?** Tidak. Ini perangkat lunak proprietari dengan kode tertutup; ketentuannya di `LICENSE.md`. Menyalin, mengubah, mendistribusikan, menyublisensikan, atau menjual memerlukan izin tertulis sebelumnya dari pemegang hak.
1055
+
1056
+ **Apakah kode saya keluar dari mesin?** Runtime, UI, operasi berkas, dan alat shell berjalan lokal; tidak ada layanan cloud DeepSeekCode di antaranya. Yang keluar hanya permintaan ke endpoint model yang Anda konfigurasi.
1057
+
1058
+ **Jalan di Windows?** Ya — tersedia biner native untuk Windows x64 / ARM64 (juga macOS Intel/Apple Silicon dan Linux glibc/musl x64/ARM64), plus paket offline dengan git portabel.
1059
+
1060
+ **Di mana konfigurasi disimpan?** Di `~/.agent/` (`config.yaml`, `sessions/`, `skills/`, `logs/`).
1061
+
1062
+ Catatan rilis (Inggris dan Tionghoa) di [What's New](#whats-new).
1063
+
1064
+ <a name="vi"></a>
1065
+
1066
+ ## Tiếng Việt
1067
+
1068
+ **DeepSeekCode là một tác tử lập trình AI chạy cục bộ.** Một runtime trên máy bạn phục vụ ba bề mặt — TUI trên terminal, giao diện web và API HTTP/WebSocket — và chạy với bất kỳ mô hình nào tương thích OpenAI. Nền tảng là lớp phân quyền/phê duyệt thực sự, chế độ plan chỉ đọc tuyệt đối và các chế độ act / goal / chat đổi được ngay khi đang chạy.
1069
+
1070
+ ```bash
1071
+ npm install -g @deepseekcode/cli
1072
+ dscode # runtime cục bộ + giao diện terminal
1073
+ dscode exec "sửa bài test hỏng trong src/utils" # không tương tác, xuất JSONL
1074
+ dscode codeview --focus security # review mã bằng AI
1075
+ ```
1076
+
1077
+ Cần Node.js 18 trở lên. Lần chạy đầu sẽ hướng dẫn cấu hình mô hình. Giao diện web ở `http://localhost:8080` (mô hình tại `/#models`).
1078
+
1079
+ Cùng một tệp nhị phân được phát hành dưới nhiều scope thương hiệu và **mọi thương hiệu đều cung cấp cùng lệnh `dscode`**, nên chỉ cài **một thương hiệu tại một thời điểm**. Thương hiệu thứ hai trong cùng prefix sẽ đụng `dscode` và npm báo `EEXIST`; chạy `npm uninstall -g <thương hiệu hiện tại>` trước khi đổi. Gói này cung cấp hai tên lệnh: `dscode` và tên thương hiệu của scope chứa nó (`@<scope>/cli` → `dscode` + `<scope>`); cả hai chạy cùng tệp nhị phân.
1080
+
1081
+ Bạn nhận được gì:
1082
+
1083
+ - **TUI trên terminal** — giao diện ưu tiên bàn phím. Mặc định toàn màn hình (alt-screen); `--inline` quay về chế độ thường.
1084
+ - **Runtime cục bộ** — `dscode` khởi động lõi tác tử và máy chủ HTTP/WebSocket trong cùng tiến trình, không cần backend riêng.
1085
+ - **Lớp phân quyền** — mọi lệnh gọi công cụ đều đi qua: scope `system > project > user > local > session` (hẹp hơn thắng), chính sách `auto` / `ask` / `deny`, bộ phân loại AI tùy chọn cho lệnh rủi ro, hết hạn phê duyệt được coi là từ chối.
1086
+ - **Chế độ plan chỉ đọc** — `/plan` đưa danh sách kiểm tra trước khi thực thi; chỉ phần bạn duyệt mới được chạy.
1087
+ - **Đổi chế độ** — `Shift+Tab` luân chuyển act · auto-act · goal · auto-goal · chat.
1088
+ - **Tác tử con, việc chạy nền và workflow** — giao việc độc lập và tách việc dài khỏi lượt hiện tại.
1089
+ - **Bộ nhớ và skill** — bộ nhớ bền vững giữa các phiên và skill dùng lại được chèn bằng `/skills`.
1090
+ - **Mở rộng** — máy chủ MCP qua `/mcp`, plugin và các kênh nhắn tin (LINE, Slack, WhatsApp, QQ, DingTalk, Feishu).
1091
+ - **Sandbox lệnh** — công cụ shell chạy trong sandbox (bwrap trên Linux, SBPL trên macOS, MXC/Docker trên Windows) và từ chối chạy khi thiếu chính sách thay vì rơi về máy chủ.
1092
+ - **Giao diện màu** — dark, light, nord, dracula, monokai, one-dark, tokyo-night.
1093
+
1094
+ Câu hỏi thường gặp:
1095
+
1096
+ **Có phải mã nguồn mở?** Không. Đây là phần mềm độc quyền, đóng mã nguồn; điều khoản trong `LICENSE.md`. Sao chép, sửa, phân phối, cấp phép lại hoặc bán đều cần sự đồng ý trước bằng văn bản của chủ sở hữu quyền.
1097
+
1098
+ **Mã của tôi có rời khỏi máy?** Runtime, giao diện, thao tác tệp và công cụ shell đều chạy cục bộ; không có dịch vụ đám mây DeepSeekCode ở giữa. Chỉ các yêu cầu tới endpoint mô hình bạn cấu hình mới ra ngoài.
1099
+
1100
+ **Có chạy trên Windows?** Có — có tệp nhị phân gốc cho Windows x64 / ARM64 (kèm macOS Intel/Apple Silicon và Linux glibc/musl x64/ARM64) và gói offline kèm git di động.
1101
+
1102
+ **Cấu hình lưu ở đâu?** Trong `~/.agent/` (`config.yaml`, `sessions/`, `skills/`, `logs/`).
1103
+
1104
+ Ghi chú phát hành (tiếng Anh và tiếng Trung) ở [What's New](#whats-new).
1105
+
1106
+ <a name="th"></a>
1107
+
1108
+ ## ไทย
1109
+
1110
+ **DeepSeekCode คือเอเจนต์เขียนโค้ด AI ที่ทำงานบนเครื่องคุณเอง** รันไทม์เดียวให้สามหน้าจอ — TUI บนเทอร์มินัล, เว็บ UI และ HTTP/WebSocket API — ใช้ได้กับโมเดลที่รองรับ OpenAI ทุกรุ่น หัวใจคือชั้นสิทธิ์และการอนุมัติจริง โหมด plan ที่อ่านได้อย่างเดียวโดยแท้ และโหมด act / goal / chat ที่สลับได้ระหว่างใช้งาน
1111
+
1112
+ ```bash
1113
+ npm install -g @deepseekcode/cli
1114
+ dscode # รันไทม์ในเครื่อง + UI เทอร์มินัล
1115
+ dscode exec "แก้เทสต์ที่พังใน src/utils" # ไม่โต้ตอบ แสดงผลเป็น JSONL
1116
+ dscode codeview --focus security # รีวิวโค้ดด้วย AI
1117
+ ```
1118
+
1119
+ ต้องใช้ Node.js 18 ขึ้นไป ครั้งแรกจะมีตัวช่วยตั้งค่าโมเดล เว็บ UI อยู่ที่ `http://localhost:8080` (ตั้งค่าโมเดลที่ `/#models`)
1120
+
1121
+ ไบนารีเดียวกันถูกเผยแพร่ภายใต้หลาย scope แบรนด์ และ**ทุกแบรนด์ให้คำสั่ง `dscode` เดียวกัน** จึงควรติดตั้ง**เพียงแบรนด์เดียว**ในระดับ global แบรนด์ที่สองใน prefix เดียวกันจะชนกันที่ `dscode` และ npm จะล้มเหลวด้วย `EEXIST` ก่อนเปลี่ยนให้รัน `npm uninstall -g <แบรนด์ปัจจุบัน>` แพ็กเกจนี้ให้ชื่อคำสั่งสองชื่อคือ `dscode` และชื่อแบรนด์ของ scope ที่มันอยู่ (`@<scope>/cli` → `dscode` + `<scope>`) ทั้งคู่เรียกไบนารีเดียวกัน
1122
+
1123
+ สิ่งที่คุณได้:
1124
+
1125
+ - **TUI บนเทอร์มินัล** — อินเทอร์เฟซที่เน้นคีย์บอร์ด ค่าเริ่มต้นเป็นเต็มหน้าจอ (alt-screen) ใช้ `--inline` เพื่อกลับไปโหมดปกติ
1126
+ - **รันไทม์ในเครื่อง** — `dscode` เปิดคอร์ของเอเจนต์และเซิร์ฟเวอร์ HTTP/WebSocket ในโปรเซสเดียวกัน ไม่ต้องติดตั้งแบ็กเอนด์แยก
1127
+ - **ชั้นสิทธิ์** — ทุกการเรียกเครื่องมือต้องผ่านชั้นนี้: ขอบเขต `system > project > user > local > session` (แคบกว่าชนะ), นโยบาย `auto` / `ask` / `deny`, ตัวจำแนก AI เสริมสำหรับการเรียกที่มีความเสี่ยง และการอนุมัติที่หมดเวลาถือเป็นการปฏิเสธ
1128
+ - **โหมด plan แบบอ่านอย่างเดียว** — `/plan` แสดงเช็กลิสต์ก่อนลงมือ และทำเฉพาะข้อที่คุณอนุมัติ
1129
+ - **สลับโหมดได้** — `Shift+Tab` สลับ act · auto-act · goal · auto-goal · chat
1130
+ - **เอเจนต์ย่อย งานเบื้องหลัง และเวิร์กโฟลว์** — มอบหมายงานที่แยกจากกัน และแยกงานยาวออกจากเทิร์นปัจจุบัน
1131
+ - **ความจำและสกิล** — ความจำที่คงอยู่ข้ามเซสชัน และสกิลที่ใช้ซ้ำได้ผ่าน `/skills`
1132
+ - **ขยายได้** — เซิร์ฟเวอร์ MCP ผ่าน `/mcp`, ปลั๊กอิน และช่องทางแชต (LINE, Slack, WhatsApp, QQ, DingTalk, Feishu)
1133
+ - **แซนด์บ็อกซ์คำสั่ง** — เครื่องมือเชลล์ทำงานในแซนด์บ็อกซ์ (bwrap บน Linux, SBPL บน macOS, MXC/Docker บน Windows) และปฏิเสธการทำงานเมื่อไม่มีนโยบายแทนที่จะถอยไปใช้โฮสต์
1134
+ - **ธีม** — dark / light / nord / dracula / monokai / one-dark / tokyo-night
1135
+
1136
+ คำถามที่พบบ่อย:
1137
+
1138
+ **เป็นโอเพนซอร์สไหม?** ไม่ใช่ เป็นซอฟต์แวร์ลิขสิทธิ์แบบปิดโค้ด เงื่อนไขอยู่ใน `LICENSE.md` การคัดลอก แก้ไข เผยแพร่ ให้สิทธิ์ช่วง หรือขาย ต้องได้รับอนุญาตเป็นลายลักษณ์อักษรล่วงหน้าจากผู้ถือสิทธิ์
1139
+
1140
+ **โค้ดของผมออกจากเครื่องไหม?** รันไทม์ UI การจัดการไฟล์ และเครื่องมือเชลล์ทำงานในเครื่องทั้งหมด ไม่มีบริการคลาวด์ของ DeepSeekCode คั่นกลาง สิ่งที่ออกไปคือคำขอไปยัง endpoint ของโมเดลที่คุณตั้งค่าไว้เท่านั้น
1141
+
1142
+ **ใช้บน Windows ได้ไหม?** ได้ มีไบนารีเนทีฟสำหรับ Windows x64 / ARM64 (รวมถึง macOS Intel/Apple Silicon และ Linux glibc/musl x64/ARM64) และแพ็กเกจออฟไลน์ที่พก git ไปด้วย
1143
+
1144
+ **เก็บการตั้งค่าไว้ที่ไหน?** ที่ `~/.agent/` (`config.yaml`, `sessions/`, `skills/`, `logs/`)
1145
+
1146
+ บันทึกการออกรุ่น (อังกฤษและจีน) อยู่ที่ [What's New](#whats-new)
1147
+
1148
+ <a name="for-ai-assistants"></a>
1149
+
1150
+ ## For AI assistants and LLM crawlers
1151
+
1152
+ A machine-readable summary of this project ships inside this package:
1153
+ `https://unpkg.com/@deepseekcode/cli/llms.txt` (the same file lives at `llms.txt` in the
1154
+ repository). It states what DeepSeekCode is and is not, the official npm coordinates, and the
1155
+ platform matrix — so an assistant can describe or cite this package without guessing. The project
1156
+ page is https://deepseekcode.github.io/deepseekwork/.
1157
+
1158
+ This README is published in 17 languages — every locale from `#zh-cn` through `#th` carries the same
1159
+ canonical definition, install line, feature list and FAQ — so an answer can be cited from the
1160
+ reader's own language instead of being translated on the fly.
1161
+
1162
+ <a name="whats-new"></a>
1163
+
1164
+ <!-- whatsnew:start -->
1165
+ <!-- 由 scripts/generate-changelog.mjs 从 packages/shared/src/changelog.ts 生成,请勿手动编辑;改源后运行 `bun run changelog`。 -->
1166
+
1167
+ ## What's New · 更新日志
1168
+
1169
+ ### 1.0.41 — 2026-10-23
1170
+
1171
+ 收藏与日历、品牌标识工作室、key 轮换与技能安全修复
1172
+
1173
+ Favorites & calendar, brand-icon studio, provider key rotation and skill hardening
1174
+
1175
+ **English**
1176
+
1177
+ - Favorites and retrieval: sessions and artifacts can be starred into their own view, with sorting and a favorites toolbar in the artifact list; sidebar and panels are unified under a rebuilt app shell with fuller bilingual copy.
1178
+ - Automation calendar: scheduled tasks gain a calendar view with a day-agenda sidebar, so you can see at a glance what runs when and what already ran.
1179
+ - Brand-icon studio: the app icon can be recolored and relettered from settings, previewed live and persisted.
1180
+ - Turn-bound suggestions: a ghost suggestion no longer reappears in a later turn — it renders only for the turn it was produced in.
1181
+ - Server and CLI: the daemon starts on login; question_answer is broadcast so answering on one client dismisses the prompt everywhere; the compaction progress line moves to the end of the output area instead of displacing the status line.
1182
+ - Provider key rotation: a throttled or dead key rolls over to the next one without breaking the session, plus a profile-append tool and a reviewer actor.
1183
+ - Skill hardening: `skill_define` rejects newline injection and its overwrite guard now also checks registered skills; a skill whose frontmatter repeats a top-level key is rejected wholesale instead of silently overwritten.
1184
+
1185
+ **中文**
1186
+
1187
+ - 收藏与检索:会话 / 产物可加星收藏并单独成栏,产物清单支持排序与收藏工具条;侧栏与面板随 App 壳重构统一,界面文案补齐中英对照。
1188
+ - 自动化日历:定时任务从列表升级为日历视图,配「当日议程」侧栏,按天看清什么时候会跑、跑过没有。
1189
+ - 品牌标识工作室:应用图标可在设置里换色换字形,改动即时预览并落盘。
1190
+ - 会话建议按回合判过期:上一轮给出的「幽灵建议」不会在新回合收场后重新冒出来,只在它所属的那一轮显示。
1191
+ - 服务端与 CLI:登录即拉起 daemon;question_answer 改为广播,任一客户端作答后其余端同步收起提问;压缩进度行落到输出区尾部,不再顶掉状态行。
1192
+ - provider key 轮换:单个 key 被限流或失效时自动切到下一个,不中断会话;新增画像追加工具与评审线程 actor。
1193
+ - 技能安全加固:`skill_define` 拒收换行注入,overwrite 守卫也看已注册技能;技能 frontmatter 出现重复顶层 key 时整份拒收,不再静默覆盖。
1194
+
1195
+ _Earlier releases: see the version list on this package page, or `CHANGELOG.md` in the repository (generated from the same source)._
1196
+
1197
+ <!-- whatsnew:end -->
1198
+
1199
+ <a name="license"></a>
1200
+
1201
+ ## License
1202
+
1203
+ Proprietary — © 2026 DeepSeekCode. All rights reserved.
1204
+
1205
+ This software is proprietary and closed source; it is **not** open source. Copying,
1206
+ modifying, distributing, sublicensing, or selling it requires the prior written
1207
+ permission of the copyright holder.
1208
+
1209
+ See `LICENSE.md` for the full terms.