Skip to content

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 ​

CommandWhat it does
tuiThe live dashboard (the default when no command is given)
attachThe live dashboard; the same as tui
statusCollect once, write state.json and print the board (or --json)
eventsPrint the newest events (-n), or follow them (-f)
demoRender the bundled demo state
configPrint the resolved configuration, or --get single keys
slotsReclaim the slots of holders whose sessions are gone
buildsReclaim the build folders of idle agent worktrees
daemonRun the daemon that writes state.json (flightdeckd is this command)
jiraJira (flightdeck link help lists every Jira, Slack and Trello command)
workWork items on a project's own tracker (Jira, Trello or GitHub): --project <p> list|get|columns|move|comment|create|edit|archive
githubGitHub Issues and Projects through gh: the work verbs, plus projects and statuses
slackSlack
trelloTrello
dropboxFiles in the Dropbox folders you allow: auth, list, get, move, put
terraformThe public Terraform registry, read-only: providers, provider docs index, modules
syncRefresh the Jira, Slack, Trello and GitHub caches
secretsKeychain items set by hand: set <service> (the value on stdin), status, migrate-account
linkThe link client's other commands: status, templates, config, skills, help
jobScheduled jobs: run, plist, list, fingerprint, answer, bucket, badge
notifyA job's notification, on the Mac and the phone: the text on stdin, [ok|failed|needs-you]
draftOne tool-less model reply on a job token: --model <model>, the prompt on stdin
planThe Planner: start --project <p> --brief-file <f> [--model opus|fable|sonnet]
skillsSkill picks for a launched session: pick --repo <path> --project <p> --ticket <id>
standupStandup: start <project> [--count N] reads the newest items no bucket lists
monitorMonitors: 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> …
trendsThe daily history behind the app's trend lines: record
briefThe evening brief for Overview: evening
crewCrew: agents, levers, triggers, and list, show <id>, create <id> …, edit <id> …, delete <id>, as crew/<id>.md notes
chatChats 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
accountsThe accounts registry: list [--tsv|--json], import [--dry-run] (from accounts.json)
usageThe usage ledger, summed: [--since <date>] [--by account|job|project|machine|model|day…] [--json]
machineThis Mac's housekeeping: reclaim [--apply] [--json]
inboxThe Inbox's message states: read [--channel <a>] [--json], mark <a> <ts> <state> --by <name>
prsOutstanding PRs: scan [--json] [--fixture <file>], what each open PR needs (read-only)
workspaceThe workspace: init [--dry-run] creates the layout and a git repository; pull fast-forwards a clean checkout to origin/main
adaptersThe tool adapters: status, uninstall [<adapter>] [--dry-run]
importThe 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
hostThe 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>
helpPrint 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.

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]

Last updated: