The starter verbs every app should have
Theme, navigation, search, modals, toasts, forms, and sessions. A common baseline so your AI agent can immediately operate any site — without DOM hacks or brittle selectors.
The Standard Library is not a complete list of all possible verbs. OpenVerb is designed so developers create their own verb libraries for their own domains. This stdlib gives you the starter verbs that virtually every app needs, so an AI agent can immediately:
7 families, 19 verbs. Your app adds its own verb libraries on top of these for domain-specific actions.
| Family | Verbs | Purpose |
|---|---|---|
| ui.theme | get, set | Theme (light/dark/system) |
| ui.nav | list_pages, go, back | Navigation & route discovery |
| ui.search | query, open_result | On-site search |
| ui.toast | show, dismiss | Notifications & feedback |
| ui.modal | open, close, list | Modal dialogs |
| ui.form | list, fill, submit, reset | Form interaction |
| user.session | get, logout, get_preferences | User session & preferences |
# npm npm install openverb @openverb/stdlib # Python (copy manifests from repo) pip install openverb
The JSON verb definitions live in manifests/. Import them or load from the package:
import { findVerb, getAllVerbs } from "@openverb/stdlib";
// Get a specific verb definition
const uiNavGo = findVerb("ui.nav.go");
// Get all 19 starter verbs
const verbs = getAllVerbs();Use one of the reference implementations or write your own. The stdlib includes:
reference/vanilla/verbs.jsreference/react/useOpenVerb.tsreference/nextjs/verbs.tsWhen your AI receives a verb call, dispatch it to your handler. The client applies the effect (e.g. router.push(path) for navigation).
This is the canonical flow that makes AI navigation feel natural:
ui.nav.list_pagesui.nav.go({ routeId: "accounting" })/accountingThe key: maintain a route registry so the AI knows what pages exist. The AI uses id to navigate — it never guesses URLs.
Source code, manifests, reference implementations, and issue templates
Complete verb definitions with input/output schemas for all 19 verbs
Patterns, anti-patterns, and framework-specific guidance
Install @openverb/stdlib — TypeScript types, manifests, and helpers
The Standard Library is integrated into real apps. Try asking the AI to navigate or change the theme:
Manifests are JSON. Handlers are framework-specific (vanilla, React, Next.js).
The AI uses registries (routes, modals, forms) — no guessing URLs or selectors.
Every verb call has typed input/output. Log, replay, and review.
Verbs are small and independent. Combine them for complex flows.
The Standard Library is the verb catalog layer. It works with the OpenVerb Framework packages:
| Package | Purpose |
|---|---|
| @openverb/stdlib | Standard verb definitions (this package) |
| @openverb/runtime | Execution runtime |
| @openverb/sdk | Client SDK & React hooks |
| openverb | Core framework (npm & PyPI) |