Skip to content

Local use

The default mode. appctl is a single binary with no required services.

PathContents
./.appctl/schema.jsonGenerated by appctl sync. Describes the tools.
./.appctl/config.tomlLLM providers, default provider, behavior tuning.
./.appctl/history.dbSQLite 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.

Terminal window
# one-time
appctl config init
appctl config set-secret ANTHROPIC_API_KEY --value "$ANTHROPIC_API_KEY"
# per project
cd my-app
appctl sync --openapi http://127.0.0.1:8000/openapi.json --base-url http://127.0.0.1:8000 --force
appctl doctor --write
# daily
appctl chat
Terminal window
appctl serve --port 4242
open http://127.0.0.1:4242/

The UI is a static React app compiled into the appctl binary. It works offline.

Install from extensions/vscode. It speaks to appctl serve over WebSocket on the default port.