{"id":51723144,"url":"https://github.com/Menfre01/waveloom","last_synced_at":"2026-07-24T07:01:11.461Z","repository":{"id":367024931,"uuid":"1278881844","full_name":"Menfre01/waveloom","owner":"Menfre01","description":"为 DeepSeek 前缀缓存定制的终端 Code Agent（纯 Go），缓存命中率 95-99%，输入成本降至 1/50。A terminal coding agent optimized for DeepSeek prefix caching — 95-99% cache hit, 1/50th the cost.","archived":false,"fork":false,"pushed_at":"2026-07-23T14:00:53.000Z","size":270671,"stargazers_count":56,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-23T16:04:37.734Z","etag":null,"topics":["ai","bubble-tea","cli","coding-agent","deepseek","go","llm","terminal","tui"],"latest_commit_sha":null,"homepage":"https://github.com/Menfre01/waveloom","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Menfre01.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.en.md","contributing":".github/CONTRIBUTING.en.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.en.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-24T07:16:26.000Z","updated_at":"2026-07-23T14:24:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Menfre01/waveloom","commit_stats":null,"previous_names":["menfre01/waveloom"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/Menfre01/waveloom","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Menfre01%2Fwaveloom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Menfre01%2Fwaveloom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Menfre01%2Fwaveloom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Menfre01%2Fwaveloom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Menfre01","download_url":"https://codeload.github.com/Menfre01/waveloom/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Menfre01%2Fwaveloom/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35831258,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-24T02:00:07.870Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","bubble-tea","cli","coding-agent","deepseek","go","llm","terminal","tui"],"created_at":"2026-07-17T15:00:32.874Z","updated_at":"2026-07-24T07:01:11.448Z","avatar_url":"https://github.com/Menfre01.png","language":"Go","funding_links":[],"categories":["Applications","Terminal-native coding agents"],"sub_categories":["AI","Open Source"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eEnglish\u003c/strong\u003e\n  \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"./docs/README.zh-CN.md\"\u003e简体中文\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/logo.svg\" alt=\"Waveloom\" width=\"360\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Menfre01/waveloom/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/Menfre01/waveloom?style=flat-square\u0026color=00ADD8\u0026labelColor=161b22\" alt=\"release\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Menfre01/waveloom/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/Menfre01/waveloom/actions/workflows/ci.yml/badge.svg?style=flat-square\u0026labelColor=161b22\" alt=\"CI\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Menfre01/waveloom/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/downloads/Menfre01/waveloom/total?style=flat-square\u0026color=00ADD8\u0026label=GitHub%20downloads\u0026labelColor=161b22\" alt=\"downloads\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://go.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/language-Go-00ADD8?style=flat-square\u0026logo=go\u0026logoColor=white\u0026labelColor=161b22\" alt=\"Go\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://platform.deepseek.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/DeepSeek-native-4D6BFE?style=flat-square\u0026labelColor=161b22\" alt=\"DeepSeek\"/\u003e\u003c/a\u003e\n  \u003ca href=\"./LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-Apache%202.0-8b949e?style=flat-square\u0026labelColor=161b22\" alt=\"license\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n**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.\n\n**DeepSeek 原生终端编码代理，围绕缓存经济学设计。** 前缀缓存架构让最长公共前缀跨轮次持续命中；LLM 自动按任务选模型——pro 做深度推理，flash 处理常规任务——最大化缓存命中，最小化 token 成本。专业级 TUI，`.claude/skills/` 和 `.claude.json` MCP 配置开箱兼容，零摩擦迁移。单一 Go 二进制。\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/demo.en.gif\" alt=\"Waveloom Demo\" width=\"900\"/\u003e\n\u003c/p\u003e\n\n---\n\n## Quick Start\n\n### macOS / Linux\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/Menfre01/waveloom/main/install.sh | sh\n```\n\nOr via Homebrew:\n\n```sh\nbrew install menfre01/tap/waveloom\n```\n\n\u003e Supports macOS / Linux / Windows, AMD64 \u0026 ARM64. Installs to `~/.local/bin`, no sudo needed.\n\n### Windows\n\nRequires [Git for Windows](https://git-scm.com/downloads/win). Open PowerShell and run:\n\n```powershell\npowershell -c \"irm https://raw.githubusercontent.com/Menfre01/waveloom/main/install.ps1 | iex\"\n```\n\n\u003e [!TIP]\n\u003e **For the best experience on Windows, use [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install).** Install the Linux binary inside WSL2 and enjoy native performance — no Git Bash forwarding layer, smoother terminal rendering, and faster shell commands.\n\u003e\n\u003e Prefer Git Bash? Waveloom requires `bash.exe` — cmd and PowerShell are not supported. After installation, **open Git Bash** and run the commands below. If `waveloom` is not found, add `%USERPROFILE%\\.local\\bin` to your Windows PATH (the installer handles this automatically).\n\n### Configure\n\n```sh\nwaveloom setup\nwaveloom\n```\n\n\u003e [!IMPORTANT]\n\u003e 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.\n\n---\n\n## How does it compare?\n\n| | Waveloom | Claude Code | Reasonix |\n|---|---|---|---|\n| 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 |\n| 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 |\n| 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 |\n| 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 |\n| Sub-agents | Fork (inherits context) / Cold: Evaluate (code review) • Explore (read-only) • Verification (adversarial) • Advisor (deep analysis) | Fork + Cold + In-process + Coordinator | `task` tool with nested agent, background via job manager |\n| Runtime | Go binary ~20MB, zero deps | Node.js | Go binary + Desktop app, external plugin host |\n| MCP | Full client (config, transport, tool proxy), registered alongside built-in tools | Native MCP support | Native MCP support |\n| Permission | 7-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 |\n| Hook | PreToolUse / PostToolUse / Notification / Stop / SubagentStop, permission_mode field, runtime fail-open | Native hooks: PreToolUse, PostToolUse, etc. | — |\n| 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 |\n\n**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.  \n**Choose Claude Code if**: you use Anthropic, need coordinator mode, deep in the Claude ecosystem.  \n**Choose Reasonix if**: you want a desktop GUI, QQ Bot integration, or a larger community ecosystem.\n\n---\n\n## Why TUI\n\n**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.\n\n---\n\n## Highlights\n\n- **Prefix cache optimized** — Fixed System Prompt, append-only message history, four-tier watermark compaction. Maximum common prefix stays cache-hot across turns.\n- **Permission safety** — Three-tier decisions (allow / deny / ask) with pattern-matching rule engine, backed by a 5-layer tool output security pipeline (Unicode cleaning → injection scan → boundary markers → risk grading → safe truncation). Every write operation requires your confirmation.\n- **Hook system** — PreToolUse / PostToolUse / Notification / Stop / SubagentStop hooks with permission_mode field. Runtime fail-open — hooks never block tool execution. Configured via `settings.json`.\n- **Session persistence** — Close the terminal, come back days later with `waveloom --continue`. The agent remembers all prior context.\n- **Checkpoint/Rewind** — Rewind to any previous message with full file state restoration. Fork mode preserves original session intact — history never lost.\n- **Plan Mode** — Two-stage workflow: explore \u0026 design first, implement after approval. `Shift+Tab` to enter/exit, Guard-enforced write protection.\n- **Advisor Mode** — Price-optimized dual-model routing: flash handles routine coding, pro auto-activates for plan mode and code review. Enable with `\"mode\": \"advisor\"` in settings.\n- **14 built-in tools** — `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`.\n- **i18n multilingual** — Full zh-CN / en-US bilingual UI. `--locale` CLI flag, `/locale` command, auto-detect from LANG.\n\n---\n\n## FAQ\n\n**Q: How do I switch models?**  \nType `/model` in interactive mode, or `waveloom --model deepseek-v4-flash`.\n\n**Q: How do I switch LLM providers?**  \nType `/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`.\n\n**Q: Is my API key safe?**  \nStored locally at `~/.waveloom/`. Keys connect directly to DeepSeek / Kimi / OpenAI — no third-party relay.\n\n**Q: How do I switch languages?**  \nType `/locale` to toggle between Chinese and English, or `waveloom --locale zh-CN`. The setting persists automatically in `settings.json`.\n\n**Q: How do I enable advisor mode?**  \nAdd `\"mode\": \"advisor\"` to the `llm` section in `settings.json`. In advisor mode, the agent uses the secondary model (`sub_model`, e.g. `deepseek-v4-flash`) for routine coding and auto-switches to the primary model (`model`, e.g. `deepseek-v4-pro`) inside plan mode and for code review — cutting token costs by ~50%.\n\n**Q: What languages are supported?**  \nWaveloom works with any text-based project. Code verification uses each language's native build tools (`go build`, `npx tsc`, `cargo build`, `make`, etc.) — no LSP server required.\n\n---\n\n## Docs\n\n| Document | Content |\n|----------|---------|\n| [`usage`](./docs/usage.en.md) | Interactive mode, shortcuts, Skill system |\n| [`install`](./docs/install.en.md) | Homebrew / curl / source / shell completions |\n| [`settings`](./docs/settings.en.md) | API key, model, timeout, compaction, advisor mode |\n| [`prefix-cache`](./docs/prefix-cache.en.md) | DeepSeek caching, four-tier compaction |\n| [`environment`](./docs/environment.en.md) | Toolchain probing |\n| [`mcp`](./docs/mcp.en.md) | MCP client, config sources, CLI management |\n| [`faq`](./docs/faq.en.md) | Frequently asked questions |\n\n---\n\n## Development\n\nGo 1.25+, `make build` / `make test`. See [`CONTRIBUTING.md`](./CONTRIBUTING.md) for project structure and contribution guide.\n\nBuilt with [Bubble Tea](https://github.com/charmbracelet/bubbletea) (TUI framework),\n[Glamour](https://github.com/charmbracelet/glamour) (Markdown rendering),\nand [Lip Gloss](https://github.com/charmbracelet/lipgloss) (terminal styling) — part of the [Charm](https://charm.sh) ecosystem.\n\n\n## Recommended Tools\n\nThese third-party tools are not required but significantly improve the Waveloom experience:\n\n| Tool | Description |\n|------|-------------|\n| [ripgrep](https://github.com/BurntSushi/ripgrep) (`rg`) | High-performance recursive grep, ~10x faster than `grep -r`. Waveloom prefers `rg` over `grep` for all code searches when available. |\n| [RTK](https://github.com/rtk-ai/rtk) (`rtk`) | Token-optimized CLI proxy — rewrites common commands to compact equivalents, saving 60–90% input tokens. Waveloom loads it via `~/.claude/hooks/rtk-rewrite.sh`. |\n\n---\n\nApache License 2.0 © 2026 Waveloom Contributors\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMenfre01%2Fwaveloom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMenfre01%2Fwaveloom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMenfre01%2Fwaveloom/lists"}