为 Claude Code、Codex 等 Agent 提供版本控制能力,每次运行生成检查点关联 prompts、工具调用和文件变更,多 Agent 并行时共享记忆上下文,解决 Agent 工作区不可审计的问题。
Download · Discord · Docs · Contributing · Issues
Atlas 是 coding agents 的源码管理工具。每个 agent 运行都会产生检查点:提交记录会关联回产生它的会话,包含 prompts、工具调用和推理过程。你能看到是哪个 agent 做了什么事、为什么做。
将 Claude Code、Codex、Atlas 自己的 agent 或 ACP 注册表中任意产品并排运行,对同一个代码库,用共享内存让切换 agent 时不必从头开始。
每一次提交,都有解释。检查点将一次提交关联回产生它的会话:prompts、工具调用和文件变更保存在一起,几个月后仍可查询。
任意 agent,并排运行。Claude Code、Codex、Atlas 自带的 agent,以及更广泛的 ACP 注册表,全部在同一个窗口里、对同一个代码库操作。切换 agent 时不必从头开始。
一个记忆,所有 agent 共享。Claude Code 做出的决策会出现在 Codex 的下一次 prompt 里。计划、文件变更、失败记录和架构笔记自动共享,根据你当前提问的内容在本地匹配。
你的笔记就是 agent 的上下文。.atlas/knowledge/ 里的 Markdown 文件,加上你已经写好的 CLAUDE.md 和 AGENTS.md,会喂给项目中每个 agent。
用 @ 把任意内容引入 prompt。文件、文件夹、符号、分支、提交、笔记、论文和过去的会话都在本地解析,然后才发送给 prompt。
默认本地存储。代码、笔记和会话都留在你机器上。登录后可以创建组织,在团队间同步。
Join the Discord · #general 聊天 · #dev build questions · #feature-requests 想法 · #bugs 报告问题
从 CONTRIBUTING.md 开始提交变更,或者有遇到任何问题就开个 issue。
Agents 现在写了大量代码,却没有留下任何背后的推理过程。Atlas 同时记录两者,并使其可查询:什么变了、由谁的 agent 变的、在什么时间点变的。
每个会话 agent 都从零开始。Atlas 在设备上保持一份持久的记忆,存储决策、计划和变更,并把相关内容推送到每一轮对话。
切换 agent 会丢失上下文。新会话的第一条消息会携带一份精选的事实包和上一个会话的收尾内容,即便那个会话运行在不同的 agent 上。
你无法审查你看不到的东西。每个会话都会被存储并可搜索,旁边是真实的提交图谱和实际落库的文件级 diff。
上下文存在于十个地方。知识库、CLAUDE.md、AGENTS.md、Claude Code 的记忆文件、Codex 的历史——全部折叠成一个索引,每个 agent 都从中读取。
没有任何东西被锁死。笔记是 Markdown,画布是 JSON,会话是 JSONL,编辑器就是一个磁盘上的文件。关掉 Atlas,在 vim 里继续。唯一例外的是检查点记录(哪个 agent 会话产生了哪个提交),存在项目 gitignored 的 .atlas/ 下的 SQLite 里,因为它是被查询的,不是被读的。
从零开始为 agents 构建。agent 运行时、共享内存和会话历史是整个应用的基础。
Atlas 按原样运行你的 agents,并丰富它们看到的内容。
Claude Code 和 Codex 通过 ACP 作为外部子进程运行,这是使用最广、测试最多的路径。Atlas 自带的 agent 运行在进程内,基于我们的 Rust agent 框架 Cersei。
此外,Atlas 还能启动 ACP 注册表中的任意 agent(Cursor、OpenCode、Kilo Code 等),自动拉取各自的官方二进制文件。所有 agent 都走同一条发送路径,所以下面说的一切都适用于你选的任何一个。
注册表 agents 的长尾 QA 正在进行中。
在你的消息到达 agent 之前,Atlas 会围绕它组装上下文:
一条路径,不针对每个 agent 做特殊处理。用 Atlas 运行你现有的 Claude Code 或 Codex订阅,会话会获得更多上下文,但你工作方式不变。
Claude Code 的记忆对 Codex 可见,反之亦然。两个 agent 都不能单独读取对方的历史。
文件夹解析为指针,而不是粘贴内容。@- 一个 5000 行的文件会发送一个路径,由 agent 按需读取,所以一次提及不会在剩余会话中占用上下文窗口。
Embedding 在你的机器上运行。检索从不离开设备。
一次检查点是一次提交本身无法告诉你的东西:哪个会话产生了它、agent 被要求做了什么、它做了哪些工具调用、以及做出这个变更背后的推理——这些东西被放在一起保存,而不是在终端滚动时丢失。
Atlas 在本地记录每个 agent 会话到 .atlas/sessions.db,在内容写入磁盘之前会清除 secrets。当你提交时(通过任何工具、甚至 Atlas 关闭时),提交会被关联回产生它的会话作为一个检查点,这种关联在 rebase 和 amend 后依然存活。
不必为了找回上下文而去读原始 transcript:选中一个检查点,直接和它对话,它会从那个会话实际发生的事情来回答。本地模式完全离线运行,无需账号。
无需账号、无需网络即可工作。
从 tryatlas.cc 或 releases 页面下载最新的 .dmg。
macOS 是受支持的平台。
Linux 和 Windows 从同一个 Tauri 代码库构建,但未经测试。
要使用 Claude Code agent,需要安装 claude CLI 并加入 PATH。Atlas 原生 agent 不需要外部 CLI。
需要 Bun、Rust(stable 版,通过 rustup 安装)和 Xcode Command Line Tools。
Debian / Ubuntu / Linux Mint: sudo apt install -y libglib2.0-dev libgtk-3-dev libwebkit2gtk-4.1-dev
sudo apt install -y libglib2.0-dev libgtk-3-dev libwebkit2gtk-4.1-dev
Fedora / RHEL: sudo dnf install glib2-devel gtk3-devel webkit2gtk4.1-devel
sudo dnf install glib2-devel gtk3-devel webkit2gtk4.1-devel
Arch Linux / Manjaro: sudo pacman -S glib2 gtk3 webkit2gtk-4.1
sudo pacman -S glib2 gtk3 webkit2gtk-4.1
openSUSE: sudo zypper install glib2-devel gtk3-devel webkit2gtk3-devel
sudo zypper install glib2-devel gtk3-devel webkit2gtk3-devel
git clone https://github.com/pacifio/atlas
cd atlas
bun install
bun run dev:app
第一次编译 Rust 需要几分钟,之后就只需秒级。使用 bun run dev 做纯前端迭代,不过任何调用 invoke() 的操作都需要 dev:app。
bun run build:app # .app bundle
bun run build:app:dmg # .app + .dmg installer
参见 CONTRIBUTING.md。有一点需要提醒:
功能开发针对当前版本分支,而不是 main。main 只接收已完成的版本分支,合并 main 就是发版。
ARCHITECTURE.md 介绍了 Atlas 是如何构建的。SECURITY.md 介绍了如何报告漏洞。
你的代码、笔记和会话都留在你机器上。运行 agent 不会上传任何东西。
Secrets 在任何内容写入磁盘之前就被清除。不是上传前清除,是持久化前清除。
会话捕获默认仅本地。agent 会话的检查点记录写入你机器上的 .atlas/sessions.db,留在那里。不需要账号,在你明确选择同步之前不会发送到任何地方。
账号是可选的。登录后可以创建组织,在设备和团队间同步。
匿名使用量统计默认开启。只收集粗粒度元数据,绝不收集代码或 prompts。了解收集了什么,以及如何关闭。
Docs: docs.tryatlas.cc
Discord: discord.gg/GmnFggaPfP
Issues: github.com/pacifio/atlas/issues
Telemetry: Atlas 收集了什么,以及如何关闭