Reference / The Tenax CLI
One job.
One command.
Use the app on your device. Use tenax to set up a host or open the same sessions from a terminal.
New here? Get started. These commands use your saved sign-in.
Sign in from a terminal
Run these on the computer where you use the CLI. Host installation is separate; see Get started.
| Command | What it does |
|---|---|
tenax login | Sign this terminal client in. Approve its sign-in code or QR in the app, or open the printed link in a browser. The QR prints only on a terminal wide enough to hold it; on a pipe or a narrow console you still get the code and the link. |
tenax hosts | List your hosts and whether they are online. |
tenax logout | Take this computer off your account — its host row goes too if it is one — then clear the saved sign-in and client key. The running host exits on its next check. If the directory is unreachable the local files still go — remove the computer's row later from the app on a signed-in device. |
tenax uninstall | Sign out, then remove the host service, tray, binaries and all keys/data. Running sessions are named first and confirmed. |
Sessions
Run these from a signed-in terminal client. With several hosts, add --host "Home computer". Quote names with spaces.
| Command | What it does |
|---|---|
tenax sessions --host "Home computer" | List sessions on the selected host. |
tenax new work --host "Home computer" | Create a shell named work. It prints the session name; it is not always a number. |
tenax attach --session work --host "Home computer" | Attach to that session and type in it. Use the name printed by new or sessions. |
tenax new quiet --muted | Create a session with its notifications muted. |
tenax attach quiet --muted | Attach to quiet; if it does not exist, create it with notifications muted. An existing session keeps its mute state. |
tenax rename work review | Rename a session. Two names mean session rename; one name means local host rename. |
tenax kill work | End the session and its running shell. This stops work in that session. |
Files on the host
Paths are relative to a shared root. Home is the default. A logical /notes.txt stays inside Home; it is not the computer’s filesystem root. files roots lists available roots and host paths. Use those paths for an additional root. Paths cannot escape the shared roots.
| Command | What it does |
|---|---|
tenax files roots | List shared roots and their host paths. |
tenax files ls / | List the shared Home root. |
tenax files ls "project notes" --host "Home computer" | List a folder on a selected host. Quote paths with spaces. |
tenax files mkdir notes | Create a directory in the shared root. |
tenax files mv notes old-notes | Move or rename a path. An existing destination is not overwritten. |
tenax files count notes | Count files and directories under this path. |
tenax files rm notes/draft.txt | Delete a file or empty directory. |
tenax files rm -r old-notes | Delete a directory and all its contents. |
Upload and download from a Unix shell
In sh, bash, or zsh on Linux or macOS:
tenax files get notes.txt > local-notes.txttenax files put notes.txt < local-notes.txttenax files put local-notes.txt notes.txtThe first command downloads to a local file. The second uploads from one. The third is the same upload in the cp spelling — put LOCAL REMOTE — which needs no redirection and works in PowerShell too. These can replace existing file contents.
The redirection examples are for Unix shells; PowerShell redirection differs by version.
Device approval
Use an already approved device to approve another. Check the device is yours before approval.
| Command | What it does |
|---|---|
tenax devices | List approved and pending devices. A pending device cannot attach yet; its row shows a QR an already-approved phone can scan to approve it. |
tenax approve HEX | Approve the pending device key shown by devices. Replace HEX with its key. |
tenax devices remove HEX | Remove a device. Hosts stop admitting it after their next approval check, usually within about 30 seconds. |
Manage this host
Run these on the computer that holds your sessions, as your own user. Interactive installers start service setup automatically. Run service install yourself only when setup did not finish.
| Command | What it does |
|---|---|
tenax service install | Approve this host if needed, then install and start its user service. |
tenax service status | Check whether this host’s service is running. |
tenax service install --dry-run | Preview service setup without installing it. |
tenax rename "Home computer" | Rename this local host. This is not a remote host selector. |
tenax update [TAG] | Update this computer’s Tenax to the latest release, or to the given release tag. |
tenax --version | Print this binary’s version. |
tenax remote-update | Print whether app-triggered host updates are allowed. Default: on. |
tenax remote-update off | Block app-triggered updates on this host. Use on to allow them again. |
tenax auto-update | Print whether unattended host updates are enabled. Default: off. |
tenax auto-update on | Enable the six-hour update check. A newer verified build installs when no client is attached. remote-update off blocks this too. |
How the service runs on each OS
Linux uses a user service that survives logout. macOS uses a launchd user agent that starts at login. Windows uses a per-user Scheduled Task that runs inside your logon session. Headless Macs and Windows computers need a logged-in user. The Unix installer tries to provide bundled tmux. If it reports missing tmux, follow its package-manager instructions. Windows installs bundled psmux and tenaxw.exe. Sessions live in the host’s multiplexer and can outlive the host service.
Unix binaries: ~/.local/bin. Windows binaries: %LOCALAPPDATA%\Programs\tenax.
Config and keys: ~/.config/tenax/ on every OS (%USERPROFILE%\.config\tenax on Windows). State and logs: ~/.local/state/tenax/ on Linux, ~/Library/Application Support/tenax/ on macOS (logs in ~/Library/Logs/tenax/), %LOCALAPPDATA%\tenax on Windows.
Advanced host setup
Choose a shell, shared root, or connection mode
Run the host by hand only for troubleshooting. The service normally manages it.
tenax host --root /home/me/projects -- /bin/zshThis example shares the projects folder and uses zsh for new sessions. Replace both paths with paths on your host.
--root DIR sets the Home shared root. The default is the host user’s home directory.
--name "Home computer" overrides the display name. --no-direct uses outbound connections only.
By default, Tenax accepts direct connections when possible and uses encrypted forwarding otherwise. You do not need port forwarding.
To configure the session program through the service:
tenax service install -- host -- /bin/zshagent is a compatibility alias for host. Use host in new commands.
Shell suggestions in the app
The shell on your host draws its own suggestions. Fish has them built in.
For zsh, see zsh-autosuggestions. For bash, see ble.sh.
Tenax does not install these or edit your dotfiles. Use the app’s right arrow to accept the shell’s suggestion.
The CLI currently prints short usage text for an invalid command. A full help reference is not shipped yet.