DSH-FrostFin: Kimi Code as DSH's Agent Loop

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 acp subprocess, 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 AskUserQuestion is 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 /goal can 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-write to avoid danger-full-access. danger-full-access changes the approval policy to never, and with the plugin configured as permission: 'ask', all subsequent approvals will be automatically rejected.
  • yolo mode still prompts for .env, SSH keys, credentials, and .git control directories.
  • auto mode self-approves everything, and even question tools are rejected, making it unsuitable for exposing sensitive directories.
  • DSH’s /plan only 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye