CLI¶
Every tau subcommand is a component: tau-core ships chat, components, doctor, hub, init and version; tau-tui adds tui; any installed distribution can add more through the tau.commands entry point group. This page mirrors --help for each of them.
Inside a repository checkout, prefix each command with uv run.
tau¶
Usage: tau [OPTIONS] COMMAND [ARGS]...
tau — a personal smart-body agent.
Subcommands come from plugins (the tau.commands entry point group).
Options:
-h, --help Show this help and exit.
--profile NAME Active profile, e.g. home | travel | sport (default:
TAU_PROFILE, else 'home').
--home DIR Configuration root: tau.toml, persona/, tools/ (default:
TAU_HOME).
--lang LANG UI language, en | tr (default: TAU_LANG, else [ui] in
tau.toml).
-v, --verbose Verbose log output.
Commands:
chat Chat with tau in the terminal.
components List installed components and their state.
doctor Check the installation.
hub Run and manage tau as a long-lived service in the hub role.
init Create tau.toml and the persona files.
tui Open tau in the Textual interface.
version Show the versions of the installed tau packages.
The three global options go before the subcommand: tau --home ~/other --lang tr chat. --profile and --lang are exported as TAU_PROFILE and TAU_LANG for the run, so a subcommand in another package sees them too. -v sends INFO to stderr instead of only WARNING.
tau init¶
Usage: tau init [OPTIONS]
Set up a configuration root: tau.toml from the shipped template (provider
picked from the credentials present in the environment or <home>/.env:
bedrock, then anthropic, else fake), persona/persona.md,
persona/user.example.md, persona/user.md (from the example, unless it
exists) and .env.example (the variable names). Existing files are kept
unless --force is given; user.md and .env.example are never overwritten.
Options:
-h, --help Show this help and exit.
--home DIR Configuration root to create (default: TAU_HOME, else
~/.tau).
--provider NAME Provider for the brain and fast roles (default: the first
with credentials).
--language LANG UI language, en | tr (asked when not given, unless --yes).
--profile NAME Write TAU_PROFILE=NAME into <home>/.env (appended; an
existing value is kept).
-y, --yes Ask nothing; use defaults for what is not given.
--force Overwrite an existing tau.toml and persona.md.
--provider accepts bedrock, anthropic or fake; the model ids it writes come from a table shipped with the package, so tau-core's Python never names a model. The local role keeps the template's value. Exit 0 on success, including when it kept every existing file.
tau doctor¶
Usage: tau doctor [OPTIONS]
Check the installation: tau.toml, each role's provider and credentials (no
model client is built), the session store, the persona files, .env against
.env.example, component load errors, [components] names nothing provides and
whether a hub answers on the control API. Exit 1 when a check fails.
Options:
-h, --help Show this help and exit.
--json Print the checks as JSON.
Each check line is ok, warn, info or fail followed by the check name and a detail. Exit 1 only on fail. --json prints {"ok": bool, "checks": [{"name", "status", "detail"}, …]}. The root is the global --home option: tau --home DIR doctor. See First run for the meaning of every line.
tau components¶
Usage: tau components [OPTIONS]
List every component tau can see: tools, commands, providers, session
backends, context sources and hub services, with their distribution,
version, whether [components] enables them and any load error.
Options:
-h, --help Show this help and exit.
--json Print the listing as JSON.
One block per entry-point group, one row per component: name, distribution and version, enabled or disabled, and a note (tier N for tools, in use: brain, fast or available for providers, in use for the session backend, the tau <name> for commands, a load error when there is one). See Components and plugins for a full listing.
tau chat¶
Usage: tau chat [OPTIONS]
Chat with tau in the terminal.
Options:
-h, --help Show this help and exit.
--role ROLE Model role to use (default: brain, or the role a resumed
session remembers from /model).
--resume [ID] Resume an earlier session (same as /resume).
--session ID Start with this session id.
--resumealone resumes the most recent earlier session with messages;--resume IDresumes that one.--session IDopens (or creates) a session with that id; ids must be plain names (letters, digits,.,_,-).--rolepins the role for the whole run and wins over the role a resumed session remembers.- Exit 2 before the prompt appears when credentials are missing, the config is invalid, or the session cannot open. Ctrl-D and
/quitexit 0.
tau tui¶
Usage: tau tui [OPTIONS]
Open tau in the Textual interface.
Options:
-h, --help Show this help and exit.
--profile NAME Active profile (default: TAU_PROFILE, else 'home').
--resume [ID] Resume an earlier session (the most recent one when ID is
omitted).
--profile here is the same setting as the global one; either place works. Missing credentials, a broken config or an unknown session id end the command with a plain English message and exit code 2 before the interface opens. While it runs, logging goes only to <TAU_DATA_DIR>/logs/tau.log.
tau hub¶
Usage: tau hub [OPTIONS] COMMAND [ARGS]...
Run and manage tau as a long-lived service in the hub role.
Options:
-h, --help Show this help and exit.
Commands:
install Install and start the launchd agent (macOS).
run Run the hub in the foreground.
status Show the hub's status and the reason of its last crash.
stop Stop the running hub (SIGTERM, clean shutdown).
systemd-unit Print the systemd unit file (for the RPi5 hub).
uninstall Remove the launchd agent (macOS).
tau hub run¶
Usage: tau hub run [OPTIONS]
Run the hub in the foreground (launchd and systemd run this too).
Options:
-h, --help Show this help and exit.
Exit 1 with tau hub is already running (pid N)… when the lock is held. Ctrl-C or tau hub stop stops it cleanly.
tau hub status¶
Usage: tau hub status [OPTIONS]
Show the hub's status and the reason of its last crash.
Options:
-h, --help Show this help and exit.
--json Print the status as JSON.
Prints whether the hub runs (pid, uptime, heartbeat), the last crash and the launchd state. Exit 0 whether or not a hub runs.
tau hub stop¶
Usage: tau hub stop [OPTIONS]
Stop the running hub (SIGTERM, clean shutdown).
Options:
-h, --help Show this help and exit.
--timeout SECONDS Wait at most this long for the hub to stop. [default:
15.0]
Prints Stop signal sent (pid N). then tau hub stopped., or tau hub did not stop within N s. on stderr with exit 1.
tau hub install / tau hub uninstall¶
Usage: tau hub install [OPTIONS]
Install and start the hub as a launchd user agent (macOS).
Options:
-h, --help Show this help and exit.
Usage: tau hub uninstall [OPTIONS]
Stop and remove the launchd user agent (macOS).
Options:
-h, --help Show this help and exit.
macOS only; on Linux both print a message and exit 1. install is idempotent and needs a GUI login session. See Run tau as a service.
tau hub systemd-unit¶
Usage: tau hub systemd-unit [OPTIONS]
Print the systemd unit file (for the RPi5 hub).
Options:
-h, --help Show this help and exit.
--python PATH The Python the service runs (default: the current
interpreter).
Prints the unit to stdout with this machine's absolute paths; redirect it into ~/.config/systemd/user/tau-hub.service.
tau version¶
Usage: tau version [OPTIONS]
Show the versions of the installed tau packages.
Options:
-h, --help Show this help and exit.
One line per installed tau-* distribution. It never imports a provider SDK, so it is safe to run on a broken installation.
Exit codes¶
| Code | Meaning |
|---|---|
| 0 | success; for tau doctor, no fail |
| 1 | tau doctor found a failing check; tau hub run found a running hub; a hub command could not do its job |
| 2 | tau chat / tau tui: missing credentials, invalid config or unknown session, before anything opened; also Click's own usage errors |
| 130 | tau chat left on Ctrl-C while an approval prompt was still blocking on stdin |
Environment¶
Every command honours TAU_HOME, TAU_DATA_DIR, TAU_PROFILE, TAU_ROLE, TAU_HUB_PORT and TAU_LANG, and reads <TAU_HOME>/.env without overriding variables already set. See Environment variables.