Skip to main content

Global flags & entry points

A few entry points are handled directly by rt's CLI entry (cli.ts), before any command-tree dispatch (except --help and --all, which the dispatcher itself handles). These are not tree commands, so they don't have their own generated reference page.

--version / -V​

bash
rt --version
rt -V

Prints the installed version (rt <version>) and exits.

--help / -h​

bash
rt --help
rt daemon --help

--help is handled by the command-tree dispatcher itself, so it works on every command and subcommand, not just at the root. See Common flags for the full behavior.

--all​

bash
rt --all
rt --all --help

Lists every verb for this one run, including the ones rt.picker.hidden leaves out.

rt.picker.hidden is the list of verbs left out of the picker, the usage listing and --help. By default it holds the verbs the mattstack apps, skills and daemon run for you (rt state, rt skills, rt herd, rt gate and similar). Hidden verbs always run when named directly (rt state backup).

To change what's hidden, edit the list: the console's settings page shows the current list, starting from the default. Entries are verb paths: "pane" for a top-level verb, "worktree provision" for a nested one. [] lists everything. rt settings explain rt.picker.hidden shows the current list from the terminal.

--grant-fda​

bash
rt --grant-fda

Opens System Settings to the Privacy & Security → Full Disk Access pane and prints instructions for adding mattstack.app. The daemon inherits this grant from the app bundle, so the grant target is mattstack.app, not rt itself. Restart the daemon (rt daemon restart) after granting. In the app, the checklist's Full Disk Access row and Settings → Permissions open the same pane. Re-signing the bundle (which any rebuild does) invalidates the grant, and it must be given again. Updating the app costs the grant too, so expect to re-grant after an update.

Internal entry points​

Two other top-level flags are entry points for launchd and for installers rather than for everyday use:

  • --daemon starts the daemon server process directly. It's the entry point the daemon's launcher (launchd, or a background process) runs internally (rt --daemon) when rt is a compiled binary; you shouldn't need to run it yourself.
  • --post-install is the headless installer. Run it as /Applications/mattstack.app/Contents/MacOS/rt --post-install to do what the app's setup window does, without the window: it clears out leftovers from earlier installs, then runs rt setup apply --non-interactive --team-of-one (linking rt onto PATH, shell integration, the daemon, the editor extension, and the rest of the install). Extra arguments such as --json pass straight through to that apply. It refuses to run from a mounted DMG or a Gatekeeper-translocated copy. Until setup has run, other rt commands print a hint pointing at mattstack.app or rt setup. See Install.