最近我在好几台无桌面环境的机器上设置了vibe coding环境,作为记录。操作环境都是基于arch linux的服务器,没有图形界面,完全通过命令行操作。

安装mise

通过 paru -S mise 或者 yay -S mise 安装mise。 官方文档 https://mise.jdx.dev/getting-started.html

Shell配置

如果你使用的是zsh或者fish,需要参考官方文档进行相关的设置

fish

一键配置

curl https://mise.run/fish | sh
# Installs mise and adds activation to ~/.config/fish/config.fish

或者手动在你的fish配置加入

# ~/.config/fish/config.fish
if status is-interactive
  mise activate fish | source
else
  mise activate fish --shims | source
end

zsh

一键配置

curl https://mise.run/zsh | sh
# Installs mise and adds activation to ~/.zshrc

手动配置

# ~/.zprofile or ~/.zshrc
eval "$(mise activate zsh --shims)"

bash

一键配置

curl https://mise.run/bash | sh
# Installs mise and adds activation to ~/.bashrc

手工配置

# ~/.bash_profile or ~/.bash_login or ~/.profile
eval "$(mise activate bash --shims)"

安装编程环境

mise use -g nodejs bun rust go

不同的编码环境可能需要配置国内的各种镜像源,请自行查阅相关文档进行配置。

安装编程Agent

mise use -g claude-code codex opencode

后续要全部更新 执行 mise upgrade 就可以了。

mise不具备加速功能,有些工具需要自备代理才能正常下载

安装serverless浏览器

可以通过安装agent-browser来实现serverless浏览器的功能。arch用户安装命令

paru -S agent-browser

但是agent-browser只是一个壳子,可以通过agent-browser install来自动安装chrome。如果你倾向于使用轻量级的,可以通过 paru -S lightpanda来安装lightpanda浏览器

参考

安装herdr

herdr号称agent的tmux,安装还是很简单的,直接 paru -S herdr-bin 即可。然后在远程主机上运行herdr即可使用。

使用tips

  • 如果herdr升级,可能需要herdr server stop 以后才能继续使用
  • 如果claude被升级干掉,可以用 claude -r恢复会话,参考附录
  • 0.5.6版本新增了 herdr –remote ,这样您就可以将 Herdr 用作远程服务器的瘦客户端,而无需事先通过 SSH 连接。Herdr 通过 SSH 连接,在需要时引导匹配的远程 herdr 二进制文件,自动启动远程服务器,并将高效的终端视图流式传输回您的本地终端。

Agent跨设备同步

Agent配置

在有界面的设备上,使用cc-switch配置好,然后通过webdav上传配置到云端。

桌面端的可以使用 paru -S cc-switch-bin 安装cc-switch。

同步到无头设备

在无桌面环境的设备上,通过命令安装 paru -S cc-switch-cli 安装cc-switch-cli。通过命令cc-switch打开程序,在菜单 “配置-webdav同步”,设置好webdav的地址和账号密码后,选择“webdav下载到本地”就行了。

附录

Claude Code Session 管理指南

核心概念

Session 是 Claude Code 保存的完整对话历史,包括你的提示词、每一次工具调用、文件读取记录和 Claude 的回复。进程退出后 session 自动写入磁盘,随时可以恢复。

重要:session 保存的是对话上下文,不是文件系统状态。Claude 对文件做的修改是真实发生的,不随 session 恢复而回滚。


恢复 Session 的三种方式

命令 行为 适合场景
claude -c / --continue 继续当前目录最近一次 session 同一个 repo,快速接着干
claude -r / --resume 按名称或 UUID 恢复指定 session 多任务并行,精确跳回某个 session
claude -r(无参数) 打开交互选择器,手动挑选 忘记名字或 ID 时
# 继续最近一次 session
claude -c

# 交互选择器
claude -r

# 按名称恢复(实验性,见下方说明)
claude -r "auth-refactor"

# 按 UUID 恢复(最可靠)
claude -r "9ecddef3-b9e9-47c1-83b2-2e02ce005005"

# 恢复并立即发送提示
claude -r "auth-refactor" "继续完成单元测试"

交互选择器快捷键:

  • P — 预览对话内容
  • R — 重命名 session
  • 直接输入关键词可过滤

Session 名称

名称从哪来
  • 自动生成:不命名时系统根据对话内容自动生成一个名称,通常比较泛,不好区分
  • 手动命名:在 session 内执行 /rename <名称>
# 会话中执行
/rename auth-refactor
/rename payment-debug

# 不带参数:让 Claude 根据对话自动生成名称
/rename
名称只是展示标签

真正的唯一标识是 UUID,不是名称。

  • 两个 session 可以重名,Claude Code 不会阻止
  • claude -r "name" 目前按名称匹配属于实验性功能,不保证准确(见 GitHub issue #54796)
  • 同名 session 在选择器中会同时出现,需靠时间戳或 P 预览区分
  • 可以配合 /color 给 session 设置颜色(如 /color blue),多开终端时便于视觉区分
最佳实践
# 加项目前缀,避免重名
/rename myapp-auth-refactor
/rename myapp-payment-debug

session 结束时终端会打印:

Resume this session with: claude --resume <uuid>

保存这个 UUID 是最可靠的做法,适合在脚本或自动化中使用。


进程被 Kill 后能恢复吗

能。 无论是手动 Ctrl+C、终端关闭、进程被强制 kill,还是机器重启,只要 ~/.claude/projects/ 目录完好,session 数据就不会丢失。

恢复时整个消息历史会被完整还原,包括:

  • 已读取的文件内容
  • 已执行的命令记录
  • 之前所有的对话上下文

Session 永不过期,数月前的 session 同样可以恢复。


已知 Bug 和注意事项

Bug 1:恢复后 skip-permissions 丢失

--dangerously-skip-permissions 启动的 session,通过 -r 恢复后该 flag 不会自动还原,进程恢复为普通权限模式(GitHub issue #21974)。

解决方法:恢复时手动带上 flag:

claude -r "your-session" --dangerously-skip-permissions
# 或
claude -r "your-session" --permission-mode bypassPermissions
Bug 2:skip-permissions 中途自动关闭

--dangerously-skip-permissions 启动后,在长时间运行的 session 中(尤其触发上下文压缩时),permission mode 可能中途自动重置,通过 Shift+Tab 重拨也无法持久生效(GitHub issue #45290)。

建议替代方案:使用 --permission-mode auto,这是 Anthropic 官方推出的更稳定替代方案,通过模型分类器判断操作安全性,危险操作被拦截时 Claude 会自动寻找更安全的替代路径,而不是中断等待。

Bug 3:恢复后 session_id 变化

通过 --resume 恢复的 session 会生成新的 UUID,hooks 和外部日志系统无法通过 session_id 追踪跨终端的同一会话(GitHub issue #12235)。


Session 数据存储位置

~/.claude/projects/<project-path-hash>/<session-uuid>.jsonl

每个 .jsonl 文件对应一个 session,消息以 JSON Lines 格式逐行记录。可以直接读取这些文件做自定义分析或元数据检索。


快速参考

# 日常使用
claude -c                          # 继续最近 session
claude -r                          # 选择器选 session
claude -r "name-or-uuid"           # 恢复指定 session

# 命名
/rename my-feature                 # 手动命名当前 session
/rename                            # 自动生成名称
/color blue                        # 设置颜色(多终端区分用)

# 带权限恢复
claude -r "session" --dangerously-skip-permissions

# 自动化脚本
claude -r "deploy-staging" -p "Verify the deploy status" --output-format json