A minimal coding runner that uses a single tool: bash.
It runs an LLM-driven loop with strict phases and can be interrupted by humans at any time.
- Single execution tool:
bash(cmd) - Strict agent protocol:
plan -> act -> verify -> chat -> done - Mandatory
TASK.mdupdates per step - Step logs in
logs/run_YYYYMMDD_HHMMSS.log - Works with OpenAI-compatible APIs (OpenAI / Qwen DashScope)
- Human-in-the-loop controls:
Ctrl+Cto pause and enter control mode- Post-verify gate: only finishes after user confirms
done - Bare text in interactive prompts =
feedback + resume
- Python 3.10+
OPENAI_API_KEYorAPI_KEY- Optional:
rg(ripgrep), used for faster file inventory
python3 vibe_runner.py "创建一个 hello.py 并写入打印语句"export PROVIDER=openai
export BASE_URL="https://api.openai.com/v1"
export API_KEY="<your_api_key>"
export MODEL="gpt-4.1-mini"
python3 vibe_runner.py "your goal"export PROVIDER=qwen
export BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
export API_KEY="<your_dashscope_key>"
export MODEL="qwen3-max"
python3 vibe_runner.py "your goal"resume/r: continue agent loopfeedback <text>: add feedback to contextrun <bash>: run one manual command and inject output back to contextquit: exit runner (with confirmation)- bare text: treated as feedback and auto-resume
done: finish task (with confirmation)resume: continue improvingfeedback <text>/run <bash>/quit- bare text: treated as feedback and auto-resume
- used when agent chooses
phase=chatfor consulting/explaining tasks - supports
resume,feedback <text>,quit - bare text: treated as feedback and auto-resume
- Denylist blocks risky commands (
rm -rf,mkfs,dd,shutdown,reboot,curl,wget,nc,ssh) - One command per agent step
- Command timeout controlled by
CMD_TIMEOUT(default20s) - Max steps controlled by
MAX_STEPS(default30)
vibe_runner.py: runner implementationTASK.md: per-task working memory (overwritten each step)logs/run_*.log: execution audit logs