CLI reference
Every cu subcommand.
cu setup#
bash
cu setup --user <email> --server <url>
cu setup --token <mt_xxx> --server <url> # legacy enrollment-token flowWrites ~/.controlum/credentials (mode 600) and registers the machine with the backend. --user requires the email to be on the server allowlist.
cu daemon#
bash
cu daemon start # spawn the daemon (detached, survives shell close)
cu daemon stop # SIGTERM, then SIGKILL on timeout
cu daemon status # JSON: pid, machine_id, version, sessions
cu daemon restart # stop + start
cu daemon logs -f # tail the daemon log fileStop also kills any orphan cu-daemon processes owned by the current user — a safety net for situations where multiple installers or service registrations left zombies on the WS connection.
cu claude / cu codex#
bash
cu claude --cu-mode dangerous # opens claude with --dangerously-skip-permissions
cu claude --cu-mode auto_safe ./repo # --permission-mode acceptEdits + positional cwd
cu codex --cu-mode dangerous # codex --dangerously-bypass-approvals-and-sandboxThe wrapper registers the session with backend (so it shows up in the dashboard) and translates --cu-mode to the right harness flag. Everything else is passed through verbatim.
cu attach#
bash
cu attach <session-id> # observe + type (first attacher is controller)
cu attach <session-id> --take-control # forcibly become the controller on joinConnects to the daemon's IPC, attaches to the session's pty.Broker as a subscriber, puts stdin in raw mode and forwards keystrokes. Resize is forwarded on SIGWINCH. Ctrl-\\ detaches cleanly without killing the session.
cu login / cu logout / cu open#
bash
cu login --email you@example.com # magic-link flow from terminal
cu logout # drop the local session token
cu open # open the dashboard in browser