为 DeepSeek 前缀缓存定制的终端 Code Agent(纯 Go),缓存命中率 95-99%,命中输入定价为未命中的 1/30。A terminal coding agent optimized for DeepSeek prefix caching — 95-99% cache hit, cache-hit input priced at 1/30th of cache-miss.
130
stars
645
commits
Go
primary language
Sep 10, 2026
updated
English · 简体中文
A DeepSeek-native terminal code agent engineered for cache economics. Prefix-cache architecture keeps the longest common prefix cache-hot across turns; LLM auto-selects pro for deep reasoning and flash for routine tasks — maximizing cache hits and minimizing token cost. Premium TUI with .claude/skills/ and .claude.json MCP configs drop in — zero-friction onboarding. One Go binary.
DeepSeek 原生终端编码代理,围绕缓存经济学设计。 前缀缓存架构让最长公共前缀跨轮次持续命中;LLM 自动按任务选模型——pro 做深度推理,flash 处理常规任务——最大化缓存命中,最小化 token 成本。专业级 TUI,.claude/skills/ 和 .claude.json MCP 配置开箱兼容,零摩擦迁移。单一 Go 二进制。
curl -fsSL https://raw.githubusercontent.com/Menfre01/waveloom/main/install.sh | sh
Or via Homebrew:
brew install menfre01/tap/waveloom
Supports macOS / Linux / Windows, AMD64 & ARM64. Installs to
~/.local/bin, no sudo needed.
Requires Git for Windows. Open PowerShell and run:
powershell -c "irm https://raw.githubusercontent.com/Menfre01/waveloom/main/install.ps1 | iex"
[!TIP] For the best experience on Windows, use WSL2. Install the Linux binary inside WSL2 and enjoy native performance — no Git Bash forwarding layer, smoother terminal rendering, and faster shell commands.
Prefer Git Bash? Waveloom requires
bash.exe— cmd and PowerShell are not supported. After installation, open Git Bash and run the commands below. Ifwaveloomis not found, add%USERPROFILE%\.local\binto your Windows PATH (the installer handles this automatically).
waveloom setup
waveloom
[!IMPORTANT] API key connects directly to DeepSeek / Kimi / OpenAI — your code never passes through a third-party server. Every file write and command execution requires your confirmation.
| Waveloom | Claude Code | Reasonix | |
|---|---|---|---|
| Skill/Plugin | Drop-in: .claude/skills/ SKILL.md + .claude/plugins/ installed plugins, 9 frontmatter fields ($ARGUMENTS, paths, !`cmd` injection, etc.) | Native SKILL.md + commands + plugin system | 13 frontmatter fields, no variable substitution in skill bodies |
| Cache design | DeepSeek prefix matching: 4-tier watermark (Snip → Prune → Summarize), compaction bytes never change | Anthropic cache_control: cache_edits API, dynamic system prompt sections | DeepSeek prefix matching: 4-tier (notice → snip → compact → force), session.Replace() bumps rewrite version |
| Compaction | Monotonic — compactionDecisionSet + triple cursor, each message compacted once | Per-turn independent, no durability guarantee | Prefix bytes preserved across compact, but no per-message decision tracking |
| Plan mode | Guard restricts writes to plan file only; build tools auto-allowed | Write restricted to plan file only; rich exit UI | planmode.Policy with trust gates for bash/MCP; Marker string injected; no plan file |
| Sub-agents | Fork (inherits context) / Cold: Evaluate (code review) • Explore (read-only) • Verification (adversarial) | Fork + Cold + In-process + Coordinator | task tool with nested agent, background via job manager |
| Runtime | Go binary ~20MB, zero deps | Node.js | Go binary + Desktop app, external plugin host |
| MCP | Full client (config, transport, tool proxy), registered alongside built-in tools | Native MCP support | Native MCP support |
| Permission | 8-step pipeline, 5-layer tool output security (Unicode cleaning → injection scan → boundary markers → risk grading → safe truncation), 4-tier command safety (RiskNone/RiskLow/RiskMedium/RiskHigh) | 8-source rule merge + LLM classifier auto-approval | Policy + Approver, 9-stage execute pipeline, shellsafe readOnly detect |
| Hook | PreToolUse / PostToolUse / Notification / Stop, permission_mode field, fail-open by default (exit code 2 explicitly blocks) | Native hooks: PreToolUse, PostToolUse, etc. | — |
| TUI polish | Streaming reasoning, rich diff, permission dialogs, @ fuzzy picker, / palette, i18n, theme toggle — premium terminal UX | Native TUI (Ink/React), gold standard | Functional TUI, different UX paradigm |
Choose Waveloom if: you want premium terminal UX with multi-provider support (DeepSeek / Kimi / OpenAI), .claude/skills/ + .claude/plugins/ drop-in, without the cache miss cost.
Choose Claude Code if: you use Anthropic, need coordinator mode, deep in the Claude ecosystem.
Choose Reasonix if: you want a desktop GUI, QQ Bot integration, or a larger community ecosystem.
Waveloom is the only DeepSeek-native agent with premium terminal polish. Streaming reasoning with syntax highlighting, rich diff, permission dialogs, @ fuzzy file picker, / command palette, light/dark/color-blind theme toggle, ? shortcut help, zh-CN / en-US i18n. Most DeepSeek agents treat the TUI as an afterthought — raw text streaming, no interaction design. Fire it up and feel the difference.
filesystem.denyRead / credentials.files; recommended list in the settings docs), env var stripping, configurable env injection (redirect build-tool caches like GOPATH/GOMODCACHE/npm_config_cache into the workspace), and network control (off / on). Auto-activated with --bypass-permissions; configure via "sandbox" in settings.json or --sandbox-network off|on.settings.json.waveloom --continue. The agent remembers all prior context.Shift+Tab to enter/exit, Guard-enforced write protection."sub_model": "deepseek-v4-flash" in settings.json to assign a lightweight model for explore subagents. Explore uses flash (~2× cheaper) for code search and discovery; evaluate/verification subagents use pro for full reasoning. LLM auto-selects between pro/flash based on task complexity. Saves ~50% on subagent token cost.read / write / edit / bash / web_fetch / web_search / ask_user_question / enter_plan_mode / exit_plan_mode / skill / agent / kill_background_task / todo_create / todo_update.--locale CLI flag, /locale command, auto-detect from LANG.Q: How do I switch models?
Type /model in interactive mode, or waveloom --model deepseek-v4-flash. Select proplan to use the pro model in plan mode and the flash model for regular tasks (/model proplan). Requires model (plan mode) and sub_model (regular tasks) configured in settings.json; it falls back to a plain model error otherwise.
Q: Does web_search work with deepseek-v4-flash?
Yes — with deepseek-v4-flash, Waveloom automatically switches to the DeepSeek Responses API and web_search becomes a server-side built-in search (no DuckDuckGo/Brave dependency). Other models keep the local search backends.
Q: How do I switch LLM providers?
Type /provider to open the interactive provider picker (overlay with ↑↓ select / Enter confirm / Esc cancel), or /provider kimi to switch directly. Profiles are configured in settings.json under llm.profiles.
Q: Is my API key safe?
Stored locally at ~/.waveloom/. Keys connect directly to DeepSeek / Kimi / OpenAI — no third-party relay.
Q: How do I switch languages?
Type /locale to toggle between Chinese and English, or waveloom --locale zh-CN. The setting persists automatically in settings.json.
Q: How do I configure a lightweight model for explore subagents?
Add "sub_model": "deepseek-v4-flash" to the llm section in settings.json. The explore subagent uses this model for code search and discovery tasks — ~2× cheaper than the primary model. For evaluate/verification subagents, the primary model (model, e.g. deepseek-v4-pro) is used for full reasoning quality. No runtime switching needed.
Q: What languages are supported?
Waveloom works with any text-based project. Post-edit LSP diagnostics automatically verify code correctness for Go, Rust, TypeScript/JavaScript, and C/C++. Other languages use native build tools (go build, npx tsc, cargo build, make, etc.).
| Document | Content |
|---|---|
usage | Interactive mode, shortcuts, Skill system |
settings | API key, model, timeout, compaction, sub_model |
prefix-cache | DeepSeek caching, four-tier compaction |
environment | Toolchain probing |
mcp | MCP client, config sources, CLI management |
mcp-ide-setup | Connect IntelliJ IDEA / VS Code MCP Server |
acp | ACP (Agent Client Protocol) agent mode for Zed, protocol compatibility |
faq | Frequently asked questions |
lsp | LSP diagnostics, language detection, configuration |
Go 1.25+, make build / make test. See CONTRIBUTING.md for project structure and contribution guide.
Built with Bubble Tea (TUI framework), Glamour (Markdown rendering), and Lip Gloss (terminal styling) — part of the Charm ecosystem.
645 commits
Go
99.7%
为 DeepSeek 前缀缓存定制的终端 Code Agent(纯 Go),缓存命中率 95-99%,命中输入定价为未命中的 1/30。A terminal coding agent optimized for DeepSeek prefix caching — 95-99% cache hit, cache-hit input priced at 1/30th of cache-miss.
130
stars
645
commits
Go
primary language
Sep 10, 2026
updated
English · 简体中文
A DeepSeek-native terminal code agent engineered for cache economics. Prefix-cache architecture keeps the longest common prefix cache-hot across turns; LLM auto-selects pro for deep reasoning and flash for routine tasks — maximizing cache hits and minimizing token cost. Premium TUI with .claude/skills/ and .claude.json MCP configs drop in — zero-friction onboarding. One Go binary.
DeepSeek 原生终端编码代理,围绕缓存经济学设计。 前缀缓存架构让最长公共前缀跨轮次持续命中;LLM 自动按任务选模型——pro 做深度推理,flash 处理常规任务——最大化缓存命中,最小化 token 成本。专业级 TUI,.claude/skills/ 和 .claude.json MCP 配置开箱兼容,零摩擦迁移。单一 Go 二进制。
curl -fsSL https://raw.githubusercontent.com/Menfre01/waveloom/main/install.sh | sh
Or via Homebrew:
brew install menfre01/tap/waveloom
Supports macOS / Linux / Windows, AMD64 & ARM64. Installs to
~/.local/bin, no sudo needed.
Requires Git for Windows. Open PowerShell and run:
powershell -c "irm https://raw.githubusercontent.com/Menfre01/waveloom/main/install.ps1 | iex"
[!TIP] For the best experience on Windows, use WSL2. Install the Linux binary inside WSL2 and enjoy native performance — no Git Bash forwarding layer, smoother terminal rendering, and faster shell commands.
Prefer Git Bash? Waveloom requires
bash.exe— cmd and PowerShell are not supported. After installation, open Git Bash and run the commands below. Ifwaveloomis not found, add%USERPROFILE%\.local\binto your Windows PATH (the installer handles this automatically).
waveloom setup
waveloom
[!IMPORTANT] API key connects directly to DeepSeek / Kimi / OpenAI — your code never passes through a third-party server. Every file write and command execution requires your confirmation.
| Waveloom | Claude Code | Reasonix | |
|---|---|---|---|
| Skill/Plugin | Drop-in: .claude/skills/ SKILL.md + .claude/plugins/ installed plugins, 9 frontmatter fields ($ARGUMENTS, paths, !`cmd` injection, etc.) | Native SKILL.md + commands + plugin system | 13 frontmatter fields, no variable substitution in skill bodies |
| Cache design | DeepSeek prefix matching: 4-tier watermark (Snip → Prune → Summarize), compaction bytes never change | Anthropic cache_control: cache_edits API, dynamic system prompt sections | DeepSeek prefix matching: 4-tier (notice → snip → compact → force), session.Replace() bumps rewrite version |
| Compaction | Monotonic — compactionDecisionSet + triple cursor, each message compacted once | Per-turn independent, no durability guarantee | Prefix bytes preserved across compact, but no per-message decision tracking |
| Plan mode | Guard restricts writes to plan file only; build tools auto-allowed | Write restricted to plan file only; rich exit UI | planmode.Policy with trust gates for bash/MCP; Marker string injected; no plan file |
| Sub-agents | Fork (inherits context) / Cold: Evaluate (code review) • Explore (read-only) • Verification (adversarial) | Fork + Cold + In-process + Coordinator | task tool with nested agent, background via job manager |
| Runtime | Go binary ~20MB, zero deps | Node.js | Go binary + Desktop app, external plugin host |
| MCP | Full client (config, transport, tool proxy), registered alongside built-in tools | Native MCP support | Native MCP support |
| Permission | 8-step pipeline, 5-layer tool output security (Unicode cleaning → injection scan → boundary markers → risk grading → safe truncation), 4-tier command safety (RiskNone/RiskLow/RiskMedium/RiskHigh) | 8-source rule merge + LLM classifier auto-approval | Policy + Approver, 9-stage execute pipeline, shellsafe readOnly detect |
| Hook | PreToolUse / PostToolUse / Notification / Stop, permission_mode field, fail-open by default (exit code 2 explicitly blocks) | Native hooks: PreToolUse, PostToolUse, etc. | — |
| TUI polish | Streaming reasoning, rich diff, permission dialogs, @ fuzzy picker, / palette, i18n, theme toggle — premium terminal UX | Native TUI (Ink/React), gold standard | Functional TUI, different UX paradigm |
Choose Waveloom if: you want premium terminal UX with multi-provider support (DeepSeek / Kimi / OpenAI), .claude/skills/ + .claude/plugins/ drop-in, without the cache miss cost.
Choose Claude Code if: you use Anthropic, need coordinator mode, deep in the Claude ecosystem.
Choose Reasonix if: you want a desktop GUI, QQ Bot integration, or a larger community ecosystem.
Waveloom is the only DeepSeek-native agent with premium terminal polish. Streaming reasoning with syntax highlighting, rich diff, permission dialogs, @ fuzzy file picker, / command palette, light/dark/color-blind theme toggle, ? shortcut help, zh-CN / en-US i18n. Most DeepSeek agents treat the TUI as an afterthought — raw text streaming, no interaction design. Fire it up and feel the difference.
filesystem.denyRead / credentials.files; recommended list in the settings docs), env var stripping, configurable env injection (redirect build-tool caches like GOPATH/GOMODCACHE/npm_config_cache into the workspace), and network control (off / on). Auto-activated with --bypass-permissions; configure via "sandbox" in settings.json or --sandbox-network off|on.settings.json.waveloom --continue. The agent remembers all prior context.Shift+Tab to enter/exit, Guard-enforced write protection."sub_model": "deepseek-v4-flash" in settings.json to assign a lightweight model for explore subagents. Explore uses flash (~2× cheaper) for code search and discovery; evaluate/verification subagents use pro for full reasoning. LLM auto-selects between pro/flash based on task complexity. Saves ~50% on subagent token cost.read / write / edit / bash / web_fetch / web_search / ask_user_question / enter_plan_mode / exit_plan_mode / skill / agent / kill_background_task / todo_create / todo_update.--locale CLI flag, /locale command, auto-detect from LANG.Q: How do I switch models?
Type /model in interactive mode, or waveloom --model deepseek-v4-flash. Select proplan to use the pro model in plan mode and the flash model for regular tasks (/model proplan). Requires model (plan mode) and sub_model (regular tasks) configured in settings.json; it falls back to a plain model error otherwise.
Q: Does web_search work with deepseek-v4-flash?
Yes — with deepseek-v4-flash, Waveloom automatically switches to the DeepSeek Responses API and web_search becomes a server-side built-in search (no DuckDuckGo/Brave dependency). Other models keep the local search backends.
Q: How do I switch LLM providers?
Type /provider to open the interactive provider picker (overlay with ↑↓ select / Enter confirm / Esc cancel), or /provider kimi to switch directly. Profiles are configured in settings.json under llm.profiles.
Q: Is my API key safe?
Stored locally at ~/.waveloom/. Keys connect directly to DeepSeek / Kimi / OpenAI — no third-party relay.
Q: How do I switch languages?
Type /locale to toggle between Chinese and English, or waveloom --locale zh-CN. The setting persists automatically in settings.json.
Q: How do I configure a lightweight model for explore subagents?
Add "sub_model": "deepseek-v4-flash" to the llm section in settings.json. The explore subagent uses this model for code search and discovery tasks — ~2× cheaper than the primary model. For evaluate/verification subagents, the primary model (model, e.g. deepseek-v4-pro) is used for full reasoning quality. No runtime switching needed.
Q: What languages are supported?
Waveloom works with any text-based project. Post-edit LSP diagnostics automatically verify code correctness for Go, Rust, TypeScript/JavaScript, and C/C++. Other languages use native build tools (go build, npx tsc, cargo build, make, etc.).
| Document | Content |
|---|---|
usage | Interactive mode, shortcuts, Skill system |
settings | API key, model, timeout, compaction, sub_model |
prefix-cache | DeepSeek caching, four-tier compaction |
environment | Toolchain probing |
mcp | MCP client, config sources, CLI management |
mcp-ide-setup | Connect IntelliJ IDEA / VS Code MCP Server |
acp | ACP (Agent Client Protocol) agent mode for Zed, protocol compatibility |
faq | Frequently asked questions |
lsp | LSP diagnostics, language detection, configuration |
Go 1.25+, make build / make test. See CONTRIBUTING.md for project structure and contribution guide.
Built with Bubble Tea (TUI framework), Glamour (Markdown rendering), and Lip Gloss (terminal styling) — part of the Charm ecosystem.
645 commits
Go
99.7%