Appearance
Command line
flightdeck is one program: the terminal dashboard, the daemon that keeps its state current, the link to Jira, Slack, Trello, GitHub and Dropbox, and the job runner. flightdeck help <command> prints a command's own options.
Commands
| Command | What it does |
|---|---|
tui | The live dashboard (the default when no command is given) |
attach | The live dashboard; the same as tui |
status | Collect once, write state.json and print the board (or --json) |
events | Print the newest events (-n), or follow them (-f) |
demo | Render the bundled demo state |
config | Print the resolved configuration, or --get single keys |
slots | Reclaim the slots of holders whose sessions are gone |
builds | Reclaim the build folders of idle agent worktrees |
daemon | Run the daemon that writes state.json (flightdeckd is this command) |
jira | Jira (flightdeck link help lists every Jira, Slack and Trello command) |
work | Work items on a project's own tracker (Jira, Trello or GitHub): --project <p> list|get|columns|move|comment|create|edit|archive |
github | GitHub Issues and Projects through gh: the work verbs, plus projects and statuses |
slack | Slack |
trello | Trello |
dropbox | Files in the Dropbox folders you allow: auth, list, get, move, put |
terraform | The public Terraform registry, read-only: providers, provider docs index, modules |
sync | Refresh the Jira, Slack, Trello and GitHub caches |
secrets | Keychain items set by hand: set <service> (the value on stdin), status, migrate-account |
link | The link client's other commands: status, templates, config, skills, help |
job | Scheduled jobs: run, plist, list, fingerprint, answer, bucket, badge |
notify | A job's notification, on the Mac and the phone: the text on stdin, [ok|failed|needs-you] |
draft | One tool-less model reply on a job token: --model <model>, the prompt on stdin |
plan | The Planner: start --project <p> --brief-file <f> [--model opus|fable|sonnet] |
skills | Skill picks for a launched session: pick --repo <path> --project <p> --ticket <id> |
standup | Standup: start <project> [--count N] reads the newest items no bucket lists |
monitor | Monitors: list, show <id>, create <id> …, edit <id> …, delete <id>, as monitors/<id>.md notes, plus board <id>, boards record, walks <id>, walk … and chat <id> … |
trends | The daily history behind the app's trend lines: record |
brief | The evening brief for Overview: evening |
crew | Crew: agents, levers, triggers, and list, show <id>, create <id> …, edit <id> …, delete <id>, as crew/<id>.md notes |
chat | Chats with a crewmate or an agent, on this Mac: list, show <id>, create <id> …, edit <id> …, delete <id>, send <id> --message-file <f>, transcript <id> --json |
accounts | The accounts registry: list [--tsv|--json], import [--dry-run] (from accounts.json) |
usage | The usage ledger, summed: [--since <date>] [--by account|job|project|machine|model|day…] [--json] |
machine | This Mac's housekeeping: reclaim [--apply] [--json] |
inbox | The Inbox's message states: read [--channel <a>] [--json], mark <a> <ts> <state> --by <name> |
prs | Outstanding PRs: scan [--json] [--fixture <file>], what each open PR needs (read-only) |
workspace | The workspace: init [--dry-run] creates the layout and a git repository; pull fast-forwards a clean checkout to origin/main |
adapters | The tool adapters: status, uninstall [<adapter>] [--dry-run] |
import | The provider context already on the machine, used in place: [list] [--json], and adopt <tool> <skill> [--dry-run] copies an external skill into the workspace, and source install|adopt <owner>/<repo> <skill> installs a skill source's skill or prints the brief to adopt it |
host | The other Macs this one reaches over ssh, from config.toml's [[hosts]]: list [--json], rename <old> <new>, check, install, attach <name>, pull, run <name> job start|stop|power …, and the machine's own install-daemon, install-skill and self-init <name> |
help | Print this message or the help of the given subcommand(s) |
Trackers, Slack, Dropbox, the Terraform registry and the Keychain
These commands are how agents and scripts reach your trackers and chat. Every write takes --dry-run, which still reads but writes nothing.
Text for a comment, post or description can come from a file (--body-file, --text-file, --description-file, --desc-file): a regular UTF-8 file of at most 64 KiB. --markdown renders bold, emphasis, code, lists, headings and https links. A secret goes in on stdin, never as an argument: pbpaste | flightdeck secrets set slack.
Exit codes: 0 ok, 1 failed, 2 usage, 3 refused by a rule or an allowlist, 4 a write did not read back.
Link and sync
text
flightdeck link status
flightdeck sync [--force] [--only slack|jira|trello|github|buckets]
flightdeck link templates
flightdeck link config show
flightdeck link config check-trackers
flightdeck link config set (jira.oauth.clientId|slack.channels.<alias>|slack.channels.<alias>.type|identity.name|identity.githubLogin) <value> [--dry-run]
flightdeck link config set slack.channels.<alias>.prs <JSON {reviewers, mention?, repos: [{repo, base, paths?}]}> [--dry-run]
flightdeck link config set (jira.productionKeepers|slack.allowedGroupMentions) <a>[,<b>…] [--dry-run]
flightdeck link config unset (slack.channels.<alias>|slack.channels.<alias>.type|slack.channels.<alias>.prs|identity.name|identity.githubLogin|jira.productionKeepers|slack.allowedGroupMentions) [--dry-run]
flightdeck link skills fetch
flightdeck link skills source fetch <owner>/<repo> [--ref <ref>]Jira
text
flightdeck jira auth
flightdeck jira --project <p> search --jql <jql> [--fields a,b] [--max N] [--page T]
flightdeck jira --project <p> get <KEY> [--comments N]
flightdeck jira --project <p> transition <KEY> --to <status> [--dry-run]
flightdeck jira --project <p> comment <KEY> (--template <id> [--var k=v]... | --text <t> | --text-file <f>) [--markdown] [--dry-run]
flightdeck jira --project <p> create --type <T> --summary <S> [--description <D> | --description-file <f>] [--markdown] [--priority <P>] [--label <L>]... [--assignee <id>] [--reporter <id>] [--dedupe-text <X>] [--parent <KEY>] [--dry-run]
flightdeck jira --project <p> edit <KEY> [--priority <P>] [--assignee <id>] [--add-label <L>]... [--remove-label <L>]... [--parent <KEY>] [--description <D> | --description-file <f>] [--markdown] [--dry-run]
flightdeck jira --project <p> link --inward <KEY> --outward <KEY> --type <name> [--dry-run]
flightdeck jira --project <p> projects
flightdeck jira --project <p> statuses [--key <KEY>]
flightdeck jira --project <p> boards [--key <KEY>]
flightdeck jira --project <p> board-permissions [--key <KEY>]Work items on any tracker
text
flightdeck work --project <p> list [--column <C>]... [--in-flight] [--scope all|mine|mine+unassigned] [--max N] [--page T] [--bodies]
flightdeck work --project <p> list --bucket <id> [--max N]
flightdeck work --project <p> list --standup [--max N]
flightdeck work --project <p> get <id> [--comments N]
flightdeck work --project <p> columns
flightdeck work --project <p> move <id> --to <status or column> [--dry-run]
flightdeck work --project <p> comment <id> (--text <t> | --text-file <f> | --template <id> [--var k=v]...) [--dry-run]
flightdeck work --project <p> create --title <T> [--body <B> | --body-file <f>] [--to <column>] [--label <L>]... [--parent <id>] [--kind <K>] [--priority <P>] [--assignee <id>] [--reporter <id>] [--top] [--dedupe-text <X>] [--dry-run]
flightdeck work --project <p> edit <id> [--title <T>] [--body <B> | --body-file <f>] [--add-label <L>]... [--remove-label <L>]... [--parent <id>] [--priority <P>] [--assignee <id>] [--dry-run]
flightdeck work --project <p> archive <id> [--dry-run]GitHub
text
flightdeck github --project <p> list|get|columns|move|comment|create|edit|archive …
flightdeck github --project <p> projects
flightdeck github --project <p> statuses <owner>/<number>Slack
text
flightdeck slack read <channel> [--since <ts>] [--limit N | --pages N] [--include-own]
flightdeck slack export --since <YYYY-MM-DD> --out <dir> [--only <conversation-id>]...
flightdeck slack thread <channel> <ts> [--limit N]
flightdeck slack post <channel> (--text <t> | --text-file <f> | --template <id> [--var k=v]...) [--markdown] [--thread <ts>] [--unfurl] [--dry-run]
flightdeck slack upload <channel> --file <f> [--comment-file <f>] [--thread <ts>] [--dry-run]
flightdeck slack react <channel> <ts> --emoji <name> [--dry-run]
flightdeck slack channels
flightdeck slack users
flightdeck slack dm <user-id> [--dry-run]
flightdeck slack file <file-id>Trello
text
flightdeck trello --project <p> lists [--tsv]
flightdeck trello --project <p> cards [--tsv]
flightdeck trello --project <p> card <card>
flightdeck trello --project <p> comment <card> (--text <t> | --text-file <f>) [--dry-run]
flightdeck trello --project <p> move <card> --to <list> [--dry-run]
flightdeck trello --project <p> create --list <list> --name <name> [--desc <d> | --desc-file <f>] [--top] [--label <L>] [--dedupe-text <X>] [--dry-run]
flightdeck trello --project <p> boards
flightdeck trello --project <p> create-board (--name <n> | --name-file <f>) [--list <extra>... | --lists-file <f>] [--dry-run]
flightdeck trello --project <p> close-board <board> [--dry-run]Terraform registry
text
flightdeck terraform providers search <name> [--limit N] [--tsv]
flightdeck terraform provider <namespace/name> [--version <v>] [--tsv]
flightdeck terraform modules search <query> [--provider <p>] [--limit N] [--tsv]
flightdeck terraform module <namespace/name/provider> [--version <v>]Dropbox
text
flightdeck dropbox auth
flightdeck dropbox list <path>
flightdeck dropbox get <path> [--out <file>]
flightdeck dropbox move <from> <to> [--dry-run]
flightdeck dropbox put <path> --mode overwrite|add [--dry-run]Keychain items
text
flightdeck secrets status
flightdeck secrets set (jira|jira-oauth|slack|trello|trello-key|pushover-token|pushover-user|dropbox-app-key|claude-job-token.<label>)
flightdeck secrets migrate-account --from <account> [--dry-run]