Chimera Agent 0.69.0:插件、工作树,以及认识自己仓库的对话
Claude Code 插件以可审查的数据形式登场,每次对话都记录其所属仓库与分支,侧边栏终于能将工作树归组到同一项目下。
我们自己写的、关于我们某个版本的文字。 在 GitHub 上阅读这条 release →
插件是数据,不是运行中的代码
在这个版本之前,插件只是一个不透明的目录,你把它交给 Chimera,然后祈祷它能正常工作。在插件实际运行之前,框架对它的内容一无所知,也无法在不执行的情况下审查它。这种隔阂让插件在共享环境中充满风险,并且在安装前完全无法对其行为做出预判。
chimera.plugins 彻底改变了这个模型。它会读取一个插件目录——包括其清单、技能、命令、智能体、钩子、MCP 和 LSP 服务器——并根据其运行时的行为对每个组件进行分类:纯文本指令、本地进程启动、网络访问或命令执行。在整个审查过程中,不会安装、导入、执行或下载任何东西。只有锁定来源的插件才被视为可安装:本地路径、锁定在特定 commit SHA 的 GitHub 仓库,或是带有 sha256 哈希的 HTTPS 归档文件。每个问题都带有一个与 claude plugin validate 兼容的稳定错误码,因此你可以在插件接触智能体之前,就把它集成到 pre-commit 钩子或 CI 检查中。
同样的读取逻辑也驱动着市场集成。chimera.plugins 读取 marketplace.json,并根据每个已列出插件的能力范围对其进行分类。缺少锁定来源的条目会保持可见,并附带无法安装的原因,这样你就可以放心浏览,而不会意外拉取到可变的内容。
插件安装后默认禁用。chimera plugin install 将它们以待处理状态放入 <home>/plugins,在你运行 chimera plugin enable 之前,不会有任何内容触及智能体。启用时会展示差异:技能、命令和智能体会以 plugin:name 为命名空间,作为不受信任的文本出现。智能体遵循项目智能体规则;Claude Code 工具名称会被转换,且只能收窄现有权限;清单中的 allowed-tools 和 model 字段会被忽略。插件命令的展开会将本次运行标记为受污染的,而钩子、bin/ 目录和监视器则保持惰性。MCP 服务器只有在你通过锁定清单明确命名时才会被添加。任何更改了清单、钩子、服务器或工具的更新,都会在展示差异后挂起该插件。机器人、定时任务、serve 和访客会话不会获得任何插件,除非 CHIMERA_UNATTENDED_PLUGINS 明确列出了它。
设置 › 插件界面会展示每个已安装的插件,包括其状态、来源、锁定信息、能力范围和组件列表。发现界面会展示你添加的市场,并支持按类别和插件运行内容进行搜索和筛选。添加插件可以是一个锁定的市场、一个本地文件夹或一个 .zip 文件。开启一个插件会精确展示哪些内容将触及智能体,并单独询问每个 MCP 服务器。只有你能执行此操作:MCP 桥接可以列出、验证和安装待处理的插件,但永远不能启用、移除或添加市场。
每次对话都知道自己的仓库
以前,一个 Code 对话只是文件夹里的一个扁平文件。对话与其周围 git 仓库之间的关系是隐式的:你知道自己在哪个项目上工作,因为你打开了那个文件夹,但框架并不知道。这使得分组、清理和跨工作树推理无法自动化。
现在,在每一轮对话开始时,对话都会记录其项目——仓库的主检出——以及其分支,还有该文件夹是主检出、git 工作树还是普通文件夹。这些信息直接从 git 文件中读取,无需运行 git,因此速度很快,即使在仓库处于损坏状态时也能正常工作。这条记录在工作树被移除后依然存在,这意味着会话列表可以将一个仓库的工作树归组到该仓库本身之下。
Code 侧边栏使用了这种分组。一个仓库的工作树会折叠在仓库标题之下——这是一个可折叠的区域,带有用于创建新对话的 + 号、工作树计数,以及用于打开、折叠、重命名、隐藏、删除和清理的菜单。行会显示标题、分支和时间;每个项目默认显示五条,并带有一个“显示更多”链接;搜索范围涵盖标题、分支和项目;状态筛选器仅在有对应计数时才会出现。如果你更喜欢旧的扁平列表,可以通过一个开关关闭分组功能。
工作树清理现在有了自己的对话框。它会列出仓库的每一个工作树,并说明保留每个工作树的原因——主检出、使用中、脏状态、未合并、在 Chimera 外部创建——预览移除操作,并仅移除预览中列出的内容,使用不带 --force 的 git worktree remove 和 git branch -d 命令。只有 Chimera 创建的工作树才能在那里被移除;它们的对话会被归档,永远不会被删除。MCP 桥接可以列出但永远不能修剪。
MCP 桥接还获得了在特定项目内打开对话的能力。desktop_send 接受一个 project 参数——一个已注册的项目或已知的仓库——以及一个带有可选分支的 worktree: "new" 选项。Chimera 会在仓库旁的 .chimera-worktrees/<repo>/ 中创建并拥有该工作树,绝不会放在临时文件夹中,并且该对话会归组到该项目下。未知项目、项目外部的路径以及运行分支名称都会被拒绝。新工作树不会继承项目的 shell 授权。
对话标题现在可读且可重命名。标题的优先级依次是:你自己给它起的名字,然后是调用者传入的标题,接着是第一条消息在工作区中引用的 Markdown 文件的第一个 # 标题,最后才是第一条消息本身。点击行上的铅笔图标或按 F2 即可重命名;留空名称则会恢复为自动生成的标题。没有任何标题是由模型生成的。
现在该做什么
升级到 0.69.0,打开设置 › 插件界面,添加一个你信任的市场。在安装插件之前,先用 chimera.plugins 审查它。通过 MCP 桥接使用 worktree: "new" 创建工作树,并观察它在侧边栏中归组到其仓库之下。
完整的发布说明见 Chimera Agent v0.69.0。
https://chimeraagent.space