REFERENCE
Dashboard
Run tether with no arguments to open the dashboard in the terminal.
Tabs
Switch tabs with the number keys, Tab, or a mouse click.
| Tab | Key | Shows |
| Overview | 1 | Dotfiles, packages, machines, recent activity, a chart of sync commits per day, and the daemon log |
| Files | 2 | Synced dotfiles with file history, diffs with line numbers, restore from a commit or a backup, and sharing |
| Packages | 3 | Packages by manager with the profiles of each package, manifest history, failed installs, install, and uninstall |
| Machines | 4 | A card for each machine: id, profile, OS, Tether version, packages, last sync, online/idle/stale state, key trust and pending commands. The details of another machine list its commands and packages, and change that machine by fleet command |
| Config | 5 | Config editor with toggles, validated text fields, list editing, and the package security settings |
| Security | 6 | The Inbox: held packages with their reasons, source machine, commit and OSV advisories, machine keys that wait for trust, and the trusted machines |
A machine is online when its record is at most 90 minutes old. A running daemon saves an unchanged record once an hour. A record from 90 minutes to 24 hours old shows the machine as idle. After 24 hours without an update, the card shows the machine as stale. A machine that still runs 1.x shows "on 1.x".
The header shows this machine, its profile, the daemon state, and a spinner while a sync runs. When items wait in the Inbox, the header shows ⚑ Inbox <count>. The badge is red when an item is malicious.
Keys
The footer shows the most important keys of the current tab. When it has no room for all of them, it shows ? more. Press ? to see every key of the current screen. You can also click a tab, a row or a key hint, and scroll lists with the mouse wheel.
Enter opens: a section, a history, a diff, details, or a value to edit Esc closes, collapses or goes back. It never quits. Press q or Ctrl+C to quit x removes, uninstalls, rejects or untrusts. It always asks first
Every tab
| Key | Action |
s | Sync now |
d | Start the daemon, or stop it (asks) |
r | Read the state again |
Ctrl+K | Command palette: search actions, tabs, files, and packages |
Tab, 1-6 | Next tab, or go to a tab |
? | Help: every key of the current screen |
Esc | Close, collapse or go back. Never quits |
q, Ctrl+C | Quit |
click | Select; click again to open |
Overview
| Key | Action |
Enter | Open the whole daemon log, read-only |
j/k, ↑ ↓ | Scroll the file list |
Daemon log
| Key | Action |
j/k, ↑ ↓ | Scroll one line |
PgUp, PgDn | Scroll one page |
g, Home / G, End | Go to the oldest / newest line |
Esc | Close the log |
Files
| Key | Action |
Enter | Expand a section, open file history, show a diff |
Esc | Close the diff, then the history |
j/k, ↑ ↓ | Move |
R | Restore the file to the selected commit (asks) |
b | Restore the file from a backup (asks) |
i | Import a dotfile from another profile |
t | Turn sharing on or off for the file |
x | Remove the file from this profile (asks) |
Packages
| Key | Action |
Enter | Expand a manager; show a history diff |
Esc | Close the diff, the history, then the list |
j/k, ↑ ↓ | Move |
t | Share: pick the profiles that install the package |
x | Uninstall the package (asks). Other profiles keep it. On a failed install, stop it on this machine. When other machines have it, first pick the machines |
i | Install a package that another machine has. When other machines lack it, first pick the machines |
h | Open the manager's manifest history |
R | Roll back to the selected history entry (asks) |
Machines
| Key | Action |
Enter | Open or close the machine's details |
Esc | Close the details |
h/j/k/l, ← ↓ ↑ → | Move between cards |
p | Set the machine's profile. Another machine gets it by fleet command (asks) |
a | Trust the machine's key (asks) |
A | Trust the machine's key here and on every machine that runs commands (asks) |
x | Untrust the machine's key (asks) |
D | Remove an old id of this machine (asks) |
Machine details (another machine)
| Key | Action |
Enter, Esc | Close the details |
j/k, ↑ ↓ | Move in the list of commands and packages |
h/l, ← → | Open the details of the previous or next machine |
x | Uninstall the selected package on that machine (asks) |
i | Install a package on that machine |
p | Set that machine's profile (asks) |
c | Cancel a pending command that this machine sent (asks) |
a | Trust the machine's key here (asks) |
A | Trust the machine's key here and on every machine that runs commands (asks) |
D | Remove an old id of this machine (asks) |
Config
| Key | Action |
Enter | Turn on or off, edit a value, or open a list |
j/k, ↑ ↓ | Move |
Config list
| Key | Action |
a | Add an item; Enter saves it, Esc cancels |
x, Delete | Remove the item (asks) |
t | Dotfiles: create the file when it is missing |
Esc | Back to the Config list |
j/k, ↑ ↓ | Move |
Security
| Key | Action |
a | Approve and install; a machine key or a failed signature asks first |
x | Reject (asks) |
Enter | Open or close the details |
Esc | Close the details |
j/k, ↑ ↓ | Move |
A | Approve all safe packages (asks) |
M | Approve all from the item's machine (asks) |
Questions
These actions ask first: restore, rollback, uninstall, remove, reject, trust, untrust, approve all, stop the daemon, and an approval that needs a second look, such as a machine key, a failed signature, or a package that OSV could not check.
- A question ignores
y for 0.4 seconds after it opens. Until then, it shows dim buttons with a countdown. A y that you typed for another screen cannot accept it. Cancel and scroll keys work at once - After that, only
y accepts n, Esc and Enter cancel. A click on the tab under the question does not accept it
Themes
On a terminal with true color, the dashboard uses Catppuccin Mocha or Latte. It picks one from the terminal background. Other terminals get a 16-color theme. To choose a theme, set dashboard.theme:
tether config set dashboard.theme mocha # mocha, latte, ansi, or auto