Preface¶
The philosophy of DSH is “everything is a plugin.” dsh-frostfin is one of its loop plugins: it delegates the driver of a DSH session to the kimi acp subprocess of Kimi Code, allowing Kimi Code’s agent loop to run within DSH’s interface and approval system.
What This Is¶
dsh-frostfin is positioned as: Kimi Code as the agent loop of DeepSeek Harness — ACP bridge loop plugin.
It is released under the MIT license, with a current package version of 0.2.0, and the repository is located at https://github.com/pzc2004/dsh-frostfin. Using it requires an already logged-in Kimi Code; DSH installation requires Node.js ≥ 22.19.
Core Features¶
Below are the verified main capabilities.
- Loop bridge: DSH sessions are driven by the
kimi acpsubprocess, with streaming responses, thinking blocks, tool calls, and plan blocks rendered natively in DSH. - Approval bridge: Kimi’s tool approval requests land in DSH’s native approval dialog, with command previews aligned with tool card
callId. - Question channel: Kimi’s
AskUserQuestionis handled through a multi-select modal built by the DSH plugin; skip/cancel is treated as user not answering. - Image input: Images pasted into the input area are stored via DSH attachments, converted to base64, and sent to Kimi, which performs format gating and compression on its side.
- Session lifecycle: Supports DSH restart recovery, self-healing on Kimi process crashes, attaching to existing Kimi sessions, and replaying history.
- Mode distribution: A new “Frostfin Whale” mode is added and set as default; standard mode uses the native loop; the driver is locked after session creation.
- Model layer integration: Displays Kimi’s real model list, and models configured in DSH can be synced into Kimi’s configuration.
- Status bar and slash commands: Displays Kimi model, thinking level, permission mode, context usage, working directory, and git branch, with support for switching between plugin and Kimi commands.
- Goal and plan: DSH’s
/goalcan drive Kimi sessions; Kimi’s plan mode takes effect via/frostfin-mode plan, which is engine-level read-only. - Reversibility: Uninstalling revokes registration and restores the managed block in
kimi config.toml, but preserves session bindings and model caches under~/.frostfin.
Installation and Enablement¶
First Install Kimi Code and Log In¶
macOS / Linux:
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash
Windows:
irm https://code.kimi.com/kimi-code/install.ps1 | iex
Git for Windows must be installed before the first launch on Windows.
After installation, run kimi first and log in with /login in the TUI. frostfin drives it via the kimi acp subprocess, reusing that login state.
Then Install DSH¶
Start DSH Web:
npx @deepseek-ai/dsh web
The documentation notes that the DSH version pin is @deepseek-ai/dsh@0.1.0-rc.x.
Install dsh-frostfin¶
Web profile:
npx @deepseek-ai/dsh plugin --profile web add dsh-frostfin
Restart DSH Web after installation:
npx @deepseek-ai/dsh web
Headless profile:
npx @deepseek-ai/dsh plugin --profile headless add dsh-frostfin
In the headless scenario, only the host half takes effect; the panel endpoints and input area buttons do not appear.
Source installation:
git clone https://github.com/pzc2004/dsh-frostfin.git
cd dsh-frostfin && pnpm install && pnpm build
npx @deepseek-ai/dsh plugin --profile web add .
Upgrade:
npx @deepseek-ai/dsh plugin --profile web update dsh-frostfin
Restart dsh web after upgrading.
Uninstall:
npx @deepseek-ai/dsh plugin --profile web remove dsh-frostfin
Uninstalling revokes the registration and restores the managed block in kimi config.toml, but preserves session bindings and model caches under ~/.frostfin. To completely clear local state:
rm -rf ~/.frostfin
Typical Usage¶
Attach to an existing Kimi session:
/frostfin-attach
You can also attach with one click in the “Frostfin Whale” tab.
Permission mode selection:
- Daily use:
/yolo - Step-by-step review:
default - Read-only plan:
/frostfin-plan - Unattended:
/auto
Common slash commands:
/frostfin-mode
/frostfin-thinking
/frostfin-plan
/yolo
/auto
Kimi built-in commands can be passed through:
/compact
/status
/usage
/mcp
/tasks
/help
DSH’s /goal can drive Kimi sessions. Kimi sessions’ plan mode uses /frostfin-plan, and can also take effect via /frostfin-mode plan; this mode is engine-level read-only.
Applicable Scenarios and Notes¶
Suitable for scenarios where you already use DSH Web or a headless host and want to connect Kimi Code’s agent loop into DSH sessions. Before installation, review the source code and MIT license; the plugin runs with the DSH host and uses the current dsh process’s permissions.
Points to note:
- frostfin sessions mainly manage Kimi permission modes; DSH’s Workspace Write sandbox cannot govern tools inside the Kimi process.
- It is recommended to keep DSH’s default
workspace-writeto avoiddanger-full-access.danger-full-accesschanges the approval policy tonever, and with the plugin configured aspermission: 'ask', all subsequent approvals will be automatically rejected. yolomode still prompts for.env, SSH keys, credentials, and.gitcontrol directories.automode self-approves everything, and even question tools are rejected, making it unsuitable for exposing sensitive directories.- DSH’s
/planonly works for native loop sessions; Kimi sessions’ plan mode uses/frostfin-plan. - Requires an existing Kimi Code login state.
- Git for Windows must be installed before the first launch on Windows.
Conclusion¶
The value of dsh-frostfin lies in preserving DSH’s plugin host and approval interface while letting Kimi Code serve as the session driver. Repository address:
https://github.com/pzc2004/dsh-frostfin