Console settings
The local console (din console) can change this install's settings for you, so a paid install never needs a terminal: activating a key, webhooks, capture, autostart, agents and fields. Every control runs the installed din command named beside it, on this machine, and shows you exactly what that command printed. Nothing is changed any other way, so the console and the terminal always agree.
These controls are new in 1.0.32. On an earlier release, run the same din commands in a terminal.
Where the controls are, and who can use them
They are on the local console only: Plan and billing has the activate box, and Settings has the rest. The public demo and a hosted console have neither, and their servers do not answer the settings requests at all.
The local console listens on this machine's loopback address only. A settings request is accepted only from the console's own page: it must carry a random key the console creates each time it starts and puts in the page, and it must come from the console's own address. A page on any other site cannot use them. If the console restarts while a page is open, the page's key is out of date: reload the page. Every settings request, accepted or refused, is written to the console's log by command; a licence key never is.
Activate a key (Plan and billing)
Paste your licence key and press Activate. The console runs din activate - with the key on its standard input, never on a command line. It shows your tier, what it turns on and when the current period ends, or the error din gave, and the plan on the screen updates without a restart. See Activate a paid licence for what din activate checks and writes.
Capture and startup
- Capture on or off. Runs
din capture onordin capture off, which setsDIN_CAPTUREin the capture plugin'splugin.env(in~/.din/, or$DIN_HOME). It applies from your agent's next tool call. - Never capture under a path. Runs
din capture exclude <path>(andunexcludeto take it off). Nothing your agent does in that directory, or below it, is captured. This isDIN_CAPTURE_EXCLUDE. - Capture only these. Runs
din capture only <path>(andunonly). With an allowlist, only the listed paths are captured; with none, every project that is not excluded is. This isDIN_CAPTURE_PROJECTS. An exclusion always wins over the allowlist. - Start the field at login. Runs
din autostart on,offorstatus: a per-user login entry, no admin rights.offremoves whatonmade.
Paths are absolute and matched as a prefix of the directory your agent works in. A path with a : in it (a Windows drive path) cannot go in these lists today. Secrets are removed before anything is written, whatever these settings say.
Agents and fields
- Agents. Shows
din agent list. Add runsdin agent add <agent>for Claude Code, Cursor or OpenCode, which wires it with the capture plugin's own installer; Remove runsdin agent remove <agent>, which unwires it and keeps its records. On the free plan one agent is active at a time:dinsays what adding a second one does, and the console adds it only when you tick the box that says so. - Fields. Shows
din field list. New field runsdin field new <name>: its own store, token and loopback port, sharing this install's programs and plan, started on first use. Choosing the default field stays a terminal command,din field use <name>.
Webhooks
Webhooks are a paid feature. On the free plan the panel shows what it does and links to the plans, and the console does not run anything for it.
On a paid plan the panel lists your subscriptions and lets you add or remove one (an endpoint URL, a name, and any of the four events: record.new, collision.detected, needs_human.raised, decision.superseded; none ticked means all four). Send test event posts one event named webhook.test to that endpoint, the way the field sends a real one, and shows the status it answered.
The panel runs din webhooks list, add, remove and test, which write the file your field reads: the one named by FIELD_WEBHOOKS, or webhooks.json beside the field program when that is not set. A running field reads that file again on its next rescan, so adding or removing a subscription needs no restart. If you set FIELD_WEBHOOKS yourself, set it before the field starts (in the environment, or in the install's field.env, which din field start hands to the field).
Only http:// endpoints work. https:// is not supported: the field has no TLS stack, and an https:// URL is refused when you add it. To deliver to an https:// endpoint, run a TLS forwarder on loopback and subscribe its http:// address. A signing secret is set by hand in the subscriptions file; the console never shows one, keeps any that are there, and a test event is signed with it like a real one.
Each event is a pointer (an id, the project, a timestamp), never a copy of a record.