Skip to content

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).

  1. appctl init — create .appctl/config.toml and store provider credentials.
  2. appctl sync — generate the schema and tools from one selected source. If .appctl/schema.json already exists, --force is required to replace it.
  3. appctl chat or appctl run — send user text; the model may emit tool calls which appctl executes.
  4. appctl serve — expose HTTP/WebSocket and the embedded web console.
  • A web framework: your application is unchanged; appctl only consumes what it can read.
  • A database: data remains in your systems.
  • An LLM product: you configure providers in config.toml.

Not sure which flag to use? Start with Choosing a sync source (Nest, Spring, Next.js, and other stacks without a built-in flag).

SourceDocumentation
OpenAPIOpenAPI
Django (DRF)Django
Rails, Laravel, ASP.NET, StrapiRails, Laravel, ASP.NET, Strapi
Supabase / PostgRESTSupabase
SQL and other datastoresDatabases
URL + loginURL login
MCPMCP
Dynamic pluginsPlugins