The Thicket CLI

Install the thicket command, sign in through your browser, and work with projects, to-dos, and messages from a terminal or an AI coding agent.

The Thicket CLI is the official command-line tool for Thicket. Use it in a terminal, in scripts, or through an AI coding agent such as Claude Code, which can run commands for you. It works with your projects, to-dos, messages, docs and files, boards, chat, search, reports, notifications, and cheers, all as you. It's open source, at github.com/thicket-hq/thicket-cli.

What you need

  • Node.js 20 or newer
  • A Thicket account, on any plan

Install it

npm install -g thicket-cli

The command it installs is thicket. To try it without installing, run npx thicket-cli instead.

Sign in

thicket auth login

The CLI opens Thicket in your browser, or prints a link if it cannot open one. Sign in if needed, review the requested access, and approve the connection. Your password never passes through the CLI.

Approval creates an OAuth connection listed under My settings > Connected apps. The CLI stores credentials in the macOS Keychain or Linux Secret Service, with a private file fallback. Short-lived access tokens refresh automatically.

  • Read-and-write access is the default, shown before approval. Use thicket auth login --scope read to request read-only access.
  • thicket auth status shows who you are connected as.
  • thicket auth logout disconnects an OAuth connection and removes its stored credentials. You can also disconnect from My settings > Connected apps.
  • No browser available? Create a personal token in My settings > API tokens, then pipe it in: printf '%s' "$THICKET_TOKEN" | thicket auth login --with-token. Signing out removes that token locally; revoke it in API tokens to end its access.
  • Several organizations? Pass --org with the organization slug, or save a default with thicket orgs use <slug>.

Everyday commands

thicket projects                                # list your projects
thicket todos --in "Website Redesign"           # a project's open to-dos
thicket todo "Send the preview" --in "Website Redesign" --due friday --assignee me
thicket done <id>                               # complete a to-do
thicket message "Weekly update" --content "All **green** this week." --in "Website Redesign"
thicket comment <id> "Looks good, @Priya"       # comment on anything
thicket search "launch checklist"               # search every project
thicket assignments                             # your open work
thicket inbox --unread                          # your notifications

A few things make these quicker:

  • Projects, lists, and people can be named instead of looked up by id. If a name matches more than one thing, the CLI lists the choices.
  • Anywhere an id is expected, you can paste the item's link from your browser instead.
  • Dates accept plain words such as "tomorrow", "friday", or "next monday".
  • Message and comment text is Markdown, and @ followed by a name mentions that person.
  • thicket commands lists every command, and adding --help to any command explains it.

Use it with Claude Code and other AI agents

Any AI agent that can run shell commands can use the CLI. For Claude Code, install the Thicket plugin:

thicket setup claude
claude plugin marketplace add thicket-hq/thicket-cli
claude plugin install thicket@thicket-hq

thicket setup claude installs two skills that teach Claude how to use Thicket, and the plugin adds a line at the start of each Claude Code session saying who is signed in. Then ask in plain words, for example "What's overdue in Website Redesign?" or "Turn these meeting notes into to-dos in the Launch list". Claude runs thicket commands to do it. Approve read-and-write access when the agent needs to make changes.

For Cursor, Codex, and other agents, thicket skill prints the same instructions to add to that agent's setup. The repository's install guide covers each one.

Your coding agent uses your CLI connection and works with your permissions. See Connect an AI Agent.

Output for scripts

In a terminal the CLI prints readable, formatted output. When its output is piped to another program, it switches to JSON. You can also choose:

  • --json for the full JSON response
  • --quiet for the data alone
  • --ids-only for one id per line, or --count for a number
  • --jq with a filter, to pick values out of the JSON

Errors come back as JSON too, with a stable exit code for each kind of failure, so a script can tell a missing item from a network problem.

Troubleshooting

  • Run thicket doctor. It checks your Node version, your token, whether Thicket is reachable, and which organization you're using.
  • "The token did not authenticate": the token was revoked or expired. Run thicket auth login again.
  • A change is refused: you signed in read-only. Run thicket auth login --scope full.
  • Rate limited: each token can make 50 requests every 10 seconds. Wait a moment and try again.
Was this article helpful?