Introduction
Talk to your app. In plain English.
appctl is a CLI that reads a machine-readable description of an application
(OpenAPI, ORM, SQL information_schema, framework layout, etc.), writes
.appctl/schema.json and .appctl/tools.json, and at runtime dispatches
tool calls from the model to your HTTP endpoints or database according to that
schema. Call history is stored locally (e.g. .appctl/history.db).
Primary commands
Section titled “Primary commands”appctl init— create.appctl/config.tomland store provider credentials.appctl sync— generate the schema and tools from one selected source. If.appctl/schema.jsonalready exists,--forceis required to replace it.appctl chatorappctl run— send user text; the model may emit tool calls whichappctlexecutes.appctl serve— expose HTTP/WebSocket and the embedded web console.
What appctl is not
Section titled “What appctl is not”- A web framework: your application is unchanged;
appctlonly consumes what it can read. - A database: data remains in your systems.
- An LLM product: you configure providers in
config.toml.
Sync sources (summary)
Section titled “Sync sources (summary)”Not sure which flag to use? Start with Choosing a sync source (Nest, Spring, Next.js, and other stacks without a built-in flag).
| Source | Documentation |
|---|---|
| OpenAPI | OpenAPI |
| Django (DRF) | Django |
| Rails, Laravel, ASP.NET, Strapi | Rails, Laravel, ASP.NET, Strapi |
| Supabase / PostgREST | Supabase |
| SQL and other datastores | Databases |
| URL + login | URL login |
| MCP | MCP |
| Dynamic plugins | Plugins |