Command guide

Every command, and where it works.

/cade … commands work at the top of a channel. @Cade … commands are messages, so they also work in threads, where most of the work happens. Commands always work. Cade can also read along in its threads and offer what you're about to do: that is the proactive agent.

No commands match that. Try a shorter word.

Start

Tasks and incidents

/cade task

Dev channelTop level

A form for the title, priority and an optional due date. The task is posted in the dev channel. With activeTasksPinning on in cade.config.json, it also stays pinned until it's done.

Example: “Upgrade Node to 22 on staging”, Medium.

/cade incident

Dev channelTop level

Asks only what the incident is. Incidents are always Urgent and due Immediate, and their cards say Incident, so they stand out among the channel's tasks. They're listed first in the Home tab's lists, summaries and briefs.

Example: “Card payments failing at checkout for EU customers”.

@Cade task @Cade incident

Dev channelIn a message's thread

Starts a task or an incident from a message already in the channel. Cade privately offers a button that opens the form, named from the message's first line; once it's posted, the message moves into its thread.

Example: reply @Cade incident under “Checkout is failing for EU customers”.

Message shortcuts

AnywhereAny message

On any message, in any channel or DM: ⋯ → More actions.

  • New task and New incident open their form, named from the message's first line.
  • Move to existing opens a form to pick an open task or incident.
  • In a dev channel, or when there's only one group, the forms are for that project. Otherwise they ask for the Project first, and Move to existing then lists that project's open tasks.
  • The message is copied into the task's thread, credited to whoever wrote it, so everyone on the task can read it, even if they can't see where it was written. The link back to it, and Cade's note and 📤 under it, work only where they can.
In a task thread

People, status, PRs and releases

These work in a task's thread in the dev channel. Each command takes everything it needs in one go; without it, Cade says what to send. The ⋯ menu on a task's card has Edit, one form with everything: owners, reviewers, testers, status, priority, due date and pull requests (an incident's priority and due date never change, so its form leaves them out); Release, while it has PRs not sent yet, the same form as @Cade release; and Archive, as @Cade archive. Save the form, and Cade notes who changed what in the thread, as one message, then asks the people it names to do their part: see who hears what. Sending PRs for approval is @Cade release.

@Cade assign owner @person

Dev channel

Adds people to a role: owner, whoever does the work, whatever it is (dev and developer work too), reviewer (or review) or tester (or test, qa), several at once if you like. Cade notes who assigned whom, and on the next line asks them to start (see notifications). To change several roles at once, use the card's ⋯ → Edit.

  • Reviewers can be added before there's a PR. They're asked to review once one is linked.
Example: @Cade assign qa @Tom

@Cade unassign owner @person

Dev channel

Removes people from a role. Cade notes who removed whom, and on the next line tells them there's no need to do it anymore (see notifications). @Cade unassign @person removes them from every role. The same short words work.

@Cade status in review

Dev channel

Cade sets the status and reacts ✅. Statuses are to do, in progress, in review, in testing, client review and done, typed however you like (IN_PROGRESS, in-progress).

  • With activeTasksPinning on, Done unpins the task; moving it out of Done pins it again.
  • Client review shows whoever set it a private Ask for approval button (set it again to get it back): pick who approves, the client or whoever handles them. Cade asks them in the task's thread to Approve (the task goes to Done) or Not approve (back to In progress). Only they can click.

@Cade pr add <link> @Cade pr remove <link>

Dev channel

Links or unlinks pull requests, one or several. GitHub, GitLab and Bitbucket links are recognised, and shown on the card as repo#number. Linking asks its reviewers to review it; with no reviewer yet, Cade asks who should review, with a people picker.

Example: @Cade pr add https://github.com/acme/booking-web/pull/131

@Cade release @Cade deliver

Dev channel

Sends some of the task's PRs to the client before the whole task is done. A private Choose PRs button opens a form that lists the ones not sent yet and asks what they complete and who approves them. The approver gets them in the task's thread with Approve and Not approve, which only they can click. PRs that weren't approved can be sent again. The task's status doesn't change.

  • The task thread hears the decision, mentioning the owners.
Example: send PR #128 as “Deposit checkout flow (20% default)”.
Priority & due date

Set in the task's thread

Incidents are always Urgent and due Immediate, so theirs never change.

@Cade priority high

Task thread

One of urgent, high, medium or low. Cade sets it and reacts ✅. The card's colour strip follows the priority.

@Cade due 31/12/2026

Task thread

A date as DD/MM/YYYY (also with . or -, or as YYYY-MM-DD), or none to clear it. Cade sets it and reacts ✅.

Move & archive

Keep every channel tidy

Post a new message

Dev channelTop levelAlways on

A message posted on its own in the dev channel, not in a thread, gets a private question to whoever wrote it, so it lands in the right thread: New task, New incident, Move to existing (when something's open) or Not now, the same as the message shortcuts, with the same forms. Starting something from it names it from the message's first line and moves the message into the new thread. This works even with the proactive agent off.

@Cade move <link>

Dev channelIn a message's thread

Moves a message into the task's thread that the link points to. The link is required: without it Cade says so. To pick from the open tasks instead, use the message's ⋯ → Move to existing.

  • Without typing, from anywhere: on the message itself, ⋯ → More actions → Move to existing opens a form with the channel's open tasks and incidents, and nothing is posted until it moves. Outside a dev channel, with more than one group, it asks for the project first. See message shortcuts.
  • With an emoji, in one click: add 🎫 :ticket: to a message in the dev channel to track it, or 🔀 :twisted_rightwards_arrows: to move it. Cade answers only you: a New task button, or the move picker. Add them to Slack's one-click reactions (Preferences → Messages & media) and they sit in the bar you see when hovering over a message. Choose other emoji with reactions in cade.config.json.
  • With a link: paste the link to a task's or incident's message (Copy link on it, or on any reply in its thread) and Cade moves the message there straight away, with a ✅ on your command. Handy for bringing old threads in from before Cade, one after another: start with the oldest, so they land in order.
  • Slack can't move messages, so Cade copies it into the thread, quoted and credited to its author with a link back, replies under the original asking people to carry on there, and marks it with 📤 so it can be skipped.
  • Only the message is copied, not its replies or attachments, and a message in the dev channel is never moved twice.
  • If the original was pinned, it's unpinned: its new thread is where it's followed now.

@Cade archive

Task thread

Puts away a task that's no longer needed: Cade stops tracking it, so it leaves your standups and briefs, and moves to the summary's Archived section, but nothing is deleted. Its card stays, unpinned, saying who archived it, its thread hears who did. The card's ⋯ → Archive does the same. To delete a task, see /cade remove.

Your work

Standups, only for you

/cade standup /cade standup -unassigned

Dev channelOnly you see it

Walks through the open tasks one owner at a time: you first, then everyone else, then the tasks with no owner. Each task has a status menu, and unassigned ones an owner picker; changes are posted in each task's thread. -unassigned goes through just the tasks with no developer. Built to share your screen in a standup.

Configure, on the Home tab

Cade's app pageOnly you see it

The Configure button on Cade's Home tab holds your own setup. Web pages gives a private link that signs you in to Cade's web pages (a task's thread and notes): it works once, for ten minutes, and keeps you signed in on that browser for thirty days, and signs you out of every browser when you want. AI agent connects your own AI agent (Claude Code, Gemini CLI, Cursor, Codex, …) to Cade, so it can read your tasks and threads, change a task and post in its thread, with the model you already pay for: it shows whether MCP is on, the endpoint and your key status, makes your API key (shown once, in a window that goes when you close it, to send in an x-apikey header) and revokes it. Everything runs as you, so it reads only what you can read, and its messages start with "you sent:" and end with "(via AI agent)". After you make a task from a message, Cade offers a short prompt to paste into your agent; a project can turn that off with aiAgentSummary, and mcp: false in cade.config.json turns all of MCP off. Admins also see Project settings there.

The Home tab

Cade's app pageOnly you see it

Open Cade under Apps in Slack and its Home tab shows your open tasks, redrawn each time you open it or press Refresh. My Tasks groups yours by what you do on each: to work on, to review and to test, with the ones waiting on you first and an overdue count. Unassigned lists tasks with no one on them, each with Assign to me. All Tasks lists every open task, most urgent first. The project picker at the top shows one project at a time (the first one until you pick), and Cade remembers your project and tab. The Home and Configure buttons switch between your tasks and your setup. Needs the app updated with npm run slack:update.

The summary canvas

Dev channelOff by default

With summaryCanvas on in cade.config.json (for every group or one), every dev channel's canvas holds a table of its tasks, made with the first new task (taking over the canvas the channel has, if any) and kept up to date as things change: an Open section by priority, then due date, incidents first, then a Closed section of the last 50 done and an Archived section of the last 50 archived, most recent first, each with its title, status, priority, due date, owner, reviewer and tester. Each title opens its thread. The table replaces what the canvas held, and the canvas is made read-only for the channel, since Cade rewrites it on every change; where Slack doesn't allow that, such as on a free plan, it stays editable, and edits are overwritten.

/cade help

Anywhere

Lists everything Cade can do, only to you. A bare @Cade or an unknown @Cade command just points to it.

Who owns what

Clear ownership, so nothing is overwritten

WhatWho changes itWhere
A task's status, people, PRs, priority and due dateThe teamThe task thread, or its card's ⋯ → Edit
An incident's priority and due dateNobodyAlways Urgent, due Immediate
Accepting work in Client review, and partial releasesWhoever is picked to approve: the client, or whoever handles themApprove / Not approve in the task thread
Set it up

Up and running in minutes, with a guided script.

One command walks you through it: it asks for what it needs, runs each step, skips what's already done and tells you when something needs a click in your browser. No AI agent needed. Your tokens never leave your terminal.

  1. 1

    Copy it to your repo

    Fork Cade on GitHub and clone your copy.

  2. 2

    Run the script

    npm run setup starts the guided setup in your terminal.

  3. 3

    Answer its questions

    Click through the logins and Slack settings when it asks. That's it.