PhiCo
PhiCo is the authoring composer agent. PhiCo proposes a Receipt — a signed, line-numbered recipe of how a Surface should compose — and you accept, modify, or reject it. Nothing publishes without a human-accepted Receipt. This is the contract that makes every PhiWebs Surface reproducible.
PhiCo is online-only and receipt-driven: it composes against the live block catalog, and every proposal lands as a reviewable diff before anything reaches a published Surface.
What PhiCo does
| Mode | What PhiCo proposes |
|---|---|
| Compose | A new Surface from your prompt — picks blocks, structures the tree, fills in defaults. |
| Mutate | Targeted edits to an existing Surface — add a section, change a heading, restructure a grid. |
| Spawn | A fresh Surface inside the current World, optionally based on a starter. |
| Style | Theme tokens, appearance atoms, visual decisions. |
| Bind | Wire blocks to data via the platform/persistence capability. |
Each mode runs as a separate agent thread with its own conversation history. You can have multiple threads open in PhiCo at once.
The Receipt
Every PhiCo response includes a Receipt — a typed diff describing exactly what would change.
Receipt sf_abc123 · revision 7 → 8
─────────────────────────────────
+ block heading L12 level=1 align="center" content="…"
+ block text L13 align="center" color="muted"
~ container (props.padding) L05 lg → xl
- block image (id="img_old") L21 removedReceipts are line-numbered, hash-signed, and immutable once accepted. The runtime materialises the Surface deterministically from the Receipt’s contents — same Receipt → same render, every time.
Accepting, modifying, rejecting
When PhiCo returns a Receipt, you have three choices:
- Accept — Apply the Receipt as-is. The Surface moves to a new revision; the diff is preserved in the Surface’s revision history.
- Modify — Inline-edit the proposed blocks before accepting. PhiCo preserves your context for the next turn.
- Reject — Discard the proposal. The Surface stays exactly as it was.
What PhiCo can and can’t see
PhiCo composes from the live block catalog plus the manifest knowledge schema every block ships with. It does not see private World data, your email, or anything outside the current authoring session unless you explicitly bind a data source.
Each block’s manifest.json exposes a 4-field knowledge brief
(intent, whenToUse, whenNotToUse, commonMistakes) that PhiCo reads
verbatim. Each World may override the brief on its installed atoms —
useful when your phrasing differs from the first-party defaults.
Φ accounting
Φ is spent as PhiCo works: each turn costs credits based on the work it produces (measured in tokens), in every mode — compose, mutate, style, spawn, bind. Opening a thread is free, and the accept / reject decision itself costs nothing — but the proposal has already been paid for when it was generated.
When your AI credits run out mid-month, top up from World settings → Billing. New cycles refill at the start of the next billing period.
API
PhiCo is available through:
- PhiCo — Cmd+K to open the composer pane.
- MCP server — Local Claude Code integration via the PhiCo Code plugin.
- REST —
POST /api/ai/composer/stream(SSE).
See also
- Surfaces — what PhiCo composes against
- AI integration — model selection, custom agents