Develop locally
pal dev boots the local stack and pal agent dev is the inner loop. On every save it re-publishes your agent, fires a smoke run and streams its steps, against the same API, journal and budgets production uses. Edit-to-result takes seconds, and nothing changes when you ship.
-
Boot the stack. Docker runs Postgres, Redis and MinIO; the API and dashboard run on the host, so you need Go 1.26+ and Node 22+ (Install).
Terminal window pal dev # API :8080, dashboard :3001, WhatsApp bridge :3100 (iMessage bridge on macOS); logs in one terminalpal dev --infra-only # just the containers, if you run the API yourselfpal dev logs [service]tails container logs.pal dev downstops them;--volumesalso deletes data. Ports are listed in Install. -
Scaffold an agent. Templates:
basic(default),research,tool-use,connector,personal,scheduled,approval.Terminal window pal init my-agent --template researchDirectorymy-agent/
- agent.yaml name, model, system prompt, optional workflow
- … starter code for the template
-
Start the loop and leave it running while you edit.
Terminal window cd my-agentpal agent dev my-agent --input '{"prompt":"hi"}' --evalOn every change to
agent.yamlor any.yaml,.yml,.json,.ts,.tsx,.js,.jsx,.pyor.gofile, it:- publishes a new agent version,
- fires a smoke run with
--input, - streams
step_started,step_completed,step_failedandconfidence_evaluatedas a waterfall, - with
--eval, runs the agent’s eval suite and prints pass or fail against the baseline.
Ctrl-C exits.
agentsandagentare the same command. -
Gate it the way CI will.
Terminal window pal test --agent my-agent --suite <your-suite> # non-zero exit on regressionpal test --agent my-agent --rehearse --window 24h # replay recent real failures
When the loop is green, deploy it.