Local use
The default mode. appctl is a single binary with no required services.
Files written on disk
Section titled “Files written on disk”| Path | Contents |
|---|---|
./.appctl/schema.json | Generated by appctl sync. Describes the tools. |
./.appctl/config.toml | LLM providers, default provider, behavior tuning. |
./.appctl/history.db | SQLite audit log of every tool call. |
~/.appctl/plugins/ | Plugin shared libraries. |
OS keychain (service appctl) | API keys and OAuth tokens. |
Everything per-project lives in .appctl/ next to your app. Add it to .gitignore unless you want a shared schema committed.
Typical workflow
Section titled “Typical workflow”# one-timeappctl config initappctl config set-secret ANTHROPIC_API_KEY --value "$ANTHROPIC_API_KEY"
# per projectcd my-appappctl sync --openapi http://127.0.0.1:8000/openapi.json --base-url http://127.0.0.1:8000 --forceappctl doctor --write
# dailyappctl chatUsing the bundled web UI
Section titled “Using the bundled web UI”appctl serve --port 4242open http://127.0.0.1:4242/The UI is a static React app compiled into the appctl binary. It works offline.
Using the VS Code extension
Section titled “Using the VS Code extension”Install from extensions/vscode. It speaks to appctl serve over WebSocket on the default port.