Toolkit
Toolkit is the reusable, battle-tested building-block shelf for high-quality agentic applications. It turns the hard product work that repeats across apps into standard surfaces without making one app pattern the center of the catalog.
This section is the single discovery shelf for reusable app-building UI. A surface belongs in these docs because it is reusable, even when its current implementation owner is Core or a template. Ownership labels and import paths make that boundary explicit without scattering related UI guidance across the site.
Each kit packages the UI patterns, action contracts, app-state expectations, access boundaries, and agent-visible behavior that users expect to work consistently. Apps still own their domain model and visual identity; Toolkit makes the common product systems feel complete from the first version instead of being rebuilt in slightly different ways every time.
The mock shows one possible app composition. The app owns its dashboard data and routes; Toolkit provides reusable surfaces that can be adopted independently.
Core is the framework. Toolkit is an optional shelf of reusable pieces for the framework. Templates are optional apps built on Core; they can use Toolkit and can be forked and used as complete starting points. An app can also use Core directly without adopting Toolkit or a template.
Catalog
| Area | Start here | What it covers |
|---|---|---|
| Foundations | UI Primitives | Shared controls, hooks, app adapters, and shell seams. |
| Editors & canvases | Editors & Canvases | Rich editing, structured blocks, reusable canvas controls, and Design patterns. |
| Agent experience & context | Context & Knowledge | Context X-Ray, resources, knowledge, composer context, and agent-visible state. |
| Collaboration & governance | Collaboration | Sharing, presence, review, history, audit, and organization boundaries. |
| Workspace chrome | App Chrome | Settings, teams, setup, navigation, resources, and agent UX. |
| Operations | Observability | Usage, feedback, replay, diagnostics, and operational visibility. |
| Capability modules | Toolkit Capability Modules | Scheduling, Creative Context, and Pinpoint as install-on-demand packages. |
Product kits
| Kit | Use it for |
|---|---|
| Agent Page | Full-page agent configuration surface; apps choose whether to mount it. |
| Canvas interactions | Headless gestures and shortcuts plus optional drawing and comment-pin UI. |
| Chat History | Reusable chat list and rail; the app supplies thread data and callbacks. |
| Data Grid | Spreadsheet-like grid mechanics; apps own rows, editors, actions, and persistence. |
| Dashboard | Presentational dashboard panels and layout; the app supplies data and state. |
| Sharing | Ownable resources, share dialogs, visibility badges, share actions, public/private/org access. |
| Collaboration | Realtime editing, presence, live cursors, recent-edit highlights, collaborative undo. |
| Settings | Standard settings pages and tabs so app settings and agent/provider settings live in one predictable place. |
| Org & Team | Team pages, org switching, invites, org domains, roles, and app switching. |
| Setup & Connections | Onboarding, secrets, workspace connections, OAuth/provider readiness, and Builder connect (free tier available). |
| Command & Navigation | Command menu, deep links, standard app routes, sidebar and shell patterns. |
| Resources | Resource trees, editors, file picker/search, attachments, and local file mode. |
| Agent UX | Composer, model picker, context chips, approvals, run recovery, and the runs tray. |
| History | Version and audit APIs, undo/redo foundations, and guidance for app-owned history and diff views. |
| Comments & Review | Registered reviewable resources, comment actions, feedback queues, thread panels, mentions, resolved threads, and review status. |
| Notifications | Notification inbox and bell surfaces with app-owned event and routing policy. |
| Observability | Usage, spend, feedback, replay, errors, and run diagnostics. |
Package maturity and ownership
- The rich editor is Toolkit-owned. The old
@agent-native/core/clientand@agent-native/core/client/editorimport paths are deprecated tombstones, not compatibility re-exports — see Editors & Canvases for the migration path. - Design is a template pattern with reusable
design-tweaks; it is not a full drop-in editor or canvas package. - Core owns the Blocks schema and runtime contract; Toolkit provides reusable client UI under
@agent-native/toolkit/app/blocks. - The Context X-Ray engine remains Core-owned; its reusable presentation is Toolkit-owned.
- Scheduling, Creative Context, and Pinpoint are Toolkit capability modules installed on demand; Dispatch is a separate product, not one of them — see Toolkit Capability Modules for package maturity and ownership.
Dashboard kit
@agent-native/toolkit/dashboard is an ejectable, presentation-only unit for
metric and stats cards, data tables, date-range controls, panel ordering and
layout, and generic chart rendering. It receives rows and callbacks from an
app-owned adapter: it never fetches data, resolves credentials, or owns a
dashboard's state.
Use agent-native eject inspect toolkit/dashboard before applying
toolkit/dashboard to an app. Keep durable dashboards in that app with
@agent-native/core/dashboard-storage: instantiate its access-scoped schema
and store per app, not in a cross-app dashboard table. Panel data flows through
a PanelSourceResolver; the built-in program source runs an app-owned data
program and is the canonical no-provider default. Provider resolvers belong in
the app that owns their connection and query policy.
Implementation Boundary
Toolkit docs are organized by reusable product capability, not npm package.
Kits are product surfaces first. Some pieces are runtime-backed
(@agent-native/core), some are presentation primitives
(@agent-native/toolkit), and apps usually wrap both through local adapters.
Use the package path that owns the needed behavior, but design the user-facing
settings, collaboration, sharing, team, review, and setup experiences as one
coherent kit instead of exposing package boundaries in the app.
Customize or eject a kit
Adopt shared behavior in this order: configure the public component or adapter, compose public primitives behind an app-owned wrapper, eject the smallest supported unit, then propose a new shared seam when the same override appears in multiple apps.
Toolkit publishes readable, version-matched source and an ejection manifest that covers every public entry point. Inspect a unit before taking ownership:
agent-native eject --list
agent-native eject inspect <unit>
agent-native eject <unit> --app <app>
agent-native eject <unit> --app <app> --applyThe dry run reports all files and consumer imports that will change. Applying
the plan copies the complete source closure into the app, rewrites only the
declared imports, and records package version, manifest digest, file hashes, and
rewrites in the committed agent-native.ejections.json. Chat history is one
such unit: an app can own its presentation while Core continues to own thread
state, access, persistence, and chat transport.
Use agent-native eject diff <unit> --app <app> to inspect drift. Use
agent-native eject restore <unit> --app <app> to preview a return to the
package implementation, then add --apply. Restore refuses when any ejected
file or rewritten import has local edits, so app-owned changes are never
silently discarded.
The same unit contract covers first-party integration surfaces: remote MCP presets, workspace-connection providers, provider API definitions, messaging/channel adapters, setup and readiness UI, and domain packages. The catalog is complete by construction; a missing first-party unit fails the release guard. Unknown third-party packages receive an add-style blueprint. Protected runtime contracts are not ejectable and instead route to their public configuration, adapter, or extension seam.
Foundation Pieces
- UI Primitives covers the shared shadcn-style primitives
under
@agent-native/toolkit/ui/*, the local app-adapter pattern every template wraps them in, and the shared shell hooks (header actions, mobile detection, toasts). - Component API remains the lower-level reference for the public React exports.
Design Rule
Use a toolkit when the behavior repeats across apps and users expect it to feel standard: sharing, settings, teams, comments, history, and agent progress should not be slightly different in every template. Keep domain-specific data, workflows, labels, and visual styling in the app.
What's next
- Toolkit UI Primitives — the shared primitives, app adapters, and shell hooks every kit builds on.
- Sharing Kit — a good first kit to adopt: ownable resources, share dialogs, and visibility.
- Creating Templates — build a template end to end and see where kits fit alongside your own domain model.
- Component API — the generated reference for every public React export, including kit components.
- Package Lifecycle — inspect, add, and eject manifest-driven capability packages safely.