The CLI

Every verb, captured from the installed `daktyl --help`.

Captured verbatim from daktyl --help on the installed CLI when this page was generated — it is the CLI itself talking, not a transcription. Version captured: daktyl 0.6.12 (c142df5.2026-09-21).

The blocks below reproduce terminal output at its native width; on a narrow screen they scroll sideways.

daktyl --help

usage: daktyl <command> [args]

daktyl — the Daktyl Connect CLI.

things you can manage:
  daktyl account                         who this machine is signed in as
    daktyl account status                hub health, identity and who you are signed in as
    daktyl account login                 Google sign-in in a browser -> app token in ~/.daktyl/
    daktyl account logout                forget the saved token
  daktyl agent                           the agents on this machine
    daktyl agent ls                      list the agents on this machine (panes and harness seats)
    daktyl agent create                  create an agent, guided — name, harness, model, permissions, project (flags answer any question up front)
    daktyl agent attach                  attach to an agent's terminal (harnesses that have one)
    daktyl agent kill                    stop one agent (local first, hub fallback)
    daktyl agent role                    read or set an agent's role (leader, owner:app, worker) — what `role:<r>` targets resolve to; `none` clears
  daktyl project                         the projects this machine hosts
    daktyl project ls                    the projects this machine hosts, and who is running in each
    daktyl project add                   register a project: `add [path] [id]` — no path registers $PWD
    daktyl project rm                    unregister by id (prompts if agents are running there)
  daktyl sessions                        the hub's session rows
    daktyl sessions prune                delete named dormant rows: `prune <name…>` (explicit names; the hub re-checks each)
  daktyl keys                            pinned owner signing keys
    daktyl keys list                     the owner signing keys pinned on this machine
    daktyl keys add                      pin an owner pubkey: `add <pubkey> [label]`
    daktyl keys remove                   unpin by kid or pubkey
    daktyl keys pair                     QR-scan trust bootstrap with the phone
    daktyl keys fingerprint              show the kid/fingerprint for a pubkey
  daktyl machine                         this computer and the fleet it belongs to
    daktyl machine ls                    list registered computers (and the build each reports)
    daktyl machine update                roll the published CLI onto hosts through the hub: `update --all | <host>…` (`--wait <s>` reads back what each reports)
    daktyl machine doctor                read-only health check of this machine
    daktyl machine retention             what auto-deletion WOULD do: `retention [status|keep|unkeep <sid>]`
    daktyl machine uninstall             remove the CLI (see `uninstall` below)

things you can do:
  daktyl attach <name>                   attach to an agent — its tmux session if it's local (Ctrl-b d to detach), else the chat REPL (harness seats, other hosts)
  daktyl chat <name>                     open a live terminal chat with a running agent (like the app's Live tab)
  daktyl create                          create an agent, guided — name, harness, model, permissions, project; any question answered by a flag is not asked, so a fully-flagged invocation is scriptable and needs no terminal
  daktyl kill <name>                     stop one agent — local tmux first, hub fallback
  daktyl connect [name]                  sign in + register this computer + start its daemon (skips what's done)
  daktyl init [name]                     register this computer and set it up: channel plugin, login supervisor, default project, daemon — not signed in? shows a QR to scan with the app
  daktyl status                          hub health, identity, registered machines
  daktyl fleet                           every agent and seat across the fleet — state, model, context, freshness
  daktyl usage <agent>                   an agent's token/context history (what the app's chart draws)
  daktyl probe <agent> [message]         send one message AS YOU and wait for the reply (+ the turn's telemetry)
  daktyl daemon [start|stop|status]      this host's daemon — heartbeats to the hub + executes fleet actions
    daktyl daemon start                  start it in the background (bare `daktyl daemon` does the same)
    daktyl daemon stop                   stop the background daemon
    daktyl daemon status                 running? where's the log? does it survive logout?
  daktyl runner [install|status|remove]  the release runner this machine keeps in its login session — a tag on a repo becomes a build here
    daktyl runner install                download GitHub's runner (checksum-verified), register it for one repository, write + start the login service
    daktyl runner status                 each runner: registered? listening? which repository, which labels
    daktyl runner remove                 stop, deregister (with a removal token) or drop locally, delete the directory
  daktyl update                          self-update the CLI + channel plugin from the hub (sha256-verified)
  daktyl uninstall                       remove the CLI
  daktyl doctor                          read-only health check of this machine
  daktyl logs                            the daemon's log: `logs [-n 200] [--since 15m] [--level warn] [-f] [--json]` (reads across rotation; pipe it anywhere)
  daktyl completion bash|zsh             print a shell-completion script: eval "$(daktyl completion bash)"

options:
  --manual                               headless login: open the printed URL anywhere, paste the token back  (account)
  --host H                               create on another registered machine (skips attach)  (agent)
  --harness H                            which harness to run (default claude-code)  (agent)
  --model M                              pin the model at launch  (agent)
  --effort L                             pin the effort level at launch  (agent)
  --project P                            launch inside a registered project  (agent)
  --role R                               pin its role at creation (leader, owner:app, worker)  (agent)
  --bypass / --no-bypass                 launch with or without --dangerously-skip-permissions  (agent)
  --ephemeral                            keep no history after it stops: identity, artifacts and hub rows dropped on kill  (agent)
  --yes                                  rm: skip the confirmation  (project)
  --keep-agents                          rm: unregister but leave running agents alone  (project)
  --host H                               create it on another registered machine  (create)
  --harness H                            which harness to run (default claude-code)  (create)
  --model M                              pin the model at launch  (create)
  --project P                            run it inside a registered project  (create)
  --bypass / --no-bypass                 run tools without asking / ask first  (create)
  --all                                  stop every agent on this host (confirms; --yes skips)  (kill)
  --yes                                  skip the confirmation  (kill)
  --dev <umbrella>                       developer machine: the plugin from that checkout's mcp/claude-channels, and it becomes the default project  (init)
  --project <path>                       the default project agents start in  (init)
  --no-setup                             register only (plus the daemon phase); skip plugin, supervisor and project  (init)
  --rekey                                re-register even though this computer already is (rotates the host key; the daemon reconnects)  (init)
  --foreground                           run in this terminal (what systemd and tmux use)  (daemon)
  --allow-sibling                        start beside a live daemon anyway (they BOTH execute every command)  (daemon)
  --url U                                the repository (https://github.com/<owner>/<repo>) — one runner per repository, by design  (runner)
  --token-stdin / --token-file P         the registration or removal token (never on the command line)  (runner)
  --labels a,b                           runner labels (default mac-build — what every lane's runs-on asks for)  (runner)
  --no-start                             write the service, do not bootstrap it  (runner)
  --check                                report what's available, change nothing  (update)
  --force                                reinstall even when the commit matches  (update)
  --all                                  also stop the daemon + agents, deregister, remove plugin + config  (uninstall)
  --yes                                  skip the confirmation  (uninstall)

  -h, --help                             show this help; add --markdown for the full reference
  -V, --version                          print the CLI version and exit
  --server SERVER                        hub base URL

every command prints what it can do when you leave the rest out.

config: ~/.daktyl/config.json

Per-verb help

daktyl account

usage: daktyl account

  who this machine is signed in as

  daktyl account status    hub health, identity and who you are signed in as
  daktyl account login     Google sign-in in a browser -> app token in ~/.daktyl/
  daktyl account logout    forget the saved token

options:
  --manual                 headless login: open the printed URL anywhere, paste the token back

everything: daktyl --help

daktyl agent

usage: daktyl agent

  the agents on this machine

  daktyl agent ls          list the agents on this machine (panes and harness seats)
  daktyl agent create      create an agent, guided — name, harness, model, permissions, project (flags answer any question up front)
  daktyl agent attach      attach to an agent's terminal (harnesses that have one)
  daktyl agent kill        stop one agent (local first, hub fallback)
  daktyl agent role        read or set an agent's role (leader, owner:app, worker) — what `role:<r>` targets resolve to; `none` clears

options:
  --host H                 create on another registered machine (skips attach)
  --harness H              which harness to run (default claude-code)
  --model M                pin the model at launch
  --effort L               pin the effort level at launch
  --project P              launch inside a registered project
  --role R                 pin its role at creation (leader, owner:app, worker)
  --bypass / --no-bypass   launch with or without --dangerously-skip-permissions
  --ephemeral              keep no history after it stops: identity, artifacts and hub rows dropped on kill

everything: daktyl --help

daktyl project

usage: daktyl project

  the projects this machine hosts

  daktyl project ls        the projects this machine hosts, and who is running in each
  daktyl project add       register a project: `add [path] [id]` — no path registers $PWD
  daktyl project rm        unregister by id (prompts if agents are running there)

options:
  --yes                    rm: skip the confirmation
  --keep-agents            rm: unregister but leave running agents alone

everything: daktyl --help

daktyl keys

usage: daktyl keys

  pinned owner signing keys

  daktyl keys list         the owner signing keys pinned on this machine
  daktyl keys add          pin an owner pubkey: `add <pubkey> [label]`
  daktyl keys remove       unpin by kid or pubkey
  daktyl keys pair         QR-scan trust bootstrap with the phone
  daktyl keys fingerprint  show the kid/fingerprint for a pubkey

everything: daktyl --help

daktyl machine

usage: daktyl machine

  this computer and the fleet it belongs to

  daktyl machine ls        list registered computers (and the build each reports)
  daktyl machine update    roll the published CLI onto hosts through the hub: `update --all | <host>…` (`--wait <s>` reads back what each reports)
  daktyl machine doctor    read-only health check of this machine
  daktyl machine retention what auto-deletion WOULD do: `retention [status|keep|unkeep <sid>]`
  daktyl machine uninstall remove the CLI (see `uninstall` below)

everything: daktyl --help

daktyl attach

usage: daktyl attach <name>

  attach to an agent — its tmux session if it's local (Ctrl-b d to detach), else the chat REPL (harness seats, other hosts)

everything: daktyl --help

daktyl chat

usage: daktyl chat <name>

  open a live terminal chat with a running agent (like the app's Live tab)

everything: daktyl --help

daktyl create

usage: daktyl create

  create an agent, guided — name, harness, model, permissions, project; any question answered by a flag is not asked, so a fully-flagged invocation is scriptable and needs no terminal

options:
  --host H                 create it on another registered machine
  --harness H              which harness to run (default claude-code)
  --model M                pin the model at launch
  --project P              run it inside a registered project
  --bypass / --no-bypass   run tools without asking / ask first

everything: daktyl --help

daktyl kill

usage: daktyl kill <name>

  stop one agent — local tmux first, hub fallback

options:
  --all                    stop every agent on this host (confirms; --yes skips)
  --yes                    skip the confirmation

everything: daktyl --help

daktyl connect

usage: daktyl connect [name]

  sign in + register this computer + start its daemon (skips what's done)

everything: daktyl --help

daktyl init

usage: daktyl init [name]

  register this computer and set it up: channel plugin, login supervisor, default project, daemon — not signed in? shows a QR to scan with the app

options:
  --dev <umbrella>         developer machine: the plugin from that checkout's mcp/claude-channels, and it becomes the default project
  --project <path>         the default project agents start in
  --no-setup               register only (plus the daemon phase); skip plugin, supervisor and project
  --rekey                  re-register even though this computer already is (rotates the host key; the daemon reconnects)

everything: daktyl --help

daktyl status

usage: daktyl status

  hub health, identity, registered machines

everything: daktyl --help

daktyl fleet

usage: daktyl fleet

  every agent and seat across the fleet — state, model, context, freshness

everything: daktyl --help

daktyl usage

usage: daktyl usage <agent>

  an agent's token/context history (what the app's chart draws)

everything: daktyl --help

daktyl probe

usage: daktyl probe <agent> [message]

  send one message AS YOU and wait for the reply (+ the turn's telemetry)

everything: daktyl --help

daktyl daemon

usage: daktyl daemon [start|stop|status]

  this host's daemon — heartbeats to the hub + executes fleet actions

  daktyl daemon start      start it in the background (bare `daktyl daemon` does the same)
  daktyl daemon stop       stop the background daemon
  daktyl daemon status     running? where's the log? does it survive logout?

options:
  --foreground             run in this terminal (what systemd and tmux use)
  --allow-sibling          start beside a live daemon anyway (they BOTH execute every command)

everything: daktyl --help

daktyl update

usage: daktyl update

  self-update the CLI + channel plugin from the hub (sha256-verified)

options:
  --check                  report what's available, change nothing
  --force                  reinstall even when the commit matches

everything: daktyl --help

daktyl uninstall

usage: daktyl uninstall

  remove the CLI

options:
  --all                    also stop the daemon + agents, deregister, remove plugin + config
  --yes                    skip the confirmation

everything: daktyl --help

daktyl doctor

usage: daktyl doctor

  read-only health check of this machine

everything: daktyl --help

daktyl logs

usage: daktyl logs

  the daemon's log: `logs [-n 200] [--since 15m] [--level warn] [-f] [--json]` (reads across rotation; pipe it anywhere)

everything: daktyl --help

daktyl completion

usage: daktyl completion bash|zsh

  print a shell-completion script: eval "$(daktyl completion bash)"

everything: daktyl --help