pacifio/atlas
摘要
Atlas 是一款面向编码代理的源代码控制系统,提供检查点、多代理支持与共享记忆功能,助力无缝的 AI 开发工作流。
查看缓存全文
缓存时间: 2026/09/02 17:44
pacifio/atlas
来源:https://github.com/pacifio/atlas
Atlas (https://www.tryatlas.cc/)
Discord (https://discord.gg/GmnFggaPfP)
许可证:MIT
最新版本 (https://github.com/pacifio/atlas/releases)
贡献者 (https://github.com/pacifio/atlas/graphs/contributors)
下载 (https://github.com/pacifio/atlas/releases) · Discord (https://discord.gg/GmnFggaPfP) · 文档 (https://docs.tryatlas.cc/) · 贡献指南 · 问题反馈 (https://github.com/pacifio/atlas/issues)
Atlas
Atlas 是面向编码代理的版本控制工具。每一次代理运行都会生成检查点:提交会链接回产生它的会话,连同当时的提示、工具调用和推理过程一起记录。你可以清楚地看到哪个代理做了什么以及为什么这样做。
运行 Claude Code、Codex、Atlas 自身的代理,或是来自 ACP 注册表的任何代理,都可以在同一个代码库上并行工作,共享内存,因此在任务中途切换代理并不意味着要从头开始。
- 每一次提交都有解释。 检查点将提交链接回产生它的会话:提示、工具调用和文件更改被一起保存,即使数月后仍可查询。
- 并行运行任何代理。 Claude Code、Codex、Atlas 自身的代理,以及更广泛的 ACP 注册表,都可以在同一个窗口中、针对同一个代码库运行。任务中途切换代理并不意味着要从头开始。
- 统一内存,所有代理共享。 Claude Code 做出的决定会出现在 Codex 的下一个提示中。计划、文件更改、失败记录和架构笔记会自动共享,并在设备本地与你正在查询的内容进行匹配。
- 你的笔记就是代理的上下文。
.atlas/knowledge/中的 Markdown 文件,加上你已经编写的CLAUDE.md和AGENTS.md,会为项目中的每个代理提供信息。 - 使用
@将任何内容引入提示。 文件、文件夹、符号、分支、提交、笔记、论文和过去的会话都会在发送提示前在本地解析。 - 默认本地运行。 代码、笔记和会话都保存在你的机器上。当你想在团队中同步时,可以登录并创建组织。
加入 Discord (https://discord.gg/GmnFggaPfP) · #general 聊天 · #dev 构建问题 · #feature-requests 功能建议 · #bugs 报告问题
请从 CONTRIBUTING.md 开始提交修改,或对于遇到的任何问题,打开一个 issue (https://github.com/pacifio/atlas/issues)。
目录
为什么选择 Atlas
现在代理编写了很大一部分代码,但并未保留其背后的推理过程。Atlas 两者都记录,并使其可查询:什么发生了变化、由谁的代理、在什么时间点。
- 代理每次会话都从零开始。 Atlas 保留了一个持久的本地设备内存,记录决策、计划和更改,并在每一轮对话中推送相关信息。
- 切换代理会丢失上下文。 新会话的第一条消息会包含一个经过整理的事实包以及你上一个会话的尾部信息,即使上一个会话运行在不同的代理上。
- 你看不到的东西就无法回顾。 每个会话都被存储和索引,旁边是真实的提交图和实际生效内容的文件级差异。
- 上下文分散在多处。 知识库、
CLAUDE.md、AGENTS.md、Claude Code 的记忆文件以及 Codex 的历史记录被整合成一个所有代理都读取的索引。 - 没有任何内容被锁定。 笔记是 Markdown,画布是 JSON,会话是 JSONL,编辑器是磁盘上的一个文件。关闭 Atlas,在 vim 中继续工作。唯一的例外是检查点记录(哪个代理会话产生了哪个提交),它存储在项目 git 忽略的
.atlas/目录下的 SQLite 数据库中,因为它用于查询,而非直接读取。 - 从底层专为代理构建。 代理运行时、共享内存和会话历史是整个应用程序构建的基础。
工作原理
Atlas 按照代理原生方式运行它们,并丰富它们所看到的内容。Claude Code 和 Codex 通过 ACP (https://github.com/zed-industries/agent-client-protocol) 作为外部子进程运行,这是最常用且经过最多测试的路径。Atlas 自身的代理在 Cersei (https://docs.tryatlas.cc/)(我们的 Rust 代理框架)上进程内运行。除此之外,Atlas 可以生成 ACP 注册表中的任何代理(Cursor、OpenCode、Kilo Code 等),并自动拉取每个代理的官方二进制文件。
所有代理都通过相同的发送路径,因此无论你选择哪个代理,以下内容都适用。
对注册表中长尾代理的质量保证正在进行中。
在你的消息到达代理之前,Atlas 会在其周围组装上下文:
| 注入内容 | 来源 | 时机 |
|---|---|---|
@ 提及 | 在发送提示前,在 Rust 中本地解析。笔记、技能、论文和过去的会话被内联;文件和文件夹解析为路径 | 每一轮 |
| 共享代理内存 | 活跃计划、决策、文件更改、失败记录和架构笔记,由任何代理写入 | 每一轮 |
| 语义匹配 | 你的消息在设备本地被嵌入向量化,并与项目的内存索引进行匹配 | 每一轮 |
| 会话交接 | 一个经过整理的事实包加上你在此项目中上一个会话的尾部信息,包括来自不同代理的会话 | 首条消息 |
| 你已经编写的内容 | 知识笔记、CLAUDE.md、AGENTS.md、Claude Code 的记忆文件以及 Codex 的历史记录,整合成一个索引 | 持续更新 |
- 单一路径,无针对特定代理的特殊处理。 将你现有的 Claude Code 或 Codex 订阅通过 Atlas 运行,会话将获得更多上下文,且无需改变你的工作方式。
- Claude Code 的记忆对 Codex 可见,反之亦然。 任何代理都无法单独读取另一个代理的历史记录。
- 文件夹解析为指针,而非粘贴。
@一个 5000 行的文件会发送一个路径,代理按需读取,因此一次提及不会在会话的其余时间占据上下文窗口。 - 嵌入在你的机器上运行。 检索永远不会离开设备。
检查点
检查点是提交本身无法告诉你的重要信息:哪个会话产生了它、代理被要求做什么、它进行了哪些工具调用,以及更改背后的推理过程,这些信息被保存在一起,而不是在终端滚动时丢失。
Atlas 在本地 .atlas/sessions.db 中记录每个代理会话,并在任何内容写入磁盘之前对敏感信息进行脱敏。当你提交时(可以从任何工具,即使在 Atlas 关闭时),提交会作为检查点链接回产生它的会话,并且这些链接能够经受变基和修改。你无需阅读原始对话记录就能恢复上下文:选择一个检查点并直接与之聊天,它会根据会话中实际发生的情况进行回答。
本地模式完全离线工作,无需账户。
功能特性
代理
| 能力 | 描述 | 链接 |
|---|---|---|
| 多代理会话 | Claude Code、Codex 和 Atlas 的原生代理,可按会话选择,并在标签页之间并行运行。会话独立于标签页,因此切换不会中断正在运行的任务 | 聊天与会话 (https://docs.tryatlas.cc/docs/product/chat) |
| 共享代理内存 | 设备本地语义索引(本地嵌入向量,HNSW 搜索),所有代理均可读写 | 内存 (https://docs.tryatlas.cc/docs/context/memory) |
| @ 提及 | 本地解析文件、文件夹、符号、分支、提交、笔记、技能、论文和过去的会话 | 聊天与会话 (https://docs.tryatlas.cc/docs/product/chat) |
| 技能 | SKILL.md 文件可全局或按项目范围定义,通过符号链接到代理自身的技能目录,按代理启用 | 技能 (https://docs.tryatlas.cc/docs/context/skills) |
| 技能包 | 安装一个包含技能、子代理、命令、钩子、规则和脚本的 GitHub 仓库,通过 skills.sh 索引发现 | 技能 (https://docs.tryatlas.cc/docs/context/skills) |
| 模型聊天 | 在模型自己的标签页中直接与其交谈,没有代理循环包裹 | 聊天与会话 (https://docs.tryatlas.cc/docs/product/chat) |
| 组织 | 登录,创建一个组织,并在设备和队友之间同步 | 组织 (https://docs.tryatlas.cc/docs/organisation/organisations) |
代理历史
| 能力 | 描述 |
|---|---|
| 会话捕获 | 每个会话记录到 .atlas/sessions.db:提示、消息、工具调用、每个调用修改的文件以及它应用的补丁 |
| 检查点 | 每个会话链接到它产生的提交。提交是被观测而非拦截的,因此从终端、另一个编辑器或在 Atlas 关闭时进行的提交仍能找到其会话 |
| 经受历史重写 | 链接通过补丁 ID 协调,在修改和变基中重新指向。当压缩使链接变得真正模糊时,它会标记为孤立而不是猜测 |
| 对话记录导入 | 回填你现有的 Claude Code 历史记录,使记录从安装 Atlas 之前开始 |
| 写入时敏感信息脱敏 | 编辑操作在持久化之前运行,因此本地存储本身永远不会成为泄露风险 |
| 捕获健康状态 | 每个工作区一个信号:正常、降级或停止,每个状态都有原因和后续步骤 |
| 任务控制中心 | 代理活动仪表盘:随时间变化的使用量、消耗明细、时间线以及可过滤的日志表 |
无需账户和网络即可工作。
工作区
| 能力 | 描述 | 链接 |
|---|---|---|
| 编辑器 | CodeMirror 编辑界面,按项目的编辑器状态在重启后恢复 | 编辑器 (https://docs.tryatlas.cc/docs/product/editor) |
| Git | 真实提交图,支持通道分配、暂存/取消暂存/提交、分支操作和文件级差异 | Git 与差异 (https://docs.tryatlas.cc/docs/source-control/git) |
| 终端 | 区块终端,每个命令都有自己的输出、退出码和持续时间,加上一个完整的交互式界面,用于 vim、htop 等工具 | 终端 (https://docs.tryatlas.cc/docs/product/terminal) |
| 知识库 | .atlas/knowledge/ 中的纯 Markdown 笔记,与代码一起版本控制,支持反向链接、链接图以及导出为 HTML 或独立服务器二进制文件 | 知识库 (https://docs.tryatlas.cc/docs/context/knowledge-base) |
| 研究 | 搜索 arXiv 和 Semantic Scholar,引入论文,在应用程序内阅读它们,并使用 @ 将它们提及到提示中 | 研究 (https://docs.tryatlas.cc/docs/context/research) |
| 浏览器 | 标签页中的原生 WebKit 网页视图,支持真正的登录、Cookie 和阅读模式 | 探索器 (https://docs.tryatlas.cc/docs/product/explorer) |
| 空间 | 用于笔记及其连接的可视化画板,在项目中以 JSON 格式持久化 | 聊天与会话 (https://docs.tryatlas.cc/docs/product/chat) |
| 分屏视图 | 最多三个可调整大小的列,每个列有自己的标签页 | 编辑器 (https://docs.tryatlas.cc/docs/product/editor) |
| 活动日志 | 项目中每一个重要事件,可过滤,并且行可以跨重启固定 | 时间线 (https://docs.tryatlas.cc/docs/source-control/timeline) |
下载
从 tryatlas.cc (https://www.tryatlas.cc/) 或发布页面 (https://github.com/pacifio/atlas/releases) 获取最新的 .dmg 文件。
macOS 是支持的平台。
从源码构建
Linux 和 Windows 从同一 Tauri 代码库构建,但未经测试。
要使用 Claude Code 代理,请安装 claude CLI 并将其放入你的 PATH。Atlas 的原生代理不需要外部 CLI。
需要 Bun (https://bun.sh/)、Rust(稳定版,通过 rustup (https://rustup.rs/))和 Xcode 命令行工具。
Linux 系统依赖(GTK 3, WebKit2GTK 4.1, GLib 头文件)
- Debian / Ubuntu / Linux Mint:
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 - Arch Linux / Manjaro:
sudo pacman -S glib2 gtk3 webkit2gtk-4.1 - openSUSE:
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 包
bun run build:app:dmg # .app + .dmg 安装程序
贡献指南
参见 CONTRIBUTING.md。
有一点需要注意:
- 功能开发针对当前版本分支,而非
main分支。main分支仅接收完成的版本分支,该合并即为发布。
ARCHITECTURE.md 介绍了 Atlas 的构建方式。 SECURITY.md 介绍了如何报告漏洞。
默认本地运行
- 你的代码、笔记和会话都留在你的机器上。 运行代理无需上传任何内容。
- 在写入磁盘之前,敏感信息会被脱敏。 不是上传前,是持久化前。
- 会话捕获默认仅限本地。 你的代理会话的检查点记录被写入你机器上的
.atlas/sessions.db并保留于此。无需账户,并且除非你明确选择同步,否则没有任何内容会被发送到任何地方。 - 账户是可选的。 登录以创建组织并在设备和队友之间同步。
- 匿名使用分析默认开启。 粗略的元数据,绝不包括代码或提示。收集了什么,以及如何关闭它。
链接
- 网站: tryatlas.cc (https://www.tryatlas.cc/)
- 文档: docs.tryatlas.cc (https://docs.tryatlas.cc/)
- Discord: discord.gg/GmnFggaPfP (https://discord.gg/GmnFggaPfP)
- 问题反馈: github.com/pacifio/atlas/issues (https://github.com/pacifio/atlas/issues)
- 遥测: Atlas 收集什么,以及如何关闭它
贡献者
许可证
MIT。参见 LICENSE。
相似文章
Atlaso
Atlaso 是一款为用户所使用的每一个 AI 提供统一共享记忆的产品。
@GarshytHoel: system-atlas:一种从单个数据文件构建代码库/智能体/流水线可探索等距地图的技能
system-atlas是一个能够构建代码库、智能体或流水线交互式等距地图的工具,通过视觉化渐进式信息呈现来增强系统理解。
Atlas
Nanonets 推出了 Atlas,这是一款旨在理解您公司运作方式的 AI 工具,致力于将 AI 集成到企业工作流程中。
构建一个为AI代理生成代码库持久化地图的工具(开源)
Carto 是一个开源工具,可为代码库构建持久的领域地图,帮助 AI 代理理解系统,避免编辑错误文件、上下文溢出等故障,完全本地运行,无数据泄露。
AgentOS
AgentOS 提供了一个统一控制层,用于管理 AI 代理、任务和工作空间。