Kilo CLI Coding Agent
Run Kilo CLI via background process for programmatic control.
Run Kilo CLI via background process for programmatic control.
Real data. Real impact.
Growing
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
IMPORTANT: You need to have Kilo CLI installed and configured so OpenClaw can use it without any issue.
npm install -g @kilocode/cli
If you want to automate pull requests to Github, then you also need to authenticate Github CLI in your project: https://github.com/cli/cli#installation
Use bash background mode for non-interactive coding work. For interactive coding sessions, use the tmux skill (always, except very simple one-shot prompts).
# Create temp space for chats/scratch work SCRATCH=$(mktemp -d)Start agent in target directory ("little box" - only sees relevant files)
bash workdir:$SCRATCH background:true command:"<agent command>"
Or for project work:
bash workdir:~/project/folder background:true command:"<agent command>"
Returns sessionId for tracking
Monitor progress
process action:log sessionId:XXX
Check if done
process action:poll sessionId:XXX
Send input (if agent asks a question)
process action:write sessionId:XXX data:"y"
Kill if needed
process action:kill sessionId:XXX
Why workdir matters: Agent wakes up in a focused directory, doesn't wander off reading unrelated files (like your soul.md š ).
bash workdir:~/project background:true command:"kilo run --auto \"Build a snake game with dark theme\""
ā ļø CRITICAL: Never review PRs in OpenClaw's own project folder!
# Option 1: Review in the actual project (if NOT OpenClaw) bash workdir:~/Projects/some-other-repo background:true command:"kilo run \"Review current branch against main branch\""Option 2: Clone to temp folder for safe review (REQUIRED for OpenClaw PRs!)
REVIEW_DIR=$(mktemp -d) git clone https://github.com/openclaw/openclaw.git $REVIEW_DIR cd $REVIEW_DIR && gh pr checkout 130 bash workdir:$REVIEW_DIR background:true command:"kilo run "Review current branch against main branch""
Clean up after: rm -rf $REVIEW_DIR
Option 3: Use git worktree (keeps main intact)
git worktree add /tmp/pr-130-review pr-130-branch bash workdir:/tmp/pr-130-review background:true command:"kilo run "Review current branch against main branch""
Why? Checking out branches in the running OpenClaw repo can break the live instance!
# Fetch all PR refs first git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'Deploy the army - one Kilo CLI per PR!
bash workdir:
/project background:true command:"kilo run "Review PR #86. git diff origin/main...origin/pr/86"" bash workdir:/project background:true command:"kilo run "Review PR #87. git diff origin/main...origin/pr/87"" bash workdir:~/project background:true command:"kilo run "Review PR #95. git diff origin/main...origin/pr/95""... repeat for all PRs
Monitor all
process action:list
Get results and post to GitHub
process action:log sessionId:XXX gh pr comment <PR#> --body "<review content>"
git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'git diff origin/main...origin/pr/XXgh pr comment to post reviews to GitHubUse the tmux skill for interactive coding sessions (always, except very simple one-shot prompts). Prefer bash background mode for non-interactive runs.
For fixing multiple issues in parallel, use git worktrees (isolated branches) + tmux sessions:
# 1. Clone repo to temp location cd /tmp && git clone git@github.com:user/repo.git repo-worktrees cd repo-worktrees2. Create worktrees for each issue (isolated branches!)
git worktree add -b fix/issue-78 /tmp/issue-78 main git worktree add -b fix/issue-99 /tmp/issue-99 main
3. Set up tmux sessions
SOCKET="${TMPDIR:-/tmp}/kilo-fixes.sock" tmux -S "$SOCKET" new-session -d -s fix-78 tmux -S "$SOCKET" new-session -d -s fix-99
4. Launch Kilo CLI in each (after npm install!)
tmux -S "$SOCKET" send-keys -t fix-78 "cd /tmp/issue-78 && npm install && kilo run 'Fix issue #78: <description>. Commit and push.'" Enter tmux -S "$SOCKET" send-keys -t fix-99 "cd /tmp/issue-99 && npm install && kilo run 'Fix issue #99: <description>. Commit and push.'" Enter
5. Monitor progress
tmux -S "$SOCKET" capture-pane -p -t fix-78 -S -30 tmux -S "$SOCKET" capture-pane -p -t fix-99 -S -30
6. Check if done (prompt returned)
tmux -S "$SOCKET" capture-pane -p -t fix-78 -S -3 | grep -q "āÆ" && echo "Done!"
7. Create PRs after fixes
cd /tmp/issue-78 && git push -u origin fix/issue-78 gh pr create --repo user/repo --head fix/issue-78 --title "fix: ..." --body "..."
8. Cleanup
tmux -S "$SOCKET" kill-server git worktree remove /tmp/issue-78 git worktree remove /tmp/issue-99
Why worktrees? Each Kilo CLI works in isolated branch, no conflicts. Can run 5+ parallel fixes!
Why tmux over bash background? Kilo CLI is interactive ā needs TTY for proper output. tmux provides persistent sessions with full history capture.
When submitting PRs to external repos, use this format for quality & maintainer-friendliness:
## Original Prompt [Exact request/problem statement]What this does
[High-level description]
Features:
- [Key feature 1]
- [Key feature 2]
Example usage:
# Example command exampleFeature intent (maintainer-friendly)
[Why useful, how it fits, workflows it enables]
Prompt history (timestamped)
- YYYY-MM-DD HH:MM UTC: [Step 1]
- YYYY-MM-DD HH:MM UTC: [Step 2]
How I tested
Manual verification:
- [Test step] - Output:
[result]- [Test step] - Result: [result]
Files tested:
- [Detail]
- [Edge cases]
Session logs (implementation)
- [What was researched]
- [What was discovered]
- [Time spent]
Implementation details
New files:
- [description]path/file.tsModified files:
- [change]path/file.tsTechnical notes:
- [Detail 1]
- [Detail 2]
Key principles:
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
Ā© 2026 Torly.ai. All rights reserved.