pacifio / atlas

pacifio / atlas

Atlas is source control for coding agents. Atlas 是专为编程智能体(Coding Agents)设计的版本控制系统。

Every agent run produces checkpoints: commits are linked back to the session that made it alongside the prompts, tool calls, and reasoning. You see which agent did exactly what and why. 每一次智能体运行都会产生“检查点”(Checkpoints):提交记录(Commits)会与生成该记录的会话关联,并附带当时的提示词、工具调用和推理过程。你可以清晰地看到是哪个智能体做了什么,以及为什么要这样做。

Run Claude Code, Codex, Atlas’s own agent, or anything from the ACP registry side by side against the same codebase, with shared memory so switching agents mid-task doesn’t mean starting over. 你可以在同一个代码库中并行运行 Claude Code、Codex、Atlas 自带的智能体,或是 ACP 注册表中的任何工具。通过共享内存机制,即使在任务中途切换智能体,也无需从头开始。

Every commit, explained. A checkpoint links a commit back to the session that produced it: prompts, tool calls, and file changes kept together, queryable months later. 每一次提交都有据可查。检查点将提交与生成它的会话关联起来:提示词、工具调用和文件变更被整合在一起,即便时隔数月依然可供查询。

Run any agent, side by side. Claude Code, Codex, Atlas’s own agent, and the wider ACP registry, all in the same window, against the same codebase. Switching agents mid-task doesn’t mean starting over. 在同一个窗口中,针对同一个代码库,并行运行任何智能体——无论是 Claude Code、Codex、Atlas 原生智能体还是更广泛的 ACP 注册表工具。任务中途切换智能体无需重头再来。

One memory, every agent. A decision Claude Code made shows up in Codex’s next prompt. Plans, file changes, failures, and architecture notes are shared automatically, matched on-device against what you’re asking about. 所有智能体共享同一份记忆。Claude Code 做出的决策会出现在 Codex 的下一次提示词中。计划、文件变更、失败记录和架构笔记会自动共享,并根据你的提问在本地进行匹配。

Your notes are agent context. Markdown in .atlas/knowledge/, plus the CLAUDE.md and AGENTS.md you already wrote, feed every agent in the project. 你的笔记就是智能体的上下文。.atlas/knowledge/ 下的 Markdown 文件,以及你已经编写的 CLAUDE.mdAGENTS.md,将为项目中的每个智能体提供信息支持。

@ anything into a prompt. Files, folders, symbols, branches, commits, notes, papers, and past sessions resolve locally before the prompt is sent. 在提示词中使用 @ 引用任何内容。文件、文件夹、符号、分支、提交记录、笔记、论文和过往会话,都会在提示词发送前在本地完成解析。

Local by default. Code, notes, and sessions stay on your machine. Sign in and create an organisation when you want to sync across a team. 默认本地优先。代码、笔记和会话都保存在你的机器上。当你需要跨团队同步时,只需登录并创建一个组织即可。


Why Atlas (为什么选择 Atlas)

Agents now write a large share of the code and keep none of the reasoning behind it. Atlas records both, and makes them queryable: what changed, by whose agent, at what point in time. 智能体现在编写了大量的代码,却不保留背后的推理过程。Atlas 将两者都记录下来并使其可查询:谁在什么时间、通过哪个智能体修改了什么。

Agents start from zero every session. Atlas keeps a persistent on-device memory of decisions, plans, and changes, and pushes the relevant parts into every turn. 智能体通常每次会话都从零开始。Atlas 则在设备上保留了决策、计划和变更的持久化记忆,并将相关部分推送到每一次对话中。

Switching agents loses the thread. The first message of a new session carries a curated fact pack and the tail of your last one, even when that session ran on a different agent. 切换智能体往往会导致上下文丢失。而在 Atlas 中,新会话的第一条消息会携带一份精选的事实包以及上一次会话的结尾,即使上一次会话是由不同的智能体运行的。

You can’t review what you can’t see. Every session is stored and searchable, next to a real commit graph and file-level diffs of what actually landed. 看不见就无法审查。每一个会话都被存储并可供搜索,并与真实的提交图谱以及实际落地的文件级差异(diffs)并列展示。

Context lives in ten places. The knowledge base, CLAUDE.md, AGENTS.md, Claude Code’s memory files, and Codex’s history fold into one index every agent reads from. 上下文往往分散在十个地方。知识库、CLAUDE.mdAGENTS.md、Claude Code 的记忆文件以及 Codex 的历史记录,被整合进一个所有智能体都能读取的统一索引中。

Nothing is locked in. Notes are markdown, canvases are JSON, sessions are JSONL, and the editor is a file on disk. Close Atlas and pick up in vim. 没有任何内容被锁定。笔记是 Markdown,画布是 JSON,会话是 JSONL,编辑器就是磁盘上的文件。你可以随时关闭 Atlas,转而在 Vim 中继续工作。

The one exception is the checkpoint record (which agent session produced which commit), which is SQLite in the project’s gitignored .atlas/, because it is queried, not read. 唯一的例外是检查点记录(哪个智能体生成了哪个提交),它以 SQLite 格式存储在项目被 git 忽略的 .atlas/ 目录中,因为它主要用于查询而非直接阅读。

Built for agents from the ground up. The agent runtime, shared memory, and session history are the foundation the rest of the app is built on. 从底层为智能体构建。智能体运行时、共享内存和会话历史是整个应用构建的基础。


How it works (工作原理)

Atlas runs your agents as they are, and enriches what they see. Claude Code and Codex run as external subprocesses over ACP, the most-used, most-tested path. Atlas 原样运行你的智能体,并丰富它们所看到的内容。Claude Code 和 Codex 通过 ACP(最常用、最经得起考验的路径)作为外部子进程运行。

The Atlas agent runs in-process on Cersei, our Rust agent framework. Beyond those, Atlas can spawn any agent in the ACP registry (Cursor, OpenCode, Kilo Code, and more), pulling in each one’s official binary automatically. Atlas 智能体在我们的 Rust 智能体框架 Cersei 上进程内运行。此外,Atlas 可以启动 ACP 注册表中的任何智能体(如 Cursor、OpenCode、Kilo Code 等),并自动拉取它们的官方二进制文件。

All of them go through the same send path, so everything below applies whichever one you pick. NoteQA on the long tail of registry agents is ongoing. 它们都通过相同的发送路径,因此无论你选择哪一个,以下内容均适用。针对注册表中长尾智能体的 NoteQA 支持正在进行中。

Before your message reaches the agent, Atlas assembles context around it: 在你的消息到达智能体之前,Atlas 会为其组装上下文:

  • Injected: Where it comes from / When / @ mentions (Resolved locally in Rust before the prompt is sent. Notes, skills, papers, and past sessions are inlined; files and folders resolve to a path) 注入内容: 来源 / 时间 / @ 引用(在提示词发送前在 Rust 中本地解析。笔记、技能、论文和过往会话被内联;文件和文件夹解析为路径)
  • Every turn: Shared agent memory (Active plan, decisions, file changes, failures, and architecture notes, written by any agent) 每一轮对话: 共享智能体记忆(由任何智能体编写的当前计划、决策、文件变更、失败记录和架构笔记)
  • Every turn: Semantic matches (Your message is embedded on-device and matched against the project’s memory index) 每一轮对话: 语义匹配(你的消息在设备上进行嵌入,并与项目的记忆索引进行匹配)
  • First message: Session handoff (A curated fact pack plus the tail of your last session in this project, including one from a different agent) 第一条消息: 会话交接(一份精选的事实包,加上你在本项目中上一次会话的结尾,即使上一次是由不同的智能体运行的)
  • Continuously: What you already wrote (Knowledge notes, CLAUDE.md, AGENTS.md, Claude Code’s memory files, and Codex’s history, folded into one index) 持续更新: 你已经编写的内容(知识笔记、CLAUDE.mdAGENTS.md、Claude Code 的记忆文件和 Codex 的历史记录,合并为一个索引)

One path, no per-agent special-casing. Run your existing Claude Code or Codex subscription through Atlas and the session gets more context, with no change to how you work. 统一路径,无需针对每个智能体进行特殊处理。通过 Atlas 运行你现有的 Claude Code 或 Codex 订阅,会话将获得更多上下文,且无需改变你的工作方式。

Claude Code’s memory is visible to Codex, and the reverse. Neither agent can read the other’s history on its own. Claude Code 的记忆对 Codex 可见,反之亦然。但两个智能体都无法自行读取对方的历史记录。

Folders resolve to a pointer, not a paste. @-ing a 5000-line file sends a path the agent reads on demand, so one mention doesn’t occupy the context window for the rest of the session. 文件夹解析为指针,而非直接粘贴内容。使用 @ 引用一个 5000 行的文件只会发送一个路径,智能体按需读取,因此一次引用不会占用整个会话的上下文窗口。

Embedding runs on your machine. Retrieval never leaves the device. 嵌入过程在你的机器上运行。检索过程绝不会离开设备。


Checkpoints (检查点)

A checkpoint is what a commit doesn’t tell you on its own: which session produced it, what the agent was asked, the tool calls it made, and the reasoning behind the change, kept together instead of lost the moment the terminal scrolls. 检查点提供了提交记录本身无法告诉你的信息:是哪个会话产生了该提交、智能体被要求做什么、它调用了哪些工具,以及变更背后的推理过程。这些信息被整合在一起,而不是在终端滚动时就丢失了。

Atlas records every agent session locally in .atlas/sessions.db, with secrets scrubbed before anything touches disk. Atlas 将每个智能体对话本地记录在 .atlas/sessions.db 中,并在写入磁盘前清除所有敏感信息。

When you commit (from any tool, even with Atlas closed), the commit is linked back to the session that produced it as a checkpoint, and links survive rebases and amends. 当你进行提交时(使用任何工具,即使 Atlas 已关闭),该提交会作为检查点链接回生成它的会话,且这些链接在变基(rebase)或修正(amend)后依然有效。

You don’t have to read the raw transcript to get the context back: select a checkpoint and chat with it directly, and it answers from what actually happened in that session. 你无需阅读原始记录来找回上下文:只需选择一个检查点并直接与它对话,它就会根据该会话中实际发生的情况进行回答。

Local mode works fully offline with no account. 本地模式完全离线工作,无需账户。