Getting started
This page takes you from a fresh clone to a first verified tick. Every command works at any clone path — nothing here depends on a specific machine layout.Prerequisites
Pi must be configured with a provider that can serve a coding agent
stably (system prompt + tool schemas + long sessions). Verify the endpoint
with one real call before dispatching work — do not assume the key or the
model service works:
The
local-llm-kv-cache proxy is an optional enhancement (faster
prefix reuse for local llama.cpp models), not a core prerequisite — see
Optional components.1. Clone the repository
2. Create the configuration
The repository ships a committed example; the real config is local state (gitignored). Copy it and edit it:
Minimal example:
3. Initialize the delivery labels
GitHub labels are external state: a commit never creates them, and a missing label makes the scan silently skip that state. Create them once per task-pool repository:4. Run one tick manually
The manual command is for first verification and troubleshooting only — normal operation is scheduled by the timer (step 6):ai-ready Issue (p0-labeled Issues are picked first, then
bug-labeled Issues, then plain features), then it exits. With an empty
ready queue it exits cleanly without claiming anything.
5. Smoke walkthrough (from zero)
The smallest end-to-end proof that your setup works. Run it in the clone directory from step 1; every command is relative to that directory.ai-ready → ai-in-progress → ai-pr-opened → ai-merged, a PR exists with Fixes #<issue> in its body,
and the journal shows run_end ... result=pr_opened. If any step fails,
the Issue is marked ai-blocked with the scene — see
Operations for recovery.
6. Enable the timer
%h
specifiers (%h/Documents/muyan/muyan-pilot). Point WorkingDirectory,
MUYAN_PILOT_CONFIG and ExecStart at your clone path, then:
main
before starting — see Operations).