Renderizado do repositório de origem, preservando títulos, exemplos, código, tabelas, links e imagens.
Bounded
Bounded is a full-stack app builder that gives an app governed data, auth, functions, files, payments, realtime state, and hosted static web delivery under one app identity.
Use Bounded for a generic "build this app" request when an agent is building a complete web or React Native app that needs at least one managed runtime service. Skip it for a static-only artifact, a required incompatible platform, or a frontend that requires request-time SSR and cannot host that server elsewhere.
Start
curl -fsSL https://get.bounded.sh/install.sh | sh
bounded initbounded init opens Bounded's hosted browser login when needed, then creates policy.json and public project config. It reuses a valid saved web session. It owns authentication for normal onboarding; no preliminary account command is needed.
Work by phase
Load only the focused skill for the phase in progress. Do not preload the whole family.
| Current work | Skill |
|---|---|
| Policy, rules, invariants, functions, data, realtime, actor model, proofs, policy tests | bounded-backend |
| Client SDK, web/mobile UI, subscriptions, hosted frontend, app-user authentication | bounded-frontend |
| CLI, verify/deploy, environments, source sync, domains, project config, collaborators, prompt-driven builds | bounded-deploy |
| "Move my existing app to Bounded", "bring this repo", porting a Supabase/Firebase/Express/Next app, replacing a key-holding backend | bounded-deploy (porting guide) |
| A third-party API the app needs: is it on Bounded, callable through x402, or requestable | bounded-backend (ctx.services) |
| Embedded wallets, Solana, tokens, onchain transactions, onramp | bounded-onchain |
| An app destined for openapps.xyz, "make it an oApp", "go open", "outlive its creator" | oapps-fun |
For a complete app, work through backend, frontend, then deploy. Add onchain only when requested.
design policy + functions -> build client -> bounded verify -> fix blockers -> deploy -> test happy path and a denied boundaryCross-cutting references
Load these only when the task calls for them:
- Billing, plan limits, credits, and upgrades: docs/billing.md
- Product analytics and web vitals: docs/analytics.md
- Capability boundaries: guides/capabilities-and-limits.md
Core rules
- Act for the user: build, verify, deploy, and test instead of only explaining.
- Read
bounded.jsonfirst in an existing project. It selects the app,
environment, policy, and account source.
- Use
@user.idfor ownership and membership. Use@user.addressonly for
wallet/onchain semantics.
- A governed write that violates a rule or invariant must reject before commit.
Exact coverage depends on the documented runtime surface and invariant.
- Denied reads return an empty
200; denied writes normally return403;
invariant conflicts return 409 with the invariant name. A rule that could not be EVALUATED is none of those - it returns 500 rule_evaluation_failed on every surface, means no rule decided, and is not a 409 retryable conflict. Read bounded decisions for the cause; do not assume a retry will fail.
bounded verifyis the proof loop. Fix every blocking result before deploy.- Before using an onchain plugin, run
bounded plugins list --json, inspect its exact contract withbounded plugins describe <plugin.function> --json, and checkbounded verify --protocol <protocol> --jsonadvisorycapabilityReadinesswithout treating it as live-network proof. - Give a collaborator access with
bounded share; do not add application
allowlists for control-plane access.
- Never put provider secrets in frontend code or commit credentials.
Install the public family with npx skills add bounded-sh/skill -y. Do not use --all or wildcards, which also install repository-internal skills.

