AI工作空间的想法

要解决的问题 日常开发过程中,可能会用到claude code,codex,hermes. 但是一个个终端中切换,很麻烦。开的多了后,都搞不清楚这个终端是哪个项目下的了。维护管理不方便 想法是 在一个对话窗口完成这些事情,一个对话窗口就是一个项目。

具体的思路 emacs 使用vterm启动三个agent cli。 通过主对话窗口向着三个term其中一个或者多个发送消息,捕获对应的vterm的终端输出后再主对话窗口展示。 这样就不需要频繁的切换了。

想听听大家有什么具体的解决思路和方案。 我试过vterm,得不出我想要的结果。 我是用codex 让他实现的。 可能是提示词的问题。

朴实无华 tmux,手动改 panel 名字

2 个赞

warp, cmux 和tmux类似,tab+pane的方法可以尝试。

agent shell?

1 个赞

我一开始用的是 Wezterm,需要让 Claude 工作就开一个新的 tab,但是逐渐就发现遇到了和你说的一样的问题,就是 tab 多了之后我也不知道各个个 tab 是干啥的。因为有些会话可能会跨好几天甚至星期(因为需要思考下一步怎么做)。这就很困扰。 我尝试在 wezterm 里面做定制,例如给 claude 的 tab 做特别的标记,用快捷键快速切换 tab 等。但是总是感觉没有那么舒服。

后来尝试了那些 Conductor 这些东西,他们对 Github 的集成太重,我不需要那些。后来用到了 Cmux,我感觉这个是我要的。我按照 tab 来分项目,然后每个项目里面可以开多个 tab。但是遇到了新的问题,Cmux 是基于 libghosty 的,不支持 Tmux/Wezter 的 copy-mode,可以让我快速的通过快捷键滚动屏幕。这个让我很不爽。

然后我就尝试了在 Emacs 做这个事情。目前使用 Claude-code.el 就很好。Emacs 可以随意去定制,例如我定制一系列快捷键,列出所有 ai buffer,快速在某一个项目目录启动或者 resume 一个 ai session 等等。目前除了 ghostel 时不时出点奇怪的问题,例如有时候用鼠标滚动屏幕会滚动不了,有时候刷新会有问题,之外,用起来还可以。我还配置了记录之前开的 session 并快速恢复的功能。这样重启电脑重启 emacs 就不怕丢失之前工作的 context 了。

1 个赞

感谢分享,我找找claude-code.el

目前在使用的是 herdr。 不过也可以试试cmux

试试看 GitHub - tninja/ai-code-interface.el: Unified Emacs interface supporting OpenAI Codex, Antigravity CLI, Claude Code, GitHub Copilot CLI, Opencode, and more · GitHub, C-c a j for session dashboard, 列出所有打开的ai coding sessions, repo, backend等信息. 另外, 启动的每个session buffer都有相应的名字 (backend, repo, branch-name或者启动时候自己起的名字)

另外在同一个repo上开多个session, 可以考虑使用worktree避免互相干扰, 已经集成了C-c a w来让建立和管理worktree简单一些.

最近加了一个功能, 可以将一个agent(比如codex)的中间结果作为context保存在org文件里, 然后让另一个agent(比如claude code)来加载, 从而一定程度改善不同agent之间context独立的问题: Portable Agent Handoff via Task Files