README · Setup Guide · User Guide
No database, no environment variables to hunt down — every setting
lives as a plain JSON file under your cockpit_data/
folder (default ~/scripts/cockpit_data/, or
~/scripts/cockpit_data/users/<username>/ once you
have more than one local login). Most of these are editable from
inside the app; this page documents the file each screen actually
writes to, for when you want to hand-edit or script something.
paths.php is the single choke point every backend file
reads data locations through. With no override, everything resolves
under cockpit_data/ next to your install. Multiple local
logins each get their own subfolder automatically — nothing to
configure by hand for that.
workers_providers.json — add a custom OpenAI-compatible
provider, or extend the built-in list (Groq, OpenRouter, Together AI,
Z.ai, DeepInfra, HuggingFace…). Keys themselves are entered from the
Keys toolbar button and stored AES-256-GCM
encrypted, bound to your machine — never written here in plaintext.
{
"custom_providers": {
"my-provider": {
"base_url": "https://api.example.com/v1",
"models": ["model-a", "model-b"]
}
}
}
cli_suppliers.json — defines every CLI-style agent
Cockpit knows how to drive (binary name, CLI flags, model list,
output parser). Card 1 and Card 2 can be re-pointed at any entry
here instead of the Claude/Gemini defaults — e.g. Codex — without
touching app code.
{
"claude": {
"name": "Claude", "vendor": "Anthropic", "binary": "claude",
"cli_flag": "-p", "model_flag": "--model",
"models": [{"id":"sonnet","label":"Sonnet (balanced)"}],
"detect_cmd": "claude --version 2>/dev/null"
}
}
tools.json (+ tools_state.json for
detected/enabled state) — defines each local CLI tool's binary,
presets, and output routing (ffmpeg, whisper.cpp, pandoc, or your
own). Managed mostly from the Tools panel; hand-edit to add a new
preset for an existing binary.
cockpit_data/capabilities/<name>/CAP.json — one
folder per capability, each self-contained (manifest + any
supporting files). Built-ins ship under _builtin/
(filesystem, git, ssh, web-search, web-fetch); your own live
alongside them and show up in the Capabilities panel automatically.
Not user-configurable per se — routing is automatic by file type
(text/code inlined, PDF/DOCX/EPUB → pandoc, audio → whisper.cpp,
video → ffmpeg+whisper, images → vision model). What changes is
which local tool handles each stage, via the same
tools.json presets above.
scheduler.php reads job definitions written from the
Jobs topbar control — cron-like local jobs (e.g.
overnight Accumulator runs, sequence plans with guardrails). No
separate cron daemon required beyond what scheduler.php
itself needs invoked periodically (a single system cron entry, set
up once during install).
rules.php-managed, editable entirely from the
Delegate toolbar button — keyword/phrase → target
(worker, combo, or Ollama model) mappings. No file to hand-edit
normally; documented here only because it's config, same as the rest.
themes.json — every built-in theme plus anything you
save from the Theme Editor (palette swatches, export/import as
JSON). Editable visually; the file is a straightforward name→color
map if you want to script a palette.
saas_account.json, any
*_keys*/encrypted blob, or files under a
_keys_master-style path — those are machine-bound
ciphertext, not plain config.