用途:coding-runner 是一份仅含 Markdown 文档的技能,目标是不再实现单独脚本或入口,而是复用现有 tmux 技能来运行代码类 CLI(Codex、Claude、pi、OpenCode 等)。用户只需告诉 agent 要做什么,agent 内部用 tmux 起会话,并按规范返回 socket、session 及启动/查看/停止命令。
主要能力与约定:统一只用 tmux,不用 interactive_shell;所有跑 CLI 写代码、起 dev server、长任务场景一律通过 tmux;不写新脚本、不实现新入口,技能只有这份文档,没有 index.ts 之类实现文件。始终返回三类命令:start(已执行的启动命令,说明用)、inspect(查看/attach 会话)、stop(停止会话)。
会话约定:socket 示例为 SOCKET="/tmp/pi-tmux-sockets/pi.sock";session 名简短无空格,如 pi-task-<slug>、pi-dev-<project>,例如 SESSION="pi-task-auth-fix"。
典型用法:起代码任务时构造 CMD="cd /path/to/project && codex exec --full-auto 'Fix the auth bug in auth.ts'",然后 mkdir -p "$(dirname "$SOCKET")" 并 tmux -S "$SOCKET" new -d -s "$SESSION" "$CMD";查看用 tmux -S /tmp/pi-tmux-sockets/pi.sock attach -t pi-task-auth-fix;停止用 tmux -S /tmp/pi-tmux-sockets/pi.sock kill-session -t pi-task-auth-fix。起 dev server 时 CMD="cd /path/to/project && npm run dev",session 如 pi-dev-myproj,查看与停止命令同理。
安全与限制:禁止在敏感目录起会话命令,不要用 ~/.pi/agent、~/.pi/gateway 作为工作目录,如需操作这些目录应通过专门维护脚本。尊重用户明确指定的 command、session 名、socket;用户只描述目标时由 agent 决定合理命令与命名。非阻塞:起会话后立刻返回,不在对话中等待完成,后续查看日志、停止均由用户执行 tmux 命令完成。