Menu da documentação

Documentação

System commands

Doctor, license, sync, cron and the other maintenance commands.

Nesta página

Overview

Everything on this page lives on the operations side of the CLI split: hand-parsed subcommands inside the desktop binary, each with its own usage line and its own output conventions. They do not take the global --json flag or share the semantic exit-code taxonomy.

tde doctor

A compact, privacy-safe environment diagnostic.

bash
tde doctor
tde doctor --json

Without arguments it prints a readable table, one line per item. With --json it prints the minified, single-line form, which is designed to be pasted into an agent's prompt as a prelude — so the model knows what OS, shell, terminal and toolchains it is dealing with before it starts guessing.

Reported fields are all best-effort and simply omitted when unavailable: os, kernel, shell, term, locale and a derived utf8 boolean, cwd_is_git and branch, a runtimes object probing node, python3, cargo, rustc, go and docker, and ms for how long the probe took. Nothing about your files, your network or your credentials is collected.

tde license

Headless license activation, for machines where nobody will ever open the UI.

bash
tde license activate --key <KEY> [--name <NAME>]
tde license status

--key and --name also accept -k / -n and the --key=VALUE form. --name defaults to the machine's hostname, or to the previously registered device name. Re-activating with a key that is already active is a successful no-op that prints already activated.

status prints not activated, or activated (local) / activated (cloud) with the device name — cloud meaning a remote replica is configured.

Exit codes here are the command's own: 0 for success or an already-activated no-op, 1 for a network or server error including an invalid key, 2 for usage.

tde sync hydrate

Brings a fresh machine up to the account's state. This is what a newly provisioned TDE Machine runs on boot.

bash
tde sync hydrate
tde sync hydrate --credentials-only
tde sync hydrate --repos-only

Three things happen, in order: replicated credential files are written to disk, replicated API keys are merged into the local vault, and every live replicated project is cloned into ~/.tde/repos and registered so it appears in TDE. Individual failures are reported and skipped, never fatal.

--credentials-only covers both kinds of auth material — files and vault secrets — which is the point of the flag: get the box able to talk to GitHub and to a model provider without cloning anything yet. --repos-only does the inverse. The two are mutually exclusive.

Hydration requires an activated license. Without one it exits 1 and tells you to run tde license activate first.

tde bot

Manage the recurring triggers that feed and advance the board.

bash
tde bot list
tde bot create <name> <cron> <action>
tde bot rm <id>

list — also the default with no arguments — prints tab-separated id, name, cron expression, action, and on or off. create takes all three arguments positionally and prints the new id. rm takes a numeric id.

Bot execution itself belongs to the Runtime, not to the desktop, so a created bot runs whether or not anything is on screen. See Bots for what they can do.

tde cron

The system crontab entries TDE owns, which are distinct from bots.

bash
tde cron list
tde cron run <id>
tde cron sync

list — the default — prints id, name, schedule, command and enabled state, tab-separated. run executes one job immediately, recording the start, the outcome and the captured output in the run history; a failed job propagates its output as the command's error. sync writes TDE's jobs into the real system crontab and prints crontab synced.

tde diff

The CLI counterpart of the in-app Git Diff viewer, reusing the same diff text, parser and renderer so the two cannot drift.

bash
tde diff
tde diff --stat
tde diff HEAD~3
tde diff main..feature-branch
tde diff --color=never > review.txt
FormShows
no argumentThe working tree diff.
<ref>That commit against its parent, or against the empty tree for a root commit.
<a>..<b>The diff between two refs.

--stat renders the summary instead of the full patch. --color accepts always, never or auto; bare --color means always and auto is the default, colouring only when stdout is a terminal.

The repository root is resolved from your current directory, so it works from any subdirectory. Each ref is validated before anything is shelled out — a bad revision is an explicit error, not an empty diff. On a terminal the output is piped through $PAGER, defaulting to less -R; set PAGER to an empty string to opt out, and redirect or pipe the command to get plain text.

tde font

bash
tde font install
tde font status

install places the brand font in your user font directory and then prints the per-terminal configuration line for kitty, Alacritty, foot, GNOME Terminal and WezTerm. status reports whether each font file is present and where the directory is. With no subcommand, install is assumed.

tde bootstrap

Runs the same provisioning implementation as onboarding, without entering the terminal UI.

bash
tde bootstrap run
tde bootstrap status
tde bootstrap run --state /var/lib/tde/bootstrap.json --no-starter --force
FlagEffect
--state PATHWhere progress is recorded. Defaults to bootstrap.json under the TDE state directory.
--no-starterSkip the starter app bundle.
--forceRe-run even when the state file already says Ready.
--install-system-deps, --kioskAccepted for compatibility and ignored — headless provisioning does not install host packages.

run streams one JSON event per line as provisioning progresses and exits non-zero if any item fails or if the provisioner ends without a terminal status. Without --force, a state file already marked Ready short-circuits: the status is printed and nothing is re-run. status — also the default subcommand — prints the recorded status as pretty JSON, or a default status when no state file exists.

tde games and tde ui-demo

bash
tde games
tde games snake
tde ui-demo

tde games with no name lists the bundled games — 2048, mines, snake, words and boxes — with a one-line description each; with a name it launches that game in the current terminal. tde ui-demo opens the design-system gallery, which is the fastest way to see every component TDE apps are built from. Both are also launchable from the desktop.

MCP stdio servers

TDE ships several Model Context Protocol servers as stdio entry points on the same binary:

CommandExposes
tde control-mcp [--profile NAME] [--socket PATH]The semantic My Loop API: tasks, projects, pipelines, agents, redacted share status.
tde brain-mcpDurable memory and decision records.
tde recall-mcpSession recall across prior agent conversations.
tde database-mcpManaged database profiles.
tde graph-mcpThe code graph.

control-mcp accepts --profile NAME and --socket PATH; with no socket it resolves — and if necessary starts — the profile's Runtime and uses its semantic socket. Like the rest of the semantic surface, it refuses any profile other than default. Its guarantees are documented in Ask and chat.

See MCP for connecting these to agents you run yourself.