| name | devices |
| description | Register and connect to your machines over Tailscale SSH with agents-cli. Use this skill to sync devices from the tailnet, list them, open a shell on another machine, or see agent sessions running across your whole fleet. |
| argument-hint | [sync|list|show|add|set|ssh|update|run|fleet] |
| allowed-tools | Bash(agents devices*), Bash(agents fleet*), Bash(agents ssh*), Bash(agents sessions*), Bash(agents run*), Bash(agents hosts*), Bash(agents logs*) |
| user-invocable | true |
Devices Skill
Manage a registry of SSH device profiles and reach your other machines. The
registry self-populates from tailscale status --json, so on a tailnet you
rarely hand-enter a host. This skill teaches the agents devices /
agents fleet (alias) and agents ssh CLIs, plus the fleet-wide
agents sessions --active view.
agents fleet is a synonym for agents devices — every subcommand works under
either name (agents fleet list == agents devices list).
Register devices
agents devices sync
agents devices sync --yes
agents devices register <name>
agents devices ignore <name>
agents devices unignore <name>
Inspect
agents devices list
agents devices list --json
agents devices show <name>
list marks the machine you are on with ▸ <name> ← this machine.
Add / edit manually
agents devices add <name> <target> --platform linux
agents devices set <name> --user muqsit --platform macos
agents devices set <name> --auth password --bundle <secrets-bundle>
agents devices rm <name>
Auth is either key (system ssh agent / on-disk keys) or password (pulled
from a Keychain-backed secrets bundle — never stored on disk).
Connect
agents ssh <name>
agents ssh <name> uname -a
Fleet-wide rollout
agents fleet update
agents fleet update 1.20.62
agents fleet run uname -a
agents fleet run 'agents --version'
Both print a per-device result table (ok / failed / skipped).
To use plain ssh <name>, render the registry into your ssh config:
agents devices render
agents devices render --write
Fleet-wide active sessions
agents sessions --active groups running agent sessions by machine, pins the
local box first (▸ <name> ← this machine), and folds in sessions from your
registered, online devices over SSH:
agents sessions --active
agents sessions --active --local
agents sessions --active --host zion --host mac-mini
agents sessions --active --json
Unreachable or CLI-less hosts are skipped with a note, never fatal. If no
devices are registered, it prints a tip pointing you at agents devices sync.
Dispatch a run to a machine
Offload agents run itself to a registered host over SSH — it follows live by
default; --no-follow detaches and returns immediately.
agents run claude "profile this build" --host gpu-box
agents run claude "..." --host gpu-box --no-follow
agents hosts ps
agents hosts stop <id>
agents logs --host gpu-box
agents logs <id> -f
agents logs [id] is the unified viewer — it resolves a host-dispatch run OR a
local session by id, filters with --host/--agent/--version, and -f
follows a live one. agents hosts logs <id> is the host-only equivalent.
agents hosts stop <id> SIGTERMs the remote process group from this machine and
keeps the log for later inspection.
Registered devices are part of the host pool automatically: they appear in
agents hosts list (SOURCE devices), resolve as --host targets by name,
and join capability routing once tagged (agents hosts add <device> --cap gpu
enrolls straight from the device profile — no target needed). Password-auth
devices are listed but can't carry a dispatch (BatchMode ssh); switch them with
agents devices set <name> --auth key. Devices also work as cloud task targets
(agents cloud run "…" --host <device>) and routines placement
(agents routines add … --run-on <device>).
Tips
- Reachability in
list is a snapshot from the last sync; rerun sync to
refresh it.
- iOS/tablet nodes can't run the CLI and are skipped by the
--active fan-out.
- A device with password auth needs a bundle:
agents devices set <name> --auth password --bundle <name>.