Cross-agent dev service runner. Declare your project's long-running services once and run, observe, and tail logs from any supported AI coding agent — without losing state when the agent restarts.
- One config, many agents. Declare services (frontend, api, workers…) in a single JSON file.
- Persistent state. Services keep running across agent sessions. State + logs land in
<root>/<prefix>/services/. - Per-service logs. Tail or grep them from inside the agent instead of re-running commands.
- Fallback prefix chain. Picks the first of
.flevinsky-ai,.services,.pi,.claudethat exists — so existingpi-servicesor Claude Code state keeps working.
| Agent | Mechanism | Status |
|---|---|---|
| Claude Code | Plugin (MCP + hooks) | ✅ |
| Pi | Extension | ✅ |
| CLI | flevinsky-ai runner |
✅ |
| Other MCP | bin/server.js |
✅ |
curl -sL https://raw.githubusercontent.com/FabianLevi/flevinsky-ai/main/scripts/install.sh | bashAuto-detects Homebrew → pnpm → npm. Force a method with FL_METHOD=brew / FL_METHOD=pnpm / FL_METHOD=npm.
brew install FabianLevi/tap/flevinsky-aipnpm add -g flevinsky-ainpm install -g flevinsky-aiUse pnpm or npm inside WSL2, PowerShell, or Git Bash. Native Windows is best-effort.
- Claude Code —
/plugin marketplace add FabianLevi/flevinsky-aithen/plugin install flevinsky-ai - Pi — installs as a Pi extension automatically when the package is on
$PATH
Create .flevinsky-ai/services.json at your project root:
{
"services": {
"frontend": {
"kind": "server",
"cmd": "pnpm dev",
"cwd": "frontend",
"readyPattern": "Local:\\s+http"
},
"api": {
"kind": "server",
"cmd": "uvicorn app:app --reload",
"cwd": "backend"
},
"migrate": {
"kind": "task",
"cmd": "pnpm db:migrate"
}
}
}Field reference: see docs/architecture.md.
flevinsky-ai list # show declared + live services
flevinsky-ai start frontend # background-spawn
flevinsky-ai logs frontend 200 # tail last 200 lines
flevinsky-ai stop frontend
flevinsky-ai run frontend -- pnpm dev # attached: stream output to terminal, track stateThe plugin exposes MCP tools services_list / start / stop / restart / logs. Just ask: "tail frontend logs", "restart api".
Same surface via the Pi extension — /services list, /services logs frontend, etc.
- Architecture — state layout, process model, plugin/extension wiring
- Release checklist — how a
v*tag becomes a release - Rollback — undoing a bad release
- AGENTS.md — skills, MCP tools, hooks index for AI agents
MIT