Use Kimi Code with crystl
Updated September 18, 2026
Kimi Code is Moonshot AI’s terminal coding agent. crystl runs it and recognises it, but its integration is partial, and the gaps are large enough to read first rather than discover later.
Start here. Kimi has no crystl hooks, no transcript reader, and no resume. That means no approval panels, no turn-end reporting, no history search, no chat dock, and no resurrect. Everything below says which of those bite and when.
1. Install Kimi Code
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash
The script downloads the latest release, checks it, and puts kimi on your PATH. It does not need Node.js.
npm works too:
npm install -g @moonshot-ai/kimi-code
2. Log in
Run it from your project directory, then use its own login command:
kimi
/login
Pick either the Kimi Code device-code flow or a Kimi Platform API key.
3. Check it runs on its own
kimi --version
4. Launch it in crystl
Type it in a shard:
kimi
crystl spots kimi in the process tree and shows it as that shard’s agent. It is not in the agent pickers, and it has no settings tab, so typing the binary is the way in.
Do not expect an opening prompt to work. Kimi’s -p / --prompt flag runs one prompt non-interactively and then exits, which would end the session rather than start it, so crystl deliberately does not use it. Launch bare and type your first message into Kimi’s own interface.
What crystl can do with it
- It manages the shard. Gems, shards, splits, scrollback, renaming, formations, and the workbench all work, because none of them need the agent’s cooperation.
- It shows the agent and a working state. The shard reports Kimi as its agent, and crystl infers busy or idle by watching the process.
What it does not do
- No approval panels. crystl’s approval modes are driven by an agent reporting its tool calls. Kimi reports none, so nothing is intercepted and nothing is auto-approved. Answer its prompts in its own terminal.
- No turn-end reporting. Its shard rows stay a plain
idle, never✓ declared doneor❓ asked a question. A quiet Kimi shard proves nothing: it may be mid-task, finished, or waiting on you.crystl wait donefalls back to the process exiting, and vigil treats its idle reading as a guess. - No history, chat dock, or timeline. crystl ships no transcript reader for Kimi and will not guess at another agent’s format.
- No resume or resurrect. Kimi’s own resume is scoped to a directory or an interactive picker rather than keyed on an id crystl holds, so closing the shard ends it.
If you are fanning work out and want to walk away, that combination makes Kimi a poor choice of worker today. It is a fine choice for a shard you are sitting in front of.
Model sizes
Kimi takes a model with --model (or -m). crystl pins no default, deliberately, so Kimi falls through to default_model in ~/.kimi-code/config.toml and your own configuration wins.
Ids that resolve on a stock install: kimi-k3, kimi-k2.6, kimi-k2.5, and kimi-for-coding. Your config.toml may define shorter aliases of its own.
crystl agent profile set --agent kimi --small kimi-k2.5 --standard kimi-k2.6 --large kimi-k3
See model sizes.
Troubleshooting
The shard shows no agent. crystl matches kimi and kimi-code in the process tree. A wrapper script or an alias that launches it under another process name hides it.
A worker never reports done. It cannot. Use the process exiting as your signal, or run Kimi where you can watch it.
Other agent setup
- Use Claude Code with crystl
- Use Codex with crystl
- Use Antigravity CLI with crystl
- Open models to run any of them on your own hardware