Developer Hub
Build with the same primitives PhiCo composes from. TypeScript SDK,
pwpack CLI, manifest-described block atoms, and the same pipeline that
ships our first-party 45 blocks. No second-class extension API.
Quick links
- Quickstart —
pnpm add @pwfabric/sdk→createClient()→ first Surface in under 5 minutes. - SDK reference —
defineBlock,defineFactory, the typedPWFabricClient. - API reference — Every REST route the platform
serves, generated from the OpenAPI schema at
/api/meta. - Runtime —
SurfaceRenderer, the per-World block registry pipeline (ADR-131 / ADR-122). - Architecture — Surface OS layers, World ↔ Physics model.
- AI integration — PhiCo Composer endpoint, custom
agents,
@pwfabric/world/intelligence. - pwpack CLI — Author, validate, and publish packs.
- Integrations — Google, Slack, OAuth roadmap.
Three commitments to anyone building on top
First-party and community ship through one pipeline
Your pwpack publish lands in the catalog the same way our internal teams
ship blocks. Same review, same versioning, same AI discoverability.
Contracts are frozen, evolution is reviewable
Public surfaces are versioned. Breaking changes need an architecture record and a migration path. Read what changed before you upgrade.
AI cannot reach past your manifest
Every block’s manifest declares the knowledge brief AI is allowed to see. No hidden capabilities. No metadata back-channel.
PWFabric Studio · Claude Code plugin
Build PhiWebs surfaces without leaving your terminal. PhiCo composes surfaces in the web app. PWFabric Studio is the developer counterpart — slash commands and MCP tools for the full surface lifecycle from Claude Code, plus end-to-end custom block authoring (scaffold → validate → package → upload) without installing any SDK. Both share one composer mind.
How it differs from PhiCo
| PhiCo | PWFabric Studio | |
|---|---|---|
| Audience | World members — non-technical, composing surfaces in their World | Developers, agencies, integrators — building surfaces and blocks for Worlds |
| Environment | Browser, in-product, web session | Claude Code on your machine, Bearer-token auth |
| Flow | Intent → Receipt → human accept → publish | Scaffold or starter → mutate → save revision → publish |
| Block authoring | Consumes blocks only | Scaffold + validate + package + upload custom blocks via MCP — no SDK install required |
| Composer mind | Receives the canonical composer charter from the runtime intelligence layer | Receives the same charter via aiMeta.personaPrompt on every schema fetch |
11 slash commands
/surface-create— scaffold a new surface, optionally from a canonical starter/surface-templates— fork from the canonical starter library (shared with PhiCo)/surface-preview— generate a local HTML preview before publish/surface-save— checkpoint working draft as a revision/surface-publish— ship to the cloud API/surface-diff— compare two revisions line by line/surface-validate— schema check against the live catalog/surface-clone— duplicate an existing surface/surface-export— JSON, HTML, or embed snippet/surface-watch— open the live browser preview/surface-update— apply a structured mutation
3 specialised agents
surface-composer— fetches the live composer charter, composes against the live catalogsurface-reviewer— quality + accessibility + schema pass before publishblock-reviewer— audits custom blocks against the manifest contract
One composer mind — no duplication
The composer charter (persona, composition rules, token rules, quality
bar) is a single canonical contract the platform ships. PhiCo’s runtime
injects it into compose / spawn prompts. Studio receives the same charter
via aiMeta.personaPrompt on every schema fetch. Starter Surfaces ship
from the first-party packs — one canonical source for both authoring
surfaces (PhiCo and Studio). Update once, both pick it up automatically.
Install
claude plugin install pwfabric-studioReady to write your first block?
The SDK + a manifest + pwpack publish is the whole loop.