
Server Plugins
- 5 installs
- 4.4k repo stars
- Updated August 2, 2026
- builderio/agent-native
server-plugins is an agent-native framework skill covering default server plugins and the reserved /_agent-native/ route namespace for framework routes.
About
A skill for the agent-native framework explaining its server plugins and the /_agent-native/ route namespace. A developer uses it when adding a custom server plugin, deciding between an /api/ route and an action, or debugging auto-mounted framework routes. It sets the rule that framework routes live under /_agent-native/ and that standard CRUD should use defineAction rather than custom routes.
- Documents 5 default auto-mounting server plugins and when to customize each
- Reserves the /_agent-native/ namespace for framework routes vs /api/* for templates
- Pushes an actions-first approach via defineAction over wrapper /api routes
Server Plugins by the numbers
- 5 all-time installs (skills.sh)
- Ranked #3,671 of 4,348 Backend & APIs skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
server-plugins capabilities & compatibility
- Capabilities
- api development · backend
- Works with
- vercel
- Use cases
- api development
What server-plugins says it does
Five default plugins auto-mount when your app doesn't have a custom version in `server/plugins/`:
All framework-level routes live under `/_agent-native/` to avoid collisions with template-specific `/api/*` routes.
Never create `/api/*` routes that only wrap, proxy, or re-export actions.
npx skills add https://github.com/builderio/agent-native --skill server-pluginsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 5 |
|---|---|
| repo stars | ★ 4.4k |
| Last updated | August 2, 2026 |
| Repository | builderio/agent-native ↗ |
What it does
Add a custom server plugin or decide between an /api/ route and a defineAction in an agent-native app.
Who is it for?
Adding a custom server plugin or choosing between an action and a custom API route.
Skip if: Creating /api/* routes that only wrap, proxy, or re-export actions.
When should I use this skill?
Adding a custom server plugin, deciding /api/ route vs action, or debugging auto-mounted framework routes.
What you get
Framework routes stay under /_agent-native/ and CRUD flows go through actions instead of redundant routes.
By the numbers
- Documents 5 default auto-mounting plugins
- Lists ~17 auto-mounted /_agent-native/ routes
Files
Server Plugins & Framework Routes
Default Plugins (auto-mount)
Five default plugins auto-mount when your app doesn't have a custom version in server/plugins/:
| Plugin | Default behavior | Customize when |
|---|---|---|
agent-chat | Agent chat endpoints | Custom mentionProviders or systemPrompt |
auth | Auth middleware | Custom publicPaths or Google OAuth config |
core-routes | /_agent-native/poll, /_agent-native/ping, etc | Custom envKeys or sseRoute |
resources | Resource CRUD | Rarely |
terminal | Terminal emulator | Rarely |
Only create plugin files for plugins you need to customize. Let defaults auto-mount.
Framework Route Namespace: /_agent-native/
All framework-level routes live under /_agent-native/ to avoid collisions with template-specific /api/* routes.
Hard rule
- ALL framework routes go under `/_agent-native/`.
- Templates own
/api/*only for route-only domain concerns such as uploads,
streaming, webhooks, OAuth callbacks, or non-JSON protocols.
- Never put framework routes under
/api/. - Never put template routes under
/_agent-native/— that namespace is reserved. - Never create
/api/*routes that only wrap, proxy, or re-export actions. Use
the existing /_agent-native/actions/:name endpoint or the React action hooks.
Auto-mounted framework routes
| Route | Purpose |
|---|---|
GET /_agent-native/poll | Polling endpoint for DB change detection |
GET /_agent-native/events | SSE endpoint for real-time sync |
GET /_agent-native/ping | Health check |
GET/PUT/DELETE /_agent-native/application-state/:key | Application state CRUD |
GET/PUT/DELETE /_agent-native/application-state/compose/:id | Compose draft CRUD |
POST /_agent-native/agent-chat | Agent chat SSE endpoint |
GET /_agent-native/agent-chat/mentions | Mention search for @-tagging |
GET /_agent-native/env-status | Env key configuration status |
POST /_agent-native/env-vars | Save env vars |
/_agent-native/auth/* | Authentication (login, session, logout) |
/_agent-native/google/* | Google OAuth (callback, auth-url, etc.) |
/_agent-native/resources/* | Resource CRUD |
/_agent-native/actions/:name | Auto-mounted action endpoints |
/_agent-native/available-clis | Available CLI tools |
/_agent-native/agent-terminal-info | Terminal connection info |
/_agent-native/collab/* | Real-time collaboration (see real-time-collab) |
/_agent-native/a2a | A2A JSON-RPC endpoint (see a2a-protocol) |
Actions-First Approach
For standard CRUD and data operations, use defineAction in actions/ — the framework auto-mounts them as HTTP endpoints at /_agent-native/actions/:name. Only create custom /api/* routes for things actions can't do:
- File uploads with multipart form data
- Streaming responses
- Webhooks from external services
- OAuth callbacks
Before adding a route, inspect the existing action files. Reuse the action if it already encodes the business rule, or add a new action if the operation should be available to both the agent and the UI. A route whose implementation mostly calls an action is usually the wrong abstraction.
The Nitro Vite plugin handles both /api/ and /_agent-native/ prefixes via file-based routing in server/routes/.
Related Skills
actions— Prefer actions over custom/api/routesauthentication— Auth middleware and session handlingportability— Use H3 (not Express) for all routes