Skip to main content

1. Scaffold

This creates agents/echo/agent.ts and registers echo in project.ts. No .env file is created — outbound auth goes through connections and zap secret set, never environment variables.

2. Write the render function

3. Render deterministically (free, no model)

The output shows the exact instructions, model, tools, and referenced secret names (never values) — identical bytes on every run with the same input.

4. Deploy and iterate

Promote to production explicitly, by sha:

5. Talk to it

Events stream as JSONL: turn.started, render, text.delta, tool.planned, turn.completed. Resume a durable session with --session <id>; list them with zap sessions ls. Side-effecting tools run only with --live, and any model call requires a payer (PAYER_MISSING otherwise).

6. Add a connection and a secret

The value is encrypted at rest, listed as last4 only, resolved just-in-time per request, and never appears in any artifact. Next: Agents as code for the model, and the agent API reference.