Proactive agent

Cade reads along, and only ever asks.

In the task and incident threads it manages, Cade notices what you're about to do, such as handing the task over, pasting a PR or saying it's done, and offers it to you privately. Nothing changes until you click. It works in three layers, each built on the one before, and you turn the last two on or off in cade.config.json, for every group or for each group on its own.

Three layers

Commands always work. Cade can also read along, with or without AI.

1 · Commands

Always on

You say exactly what to do, and Cade does it.

  • /cade … and @Cade … commands
  • The ⋯ menu on task cards (Edit, Release, Archive), message shortcuts and emoji
  • A message posted on its own in the dev channel gets a private question: track it as a task or incident, or move it to an existing thread

Every command →

2 · Proactive agent

suggestions · on by default

Cade reads messages in the threads it manages and offers, privately, what you're about to do.

  • “@mia can you review this?” offers to add a reviewer
  • A pasted PR link offers to link it
  • “on it”, “lgtm”, “done” offer the next status
  • Off means commands only: nothing is read from messages in threads

3 · AI suggestions

On by default

The proactive agent reads task threads with a small model on Cloudflare Workers AI, so one message can mean several changes.

  • Several people across roles, added or removed
  • Status, priority and due date (“need it by Friday”), and blocked or unblocked
  • A summary to Accept, Edit… in the task's form, or Reject
  • Needs the proactive agent on, and suggests only PR links if the model fails
Proactive agent

Plain words Cade picks up in its threads

With the proactive agent on, Cade reads messages in the task and incident threads it manages, and offers, privately, to act on them. Nothing changes until you click.

On by default. Set "taskChangeDetection": false in cade.config.json, for every group or on one group in channels, for commands only: Cade then reads nothing from messages in threads. Commands, the task card's ⋯ menu, message shortcuts, emoji, and the question about a new message posted in a channel all keep working. You can also keep only some kinds: pr-links, hand-offs, started, progress.

Hand a task to someone

Task thread

Mention someone with what you'd like them to do:

  • Owner: “start working”, “work on”, “look into”, “pick this up”, “take this”, “take care of”, “handle this”, “fix this”, “assign this to”, “over to you”, “implement”
  • Reviewer: “review” · Tester: “test”, “QA”, “verify”
  • Cade suggests adding whoever that part of the message names. Someone only cc'd isn't added. Your own part is yours: “@udara can you implement this while I test it” suggests Udara as owner and you as tester.
Example: “@Rex please start working on this, first cut by Friday?”

Paste a pull request

Task thread

Cade privately offers to link it, in the same summary as any other change it read (PRs: …), with Accept, Edit… and Reject. People your message mentions who aren't reviewers yet are added as reviewers, and the task moves to In review.

Example: “First pass is up: https://github.com/acme/booking-web/pull/128. @Mia can you review this?”

Say how it's going

Task thread
  • Started: “on it”, “started on this” from someone on the task offers In progress.
  • Progress: “lgtm” from a reviewer, “QA passed” from a tester, or “done” from anyone on it offers the next status.
  • Role and status suggestions come together as one private message: a summary of what Cade read, with Accept, Edit… (the task's Edit form, filled in with it) and Reject.
Example: “lgtm, approved the PR”
AI suggestions

One message, every change, read with AI

The proactive agent reads messages in task threads with a small model on Cloudflare Workers AI. That catches many ways of saying things, and several changes in one message.

On by default. It needs the AI binding in wrangler.toml, and the proactive agent on: with "taskChangeDetection": false, nothing is read. Name another Workers AI model with "aiModel" at the top of cade.config.json.

What it reads

Task thread
  • People: owners, reviewers and testers added or removed, several roles in one message. Only people the message mentions, or whoever wrote it, can be added. A mention that only informs (“cc @rex”, “thanks @mia”) changes nothing.
  • Status: when the message says the work moved on, never for a question or a plan.
  • Priority and due date: “this is urgent”, “need it by Friday”, but not an incident's.
Example: “@Rex can you take this over from @Bob? @Mia please review. Need it by Friday, it's blocking the release”

Accept, edit, or reject

Only you see it

Whoever wrote the message gets a private summary of what Cade read, such as Owners: @Rex (Add) · @Bob (Remove) · Reviewers: @Mia (Add) · Priority: High → Urgent · Due: none → 31/10.

  • Accept applies it all, and the thread hears it as one message.
  • Edit… opens the same form as the task card's ⋯ → Edit, filled in with it: every role's people, the status, priority, due date and PRs. Correct anything, then Save.
  • Reject drops it.

Falls back on its own

Always

If the model fails, or takes more than 8 seconds, the message is read by its phrases instead, as with AI off. Pasted PR links and new messages in the dev channel are always read without AI.

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.