- Primitives — which capabilities are enabled, split into Identity (verification, formation, email, domains) and Tools (cards, social, vault, logs).
- Third-party connections — which apps a user may connect, plus per-tool filters and white-label auth.
naive.forProject(p).accountKits, --project <p> in the CLI, or the
X-Naive-Project-Id header in REST.
Kits in naive.config.ts
Kits can also be declared in naive.config.ts under kits: and instantiated per
child project — the same rows this page manages, authored declaratively:
naive up registers the role and provisions
nobody; each provision("<kit>") stamps one governed instance for one child project.
The deprecated top-level agents: block has always meant exactly this and compiles to
byte-for-byte the same output — naive up prints a rename notice for it, and declaring
one name in both blocks is refused at define time (kit_and_agent_duplicate). Details:
Account kits in the config.
CLI First
Tools
Creating a Kit
Connection modes
Per-tool filters (
tools.<app>.enable / .disable) and white-label
custom_auth_configs are optional.
Discovering app slugs: browse the full third-party app catalog with
GET /v1/toolkits (?search=). The dashboard’s
Account Kit editor uses this endpoint to power a searchable allow/block picker.Governance — require approval
Each gated primitive acceptsrequiresApproval, and connections accept
requiresApproval / approvalToolkits. When on, the agent’s sensitive action is frozen
for a human to approve before it runs.
requiresApproval: false to opt out. Calls on the
account’s own default agent profile execute without approval.