
Continuum
io.github.pouyahasanamreji由 GitHub 账号 pouyahasanamreji 发布v0.3.0更新于 Oct 24, 2026
Shared memory + orchestration for your coding agents. Local-first MCP, vector RAG.
概览
一个本地优先的 MCP 服务器,为编码代理提供共享的向量记忆和编排协议,用于协调多个 git worktree 中的并行工作。
- 可以做什么
- Continuum 把项目经验以嵌入向量形式存入本地 SQLite 数据库,并使用 sqlite-vec 索引,任何接入的 MCP 客户端都能进行语义检索。工具涵盖项目、PLOT.md 编排协议、知识条目(列出、搜索、获取、创建、更新、删除),以及带状态流转和保留路径跟踪的代理注册表。读取 plot 的客户端会成为编排者:负责调研、验证、写入派发记录,并返回一段可直接粘贴给新代理的提示词,让它在隔离的 worktree 中工作。另有网页面板供人浏览项目、代理、plot 和知识。
- 适用场景
- 当多个编码代理同时处理同一个代码仓库,而你反复解释约定或频繁遇到文件冲突时适用。它适合希望已完成任务的经验能跨会话、跨模型、跨客户端保留,并倾向于使用本地数据库而非托管服务的团队。
- 运行要求
- 以本地进程运行,仅限桌面端。可用 Docker 镜像,或裸机运行,需要 Node >=22.12.0 与 pnpm 10.33+。可选环境变量:EMBEDDER_URL、EMBEDDER_MODEL、EMBEDDER_DIM、ORCHESTRATOR_DB_PATH;仅在调用 token 计数接口时需要 ANTHROPIC_API_KEY。客户端通过 Streamable HTTP 连接。
安装
在 SourceWeft 中
- 打开 控制台中的 Continuum,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Shared memory + orchestration for your coding agents.
One MCP server. Tell any client to read the plot — it becomes the orchestrator.
Dispatches fresh agents in isolated worktrees, shares lessons across every Claude Code / Codex / Cline chat on the project.
[Node] [pnpm] [NestJS] [Astro] [sqlite-vec] [MCP]
Quick Start • Memory & Vectors • Workflow • MCP Tools • Wire It In • Configuration
Your agents forget. Continuum remembers.
Point any MCP client at Continuum and tell it to read the plot. The client becomes an orchestrator — it researches the codebase, verifies the plan, persists a dispatch record, and hands you a ready-to-paste prompt for a fresh agent in an isolated git worktree. Every other Claude Code / Codex / Cline chat on the project sees what's reserved, shares what's been learned, and never re-explains the codebase. One local server: vector knowledge base, orchestration protocol, agent registry — shared across every MCP-speaking app on your machine.
No SaaS. No telemetry. No keys to manage. Boots in seconds. Survives reboots. Scales with you.
What you get
Why Continuum exists
Quick start
🐳 The easy path — one Docker command
That's it. The whole stack comes up with hot reload, a SQLite browser, and a single shared volume — no Node, no pnpm, no native-build dance on your host machine.
What you get:
The API embeds in-process by default (Snowflake/snowflake-arctic-embed-m-v1.5 via Transformers.js, 768-dim, ONNX q8). No external service required for semantic search. Override via EMBEDDER_URL to point at any HTTP-based embedder (Ollama, TEI, OpenAI-compatible). Turn the bundled TEI container on with the embedder profile:
Bind mounts keep the source tree on your host — edits are instant. Named volumes hold node_modules so installs survive restarts. Database lives at ./.local-data/dev-orchestrator.db on your host, gitignored, safe to wipe.
Stop everything:
🛠️ Or run on bare metal
Dev SQLite at ./.local-data/orchestrator.db. Gitignored. Wipe to reset — next boot recreates and migrates forward.
Requires Node >=22.12.0 and pnpm 10.33+. The compose path skips both.
Memory & vectors
This is the headline. Continuum's knowledge layer is what makes your agents stop being amnesiac.
How a lesson becomes memory
How recall works
Phase 1 of every dispatch (the orchestrator does this automatically):
Search and list return metadata only — slug + kind + agentSlug + timestamps. Call knowledge_get for the body of any lesson worth reading. Keeps top-K context cheap; the orchestrator triages first, fetches second.
The result: the agent that's about to plan your task already knows what your last five agents learned the hard way. No prompt engineering. No "here's our convention" copy-paste.
Two kinds of knowledge
The freshness profile
Vectors are pinned to a (EMBEDDER_URL, EMBEDDER_MODEL, EMBEDDER_DIM) triple. Change any one and Continuum marks stale vectors for rebuild on next boot. You stay in control of which embedder owns your memory — local Ollama, self-hosted TEI, or anything OpenAI-shaped.
Pluggable embedders
The embedder is required and runs in-process by default (Snowflake/snowflake-arctic-embed-m-v1.5, 768-dim, ONNX q8). The model weights are bundled in the API image — no extra container, no extra config, semantic search works out of the box.
Override via EMBEDDER_URL to delegate embedding to an HTTP service:
Built on sqlite-vec
The vector index lives in the same SQLite file as your projects, agents, and plot. One file. One backup. One restore. No separate vector DB to provision, no Pinecone bill, no Chroma daemon to babysit. WAL mode keeps reads concurrent with writes; foreign keys keep your registry consistent; busy_timeout = 5000 keeps things calm under contention.
Wire it into your AI client
Claude Code
Restart Claude Code. Tools appear under mcp__continuum__*.
Codex
Anything else (Cline, Cursor, custom)
Point any MCP-compatible client at http://127.0.0.1:7776/mcp. Streamable HTTP, stateful sessions (UUID-keyed). Server name continuum.
Your first project
Inside any wired client:
What happens:
- Client calls
project_create({project: "/absolute/path/..."}) - Server seeds PLOT.md (the orchestration protocol) and an empty knowledge base
- Client calls
plot({project}), reads the protocol, enters orchestrator mode - Client follows the 4-phase workflow — researches, verifies, persists a dispatch record, hands you a ready-to-paste prompt for a fresh agent in a git worktree
You paste the prompt into a new Claude Code / Codex session. That agent codes inside an isolated worktree against its reserved paths. Other parallel agents see the new agent's reservations via the coordination brief.
When work merges, the orchestrator records what was learned via knowledge_create — and every future dispatch on this project benefits from it forever.
The workflow
1. Intake
2. Research
Spawn an Explore / Plan subagent. It reads the codebase against the loaded knowledge. Produces a file-by-file plan: create / modify / delete. Plan only — no code.
3. Verify
Spawn a critique agent. It challenges every file touched, looks for orphans and broken call sites, cross-checks against active agents' reserved paths. Returns annotated deltas.
4. Handoff
Agent lands as draft. Promote with agent_update({status:'active'}) when you dispatch. On merge, record the SHA and bank the lesson:
The orchestrator never edits source, runs regen, merges branches, or pushes commits. It researches, verifies, coordinates, and persists. Code lives in fresh agents inside isolated worktrees.
MCP tools
Every tool takes project (canonical absolute path) as its first argument.
Project
Plot — the orchestration protocol
plot_update validates --- a/PLOT.md / +++ b/PLOT.md / @@ headers strictly. Context mismatch throws hunk_mismatch with the failing hunk header. Re-read with plot, regenerate the diff, retry. No silent overwrites.
Knowledge — the vector memory
knowledge_search runs vector lookup over the sqlite-vec index. Pass natural prose — questions, task statements, descriptions all work. SQL wildcard syntax does not. Response is ranked metadata; call knowledge_get({project, slug}) for the body of any hit worth reading. Same pattern for knowledge_list (use kind: 'fundamental' to enumerate the binding set, then get each).
Agents
Allowed transitions: draft → active → merged | abandoned. merged requires a 7–40 char commit SHA. abandoned requires a reason. Only active agents reserve paths.
registry_list returns the collision matrix metadata in one paginated envelope. To inspect a dispatch's plan or implPrompt, follow with agent_get({project, slug}). Page through with page until hasNextPage is false.
Example session
Next time anyone — you, Claude, Codex — touches anything rate-limit-shaped on this project, that lesson surfaces automatically.
Web panel
[Agents registry — slug, status, branch, reserved-path count, timestamps]
[Knowledge browser — a fundamental lesson opened, metadata + content]
Astro 6 + React 19 islands. Tailwind v4. shadcn/ui.
Settings stored in app_settings (SQLite) override env vars. Headless deploys still work via env alone.
Configuration
Both env vars and panel settings supported. Panel takes precedence.
Stack
Scripts
Conventions
projectis always a canonical absolute path. Pass the project root, never a worktree subdirectory. Worktree paths throwproject_not_found.- Plot mutations flow through unified diffs. No full-text writes. Bad context → server rejects with the failing
@@header. - Knowledge updates are whole-content replace. Pass the full new
content. Re-embedded on save. - Reserved paths are JSON arrays of globs. Only
activeagents reserve. - Migrations are forward-only on boot. Production blocks destructive migrations unless explicitly opted in.
Troubleshooting
Roadmap
- Cross-project knowledge sharing (
kind: 'global') - Embedding re-rank with a small reranker model
- One-shot import of existing CLAUDE.md / AGENTS.md / Cursor rules → fundamentals
- Read-only public knowledge mirror (publish a project's lessons as a static site)
- Built-in observation hooks for SessionStart / SessionEnd events
Contributing
Contributions welcome. Fork, branch, test, PR. Match Prettier defaults (100-col, double quotes, semicolons, ES5 trailing commas). Keep MCP tool changes Zod-typed.
Support
Stop letting your agents forget.
pnpm install && pnpm dev — and they never will again.
来源:README.md,提交 c5718cd
工具
0版本历史
1- v0.3.0最新Sep 16, 2026
评分
已满足适用检查项的 40%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
请在仓库或注册中心条目中声明许可证。