Agent skill
codex-worker
Spawn and manage multiple Codex CLI agents via tmux to work on tasks in parallel. Use whenever a task can be decomposed into independent subtasks (e.g. batch triage, parallel fixes, multi-file refactors). When codex and tmux are available, prefer this over the built-in Task tool for parallelism.
Install this agent skill to your Project
npx add-skill https://github.com/MoonshotAI/kimi-cli/tree/main/.agents/skills/codex-worker
SKILL.md
codex-worker
Orchestrate multiple Codex CLI (codex) agents running in parallel, each in its
own git worktree and tmux session.
When to use: Whenever you identify that a task can be split into independent subtasks — don't wait for the user to ask for parallelism. Examples:
- User says "triage all open issues updated in the last 7 days" → fetch the issue list, then spawn one codex worker per issue.
- User says "refactor these 5 modules" → one worker per module.
- User says "fix lint errors across packages" → one worker per package.
Replaces Task tool: When codex and tmux are available in the
environment, use codex workers instead of the built-in Task (subagent) tool.
Codex workers are full-featured agents with their own file system access, shell,
and isolated worktree — far more capable than subagents.
Preflight check
command -v codex && codex login status && command -v tmux
All three must succeed. The project must be a git repository.
Naming convention
Git branch and worktree directory share a task name:
<type>-<issue number (optional)>-<short description>
The tmux session adds a codex-worker- prefix so workers are easy to filter:
| Format | Example | |
|---|---|---|
| Task name | <type>-<number>-<desc> |
issue-836-prompt-dollar-sign |
| Git branch | same as task name | issue-836-prompt-dollar-sign |
| Worktree dir | <project>.worktrees/<task> |
kimi-cli.worktrees/issue-836-prompt-dollar-sign |
| tmux session | codex-worker-<task> |
codex-worker-issue-836-prompt-dollar-sign |
More examples:
issue-518-mcp-config-isolationfix-share-dir-skills-pathfeat-ask-user-toolrefactor-jinja-templates
List only codex workers: tmux ls | grep ^codex-worker-
Usage
Prefer tmux + interactive codex for all tasks. It supports multi-turn dialogue,
the user can tmux attach to inspect or intervene, and you can send follow-up
prompts from outside.
Spawn a worker
NAME="issue-836-prompt-dollar-sign" # task name
SESSION="codex-worker-$NAME" # tmux session name
PROJECT_DIR="$(pwd)"
WORKTREE_DIR="$PROJECT_DIR.worktrees"
# 1. Create worktree (skip if exists)
git worktree add "$WORKTREE_DIR/$NAME" -b "$NAME" main 2>/dev/null
# 2. Launch interactive codex inside tmux
tmux new-session -d -s "$SESSION" -x 200 -y 50 \
"cd $WORKTREE_DIR/$NAME && codex --dangerously-bypass-approvals-and-sandbox"
Send a prompt
The Codex TUI needs time to initialize before it accepts input.
After launching a session, wait at least 5 seconds before sending
a prompt. Then send the text followed by Enter. If the prompt stays
in the input field without being submitted, send an additional Enter.
sleep 5 # wait for Codex TUI to initialize
tmux send-keys -t "$SESSION" "Your prompt here" Enter
# If it doesn't submit, send another Enter:
# tmux send-keys -t "$SESSION" Enter
Peek at output
tmux capture-pane -t "$SESSION" -p | tail -30
Attach for hands-on interaction
tmux attach -t "$SESSION"
Parallel fan-out
TASKS=(
"issue-518-mcp-config-isolation|Triage #518: MCP config 被子 agent 继承的隔离问题。分析根因,给出修复方案。"
"issue-836-prompt-dollar-sign|Triage #836: prompt 包含 $ 时启动静默失败。分析根因,给出修复方案。"
)
PROJECT_DIR="$(pwd)"
WORKTREE_DIR="$PROJECT_DIR.worktrees"
for entry in "${TASKS[@]}"; do
NAME="${entry%%|*}"
PROMPT="${entry#*|}"
SESSION="codex-worker-$NAME"
git worktree add "$WORKTREE_DIR/$NAME" -b "$NAME" main 2>/dev/null
tmux new-session -d -s "$SESSION" -x 200 -y 50 \
"cd $WORKTREE_DIR/$NAME && codex --dangerously-bypass-approvals-and-sandbox"
sleep 5 # wait for Codex TUI to fully initialize
tmux send-keys -t "$SESSION" "$PROMPT" Enter
done
Fallback: codex exec
Only use codex exec when you explicitly don't need follow-up (e.g. CI, pure
analysis with -o output). It does not support multi-turn dialogue.
codex exec --dangerously-bypass-approvals-and-sandbox \
-o "/tmp/$NAME-result.md" \
"Your prompt here"
Lifecycle management
List active workers:
tmux ls | grep ^codex-worker-
Kill a finished worker:
tmux kill-session -t "codex-worker-$NAME"
Clean up worktree after merging:
tmux kill-session -t "codex-worker-$NAME" 2>/dev/null
git worktree remove "$WORKTREE_DIR/$NAME"
git branch -d "$NAME"
Batch cleanup of dead sessions:
tmux list-sessions -F '#{session_name}:#{pane_dead}' \
| grep ':1$' \
| cut -d: -f1 \
| xargs -I{} tmux kill-session -t {}
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
pull-request
Create and submit a GitHub Pull Request.
translate-docs
Translate and sync bilingual documentation.
release
Execute the release workflow for Kimi Code CLI packages.
gen-docs
Update Kimi Code CLI user documentation.
worktree-status
Audit all git worktrees in the current project. Use when the user asks about worktree status, which branches are merged, which have uncommitted changes, or which worktrees can be safely cleaned up.
feature-smoke-test
针对 Kimi Code CLI 的新增或变更功能,规划并执行可重复的端到端冒烟测试。从 git diff 推断功能边界,读取相关文档和代码,设计测试 prompt,以 --print 非交互模式运行本地 CLI,检查进程退出码和 session 产物,总结预期与实际行为之间的差异。发现问题时自动启动多路并行探查以定位根因。
Didn't find tool you were looking for?