使用Claude Code、Codex、Gemini CLI等AI编程工具时,开发者经常需要同时打开多个终端窗口。一个Agent负责修改代码,一个Agent运行测试,另一个Agent可能正在等待权限确认。

当并行任务逐渐增加,开发者很难快速判断哪个任务仍在运行、哪个已经完成,以及哪个正在等待人工处理。Herdr就是针对这类场景设计的终端管理工具。

Herdr由ogulcancelik开源,定位是运行在终端中的AI Agent多路复用工具。它可以在一个界面中管理工作区、标签页和终端分屏,同时显示不同Agent的运行状态。Herdr使用真实终端呈现Agent输出,不需要额外搭建网页控制台,也不依赖Electron桌面程序。

Herdr能够解决哪些问题?

普通终端可以同时打开多个窗口,但不会主动识别AI Agent的工作状态。Herdr会将Agent状态显示在侧边栏中,开发者可以直接看到:

  • blocked:Agent正在等待输入、授权或确认;
  • working:Agent正在处理任务;
  • done:任务已经完成,但结果还没有查看;
  • idle:任务已经完成并被查看,目前处于空闲状态。

状态还会从终端分屏汇总到标签页和工作区。例如,某个工作区中只要有一个Agent等待确认,工作区就会显示为阻塞状态,方便开发者优先处理需要人工操作的任务。

Herdr比较适合以下使用场景:

  • 同时运行多个AI编程Agent;
  • 分别处理前端、后端、测试和文档任务;
  • 长时间执行代码分析或重构;
  • 在远程服务器中保存开发会话;
  • 通过SSH从不同设备继续工作;
  • 使用脚本协调Agent执行顺序;
  • 为多个代码仓库建立独立工作区。

为什么可以部署在云服务器上?

Herdr支持后台会话。关闭当前终端或断开SSH连接后,服务器上的Herdr会话和Agent进程可以继续运行。重新登录服务器并执行herdr,即可返回原有工作区。

这意味着开发者不需要让个人电脑长期保持开机。代码仓库、Agent环境和编译工具可以统一放在Linux服务器中,通过笔记本电脑、台式机或其他终端设备远程连接。

对于需要持续运行Agent的开发环境,可以考虑选择莱卡云服务器作为部署载体。安装Ubuntu或Debian系统后,通过SSH连接服务器,即可搭建Herdr和相关AI编程工具。

选择服务器时仍应根据Agent数量、项目规模和编译任务进行判断,而不是单纯追求较高配置。

Herdr服务器配置怎么选?

Herdr本身是单个Rust程序,主要负责终端界面、会话保持和Agent状态管理。服务器的主要资源消耗通常来自Claude Code、Codex、编译器、测试程序、Docker容器以及项目依赖。

个人体验环境

适合运行一个AI Agent和少量终端任务:

  • 2核CPU;
  • 4GB内存;
  • 40GB以上SSD;
  • Ubuntu或Debian系统。

日常开发环境

适合同时运行两到四个Agent:

  • 4核CPU;
  • 8GB内存;
  • 80GB以上SSD;
  • 定期快照或数据备份;
  • 稳定的SSH网络。

多项目并行环境

适合大型代码仓库、编译任务或多个容器:

  • 8核及以上CPU;
  • 16GB及以上内存;
  • 150GB以上SSD;
  • 根据项目情况增加数据盘;
  • 配置资源监控和日志清理。

这些配置是通用参考,并不是Herdr规定的最低配置。Node.js、Java和Rust等项目在安装依赖或编译时,可能会占用较多内存和磁盘空间。

使用莱卡云服务器部署时,可以先选择基础配置测试。后续发现内存不足、编译时间过长或需要增加Agent数量,再升级CPU、内存和硬盘,通常更容易控制使用成本。

在Ubuntu服务器上安装Herdr

连接服务器:

ssh root@服务器IP

更新系统:

apt update
apt upgrade -y

安装常用工具:

apt install -y curl git ca-certificates openssh-server

Herdr官方提供了安装脚本:

curl -fsSL https://herdr.dev/install.sh | sh

安装完成后检查命令:

herdr --help

为了降低远程脚本带来的风险,也可以先下载并检查脚本内容:

curl -fsSL https://herdr.dev/install.sh -o install-herdr.sh
less install-herdr.sh

确认脚本内容后再执行:

sh install-herdr.sh

Herdr当前面向Linux和macOS提供安装方式,也可以通过Homebrew或项目发布的二进制文件安装。

建议创建普通运行用户

AI Agent可能需要执行Shell命令、安装依赖和修改项目文件,不建议长期使用root账号运行。

创建用户:

adduser agent

根据需要授予sudo权限:

usermod -aG sudo agent

切换用户:

su - agent

创建项目目录:

mkdir -p ~/projects
cd ~/projects

以后可以在该用户目录中保存代码仓库、Herdr配置和Agent配置,减少程序误操作系统文件的风险。

启动第一个Herdr工作区

进入代码目录:

cd ~/projects/example

启动Herdr:

herdr

首次运行时,Herdr会进入引导流程。可以使用工作区、标签页和分屏组织不同任务,并在分屏中运行Agent。

例如在一个分屏中运行Claude Code:

claude

在另一个分屏中运行Codex:

codex

再创建一个普通终端运行测试:

npm test

这样可以在同一界面中观察代码修改、测试结果和Agent状态。

常用操作方式

Herdr默认使用Ctrl+B作为快捷键前缀。

例如:

操作 按键
新建工作区 Ctrl+B,再按Shift+N
打开工作区导航 Ctrl+B,再按W
新建标签页 Ctrl+B,再按C
左右分屏 Ctrl+B,再按V
上下分屏 Ctrl+B,再按-
退出当前客户端 Ctrl+B,再按Q

Herdr也支持鼠标操作,可以点击工作区、标签页和分屏,拖动分割线调整终端大小。

退出SSH后保持Agent运行

当Agent正在执行长时间任务时,可以按:

Ctrl+B,然后按Q

这项操作只会断开当前Herdr客户端,不会直接结束服务器中的后台会话。

随后退出SSH:

exit

再次连接服务器:

ssh agent@服务器IP

重新执行:

herdr

即可返回之前的终端布局和Agent会话。这也是将Herdr部署在云服务器上的主要用途之一。

配置SSH密钥登录

服务器长期运行开发环境时,建议使用SSH密钥登录。

在本地生成密钥:

ssh-keygen -t ed25519

上传公钥:

ssh-copy-id agent@服务器IP

确认密钥能够正常登录后,可以在服务器中关闭root远程登录和密码认证。

编辑配置:

sudo nano /etc/ssh/sshd_config

调整为:

PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no

检查配置:

sudo sshd -t

没有报错后重载SSH:

sudo systemctl reload ssh

修改前应保留当前连接,并通过另一个终端测试密钥登录,避免配置错误导致无法进入服务器。

从本地远程连接Herdr

最简单的使用方式是先通过SSH登录服务器,再运行Herdr:

ssh agent@服务器IP
cd ~/projects/example
herdr

Herdr也提供远程连接能力,可以让本地客户端连接远程服务器上的Herdr环境。不过原生Windows客户端的远程模式仍有限制,Windows用户可以直接通过SSH进入服务器后运行Herdr。

可以在本地配置SSH别名:

Host herdr-server
    HostName 服务器IP
    User agent
    Port 22
    IdentityFile ~/.ssh/id_ed25519

以后只需要执行:

ssh herdr-server

即可进入服务器。

使用Herdr管理多个项目

可以为不同项目建立独立工作区:

工作区一:网站后端
├── Agent:修改接口
├── Agent:检查代码
└── 终端:运行自动化测试

工作区二:管理后台
├── Agent:开发页面
├── Agent:检查类型错误
└── 终端:启动开发服务

工作区三:项目文档
├── Agent:整理说明文档
└── 终端:查看Git变更

侧边栏会显示各个工作区当前最需要关注的状态。某个Agent等待授权时,开发者可以快速切换过去处理,而不必逐一检查每个终端。

使用命令行进行自动化

Herdr还提供CLI和本地Socket API,可用于脚本化创建工作区、启动任务、读取终端输出和查询Agent状态。CLI通常会返回结构化结果,适合编写自动化流程。

例如,可以设计以下流程:

  1. 启动一个Agent修改后端代码;
  2. 等待Agent完成;
  3. 在另一个分屏运行测试;
  4. 测试通过后启动代码审查Agent;
  5. 将结果保存在项目日志中。

这种方式适合实验性的多Agent协作,但正式使用时仍需要人工检查Agent生成的代码,不能直接将未经验证的修改部署到生产环境。

API密钥和项目数据安全

AI编程工具通常需要API密钥、账号令牌或登录状态。部署时需要注意:

  • 不要将API密钥提交到Git仓库;
  • 不要把密钥直接写入公开脚本;
  • 不同项目尽量使用独立凭证;
  • 限制配置文件读取权限;
  • 不让不可信项目读取整个用户目录;
  • 定期更换不再使用的密钥;
  • 重要代码仓库设置定期备份。

可以调整敏感配置文件权限:

chmod 600 ~/.config/相关工具/配置文件

服务器安全组通常只需要开放SSH端口。Herdr本身运行在终端中,没有必要额外开放公共网页管理端口。

是否需要使用Docker?

Herdr依赖终端、PTY、Shell、SSH和长期运行的Agent进程。虽然可以自行放入容器,但普通用户直接安装在Linux服务器中通常更方便。

使用Docker还需要处理:

  • 交互式终端;
  • 用户权限映射;
  • SSH密钥挂载;
  • 项目目录持久化;
  • Agent登录状态;
  • Docker套Docker;
  • 容器重建后的会话恢复。

如果主要目标是保持多个远程开发会话,直接在莱卡云等Linux云服务器中创建普通用户并安装Herdr,会比额外封装容器更容易维护。

Herdr适合哪些开发者?

Herdr更适合已经开始同时使用多个命令行AI编程工具的开发者。

只有一个Agent且任务时间较短时,普通终端或者tmux通常已经能够满足需求。需要并行运行多个Agent,并希望快速查看阻塞、运行和完成状态时,Herdr的工作区和状态汇总功能更有价值。

将Herdr部署到莱卡云服务器后,可以把Agent、代码仓库和开发工具放在长期在线的Linux环境中,再通过SSH从不同设备接入。实际选择配置时,应根据项目规模、Agent数量、编译任务和内存占用逐步调整,同时做好SSH安全、密钥保护和代码备份。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐