◆ Intent ▸ Proposal ✓ Commit ✕ Rejected ⏸ Suspended

Press Start runtime, then describe a task in plain language. Each message becomes a governed run: you see every intent, the runtime's verdict, and each commit, with replay proof. The model can propose anything; only an authorized proposal ever runs, and risky steps pause for your approval. What it may touch is set once on the left and saved to this model.

auto

## Mind — reasoning in 3D

A pure neural map of the run — every node is a real runtime event (intent, proposal, grant, execution, commit, error) plus the context the run actually used (provider, tools, replay). It's the Intent → Proposal → Commit spine made visible; click any node to see exactly what it was, click a legend type to filter it.

Live activity

The graph streams live as the agent works; the side panel reads the current turn top-to-bottom. Click a node (or a panel row) for details · drag to pan · scroll to zoom · double-click empty space to reset · click a legend type to filter.

## Runs

Every message you send is a governed run — a trajectory of intents → proposals → commits recorded on the ledger. Each row shows what the agent did and how it ended; open one to see its full audit trail and replay it.

## Providers

### Available providers

### Connect a model

Provider Claude — native Messages API OpenAI (or any OpenAI-compatible endpoint) Ollama — local LM Studio — local vLLM — local / self-hosted llama.cpp — local server LocalAI — local / self-hosted Groq OpenRouter Together DeepSeek Mistral Google Gemini Hugging Face Router Perplexity xAI Grok Fireworks NVIDIA NIM Cerebras Mock — offline, deterministic Model (blank = provider default · or Discover for the live list) Base URL (OpenAI-compatible / self-hosted — optional) API key (stored locally on this machine; local models need none)

Hook up any LLM. Pick a name above (or type any preset id) and Save — the runtime restarts using it. Three shapes:

- Claude: provider `anthropic` + your key.
- Hosted (OpenAI, Groq, OpenRouter, DeepSeek, Gemini, …): pick the preset + paste its key. The model field is optional.
- Local / self-hosted (Ollama, LM Studio, vLLM, a gateway): provider `ollama` (or `openai` for a custom endpoint), set Base URL (Ollama defaults to `http://localhost:11434/v1`), model = the local model name, key optional.

Keys are read server-side only — they're injected into the local runtime at startup, never sent to the model and never leave your machine. Cognition gains no execution authority. With no working key the runtime answers with the deterministic mock (real governance, no real model). The CLI mirrors this: `thymos providers` lists every preset, `thymos use <name>` sets one, `thymos doctor` verifies the wiring.

## Skills

### Create / tune a skill

Start from a template:
Name Title (optional) Instructions (prepended to the task; use {param} placeholders) Tools (comma globs, e.g. fs.read,git_* — blank = no extra limit) Preferred model (optional — used when this skill is active) Effect ceiling read write external irreversible

A skill never grants authority — it narrows a run: effective tools = requested ∩ allow-list, ceiling = AND, budget = min. Editing a skill bumps its version, minting a fresh content-addressed id; each run records the bound skill so replay can verify it. Bind one from the Chat composer's dropdown. Mirrors the CLI's `thymos skill`.

## Tools

pure read write external irreversible

These are the runtime's registered tool contracts, each tagged with the effect ceiling the governor enforces. Every call is checked against the writ (Pure ≤ Read ≤ Write ≤ External ≤ Irreversible) before it runs — a tool can never exceed its class.

＋ Add a custom tool — declare a governed tool (no code)
Start from a template:
Name Version
Description
Effect class
Risk
Executor
Command template URL template Input schema (JSON) { "type": "object", "properties": { "ref": { "type": "string" } } }

The tool is governed exactly like a native one — its effect class is enforced before it can run, every call is recorded on the ledger, and an irreversible tool waits for your approval.

## Audit

The receipts. Every message you send becomes a recorded run; this is the tamper-proof history of what actually happened — what the agent tried, what the runtime allowed or blocked, and what it changed. Search to find anything; leave it blank to browse all activity by day; click any row to open that run's full story.

## Backups & state

A live snapshot of your local runtime and the ledger it writes to — the single hash-chained file that holds every governed action. Copy it anywhere to back up; integrity is re-verifiable by replay.

The ledger is a single content-addressed, hash-chained SQLite file. A backup is a copy of that file; integrity is re-verifiable with `thymos replay <run> --verify` or the runtime's `verify_integrity`.

ledger file `—`

Copy that file anywhere to back it up; restore by pointing the runtime at the copy. One-click backup/restore + a chain-head integrity report is tracked in `docs/rfcs/desktop-app.md §3`.

## Advanced — runtime inspection

The deeper controls and live truth of the runtime under this app. Normal chat never needs this tab; it's here when you want to see — or steer — exactly what the runtime is doing.

### Runtime

Advanced Mode (show internals everywhere)

### Model & routing

Per-chat model override

Applies to new chat messages. Provider, key, and base URL are managed in the Providers tab.

### Authority

Grants are the writ scope for new chats (left rail chips). Tools at high risk (e.g. `shell`) always pause for your approval — tune with `THYMOS_APPROVE_RISK`.

### Working folder

The folder the agent may read, search, and edit. Without one, its file tools have nowhere to work. Changing it applies on the next runtime restart.

`— none chosen —`

### Responses

Stream responses live (experimental)

Off by default. When on, replies appear as they're generated instead of all at once. Falls back automatically for providers that don't stream.

### Ledger & debug

ledger file `—`

The single hash-chained file holding every governed action. Inspect any run in Audit (now with the full narrative: retries, rejections, grants, errors); verify with replay.