sous v0.24.0 · what’s new

One list of what’s waiting on you, across every project.

AI makes it easy to keep ten or twenty projects moving at once. Keeping track of them is the hard part. sous gathers reviews, unfinished work and your own notes into one list, and shows it when you open a terminal or start an agent session.

brew install bilal-/tap/sous && sous setup
View on GitHub
The sous browser board showing fictional projects, waiting work and an agent asking a question.The sous browser board showing fictional projects, waiting work and an agent asking a question.
The browser board in sous v0.24.0. Real interface, fictional projects. Open image for full size.
Why it helps

What slips is what nobody reminds you about.

The review someone asked for on Tuesday. The branch you never pushed. The “I’ll fix that later” in a project you haven’t opened in two weeks. GitHub, GitLab, your notes and your memory each know a slice of it. sous puts the slices in one list, grouped by whose move it is.

On you

Reviews people asked you for, and the notes you marked as yours.

On others

What you are waiting for: an app store review, a colleague, a reply.

Unfinished

Work you left behind in git: files not committed, commits not pushed, stashes.

❯ soussous · ~/.local/bin/sous · what is waiting on you across every projectsous · 1 needs you · 2 on you · 2 on others · 3 unfinished   needs you · sous reply <n> "<answer>"  6               billing                   Fix the flaky invoice test. · "Two fixtures cover the flak…"  0m   on you  1               billing                   send the pricing copy to Sam                                  5d  3               api                       check the index after the deploy                              20h   on others  2               mobile-app                waiting on app store review                                   4d  5               api                       Priya is reviewing the facets PR                              1d   unfinished  s:aaabe82ea0f2  chime                     feat/widget has no upstream                                   5d  s:29d1240287e7  chime                     2 files uncommitted · feat/widget                             5d  s:d0b7c36c0bb0  api                       3 commits unpushed · main                                     2h  (… cut short: sous show <n> for a whole note)   5 checked · 0 unavailable · as of 19:47 · sous snooze <id> to hide a row

Every row says how long it has been waiting. Tasks you hand to an agent get their own groups at the top: needs you, in progress and ready to review.

Where you already look

It comes to you, so it works on the days you forget it.

There is no app to open and no background service. The board prints when a new terminal starts, your agent hears about it when a session starts, and sous serve opens it in your browser.

A task's detail pane in sous, with an agent's question and a reply field beside the list.A task's detail pane in sous, with an agent's question and a reply field beside the list.
Answer an agent, review a result, or close a follow-up from the same page. Open image for full size.

Plain words. Each item says what it is and what to do about it. A git finding explains itself, with the commands that deal with it.

Mouse or touch, any size. The page works on a phone, a tablet or a wide screen. Press and hold to select several items.

Only on your computer. The page listens locally and runs whilesous serve does.

For your agents

Pick up where you left off.

When a session starts in Claude Code, Codex, Antigravity or opencode, the agent gets a short brief: the branch, the last commit, how the last session ended, and what is waiting. Other agents can use the shared skill to ask for it.

  • Claude Code
  • Codex
  • Antigravity
  • opencode
  • and any agent that reads ~/.agents/skills

Or just ask: “what’s waiting on me?”, “note for billing that I owe Sam the numbers”. It asks before anything reaches a shared tracker.

[sous] The user's list of what is waiting on them across projects. Run sous help for how to use it.[sous] Runs waiting on the user:  6 billing: run needs you · Fix the flaky invoice test. · "Two fixtures cover the flaky tes…" · sous reply 6 "<answer>"api · main · last commit 1h ago  "Retry a slow shard"  3 commits unpushed · mainlast session · claude · 2026-11-08 · ended: "The facets are cached and paged. Next: retry a slow shard, then deploy."project docs · README.mdon you: 1 · on others: 1 · ideas: 1  3  check the index after the deploy  20h  5  Priya is reviewing the facets PR  1d  (them)  4  try a smaller shard size  2d  (idea)   sous note "…" to add · sous done <n> to close · sous kind <n> me to escalate
Hand it off

Give a task to an agent. sous keeps track of it.

sous go --run starts your agent in its own git worktree, in the background. When it needs you, or it is done, the task is on your board with the one command that moves it on.

  1. 1

    Hand it over

    A brief that says what, why and what done means. Retrying it never starts two.

    ❯ sous go billing --run "Fix the flaky invoice test.
    
    Done means it passes 20 runs in a row."
  2. 2

    It asks, you answer

    The agent works on its own branch. A question waits on your board, not in a tab.

    6  billing  Fix the flaky invoice test.  (me · just now)   needs you · Two fixtures cover the flaky test. Keep the old one or the new one? (claude)   branch sous/run-6 · worktree ~/.sous/runs/3a6c58bf732b/worktree · log ~/.sous/runs/3a6c58bf732b/log   next: sous reply 6 "<answer>" · sous done 6
  3. 3

    Review, then clean up

    Reply and it carries on. When a result is ready, look at its changes. Usesous approve to push its branch and open a draft pull request, orsous discard to turn it down. sous done --clean removes a finished run's worktree.

Memory

Keep the reasons behind the work.

Keep decisions, constraints, lessons and handoffs with their sources. When you come back to a project, its brief brings that context up. The full history stays on your computer.

A reason you can come back to

Save a decision with its source. Recall it later, check its evidence, and replace an outdated decision while keeping its history.

❯ sous recall --show m:1m:1 · decision · 2026-11-08T00:47:23Zproject · ~/code/acme/apiworkspace · ~/codesource · docs/design.mdauthor · humanUse cursors so new results do not shift page boundaries.verified · 2026-11-08T00:47:23Z · docs/design.mdsous recall -p ~/code/acme/api --history for previous decisions and handoffs

One effort across several projects

Link the projects, notes and decisions behind one outcome, and see which work waits on which.

❯ sous effort "Search launch"  e:1 Search launch · 3 linked open · 0 completed · 1 blocked  project · acme/api · workspace ~/code  project · acme/billing · workspace ~/code  1 send the pricing copy to Sam · me  3 check the index after the deploy · me  5 Priya is reviewing the facets PR · them  1 waits for 3  m:1 decision · acme/api · Use cursors so new results do not shift page boundaries. · docs/design.md · verified  tracker snapshot · 2026-11-08T00:47:22Z  sous show <n> for current work · sous effort link <name> --note <n> to connect it

You or your agent record the context. Memory stays with its project unless you share it. Search is local keyword search; there is no automatic transcript extraction or semantic search.

Is it for you?

An index, not a tracker.

For you if

You work across many projects, often with AI agents, start your agents from a terminal, and want a nudge rather than another tool to manage.

Probably not if

You mostly work in one project, or your team already runs everything through one tracker you check every day.

Your work stays where it lives

In git, on GitHub or GitLab, or in a project’s FOLLOWUPS.md. sous keeps pointers and your private notes, and works out the live state each time you look.

No priorities, due dates or sprints

Rows are grouped by whose move it is, oldest first. sous needs no API key, and runs no background service.

Honest by design

Local state. Sources you can check.

Missing never looks like zero

If GitHub cannot be reached, the board says ? on you (github failed), not a calm zero, and keeps what it knew, marked stale.

Your machine, your tools

No sous account or model API key. sous uses the tools and logins you already have. Trackers contact their services; agents may send context to their model provider.Read the privacy details.

The tracker wins

Close a filed issue where it lives and your note closes too. If sous cannot check, the row says so.

Starting stays offline

The session brief and sous here use local git facts and cached tracker state, so they never wait on the network.

For builders

Built for the agent calling it, and for you.

  • The board and notes support --json. Errors too.
  • Safe to retry. The same note twice is one note; the same run twice is one run.
  • Useful next steps. Output points to the command you are likely to want next;sous help covers the rest.
  • No interactive prompts. Session hooks stay offline and finish within five seconds.

sous follows the AXI guidelines for agent friendly command line tools.

{  "id": "3",  "did": "already_noted",  "ref": null,  "next": [    "sous done 3"  ]}
Plugins

Four small doors. Any language.

A plugin is a program named sous-<kind>-<name> that you list in your settings. sous passes it arguments and reads what it prints. The built in git, GitHub, GitLab and agent support go through the same doors.

sous-signal-*

A signal finds what is waiting on you.

pull requests, CI runs, tickets, calendar holds

sous-backend-*

A backend is where a filed note goes.

Jira, Linear, Gitea, a plain text file

sous-launcher-*

A launcher starts an agent or editor in a project.

your agent, your editor

sous-runner-*

A runner does a task in the background, and says how it is going.

an agent on a server, a queue of reviewed changes

Set up in a minute. Then forget it is there.

sous setup finds your projects, adds itself to your shell and your agents, and tells you what it did. Run it again any time.

brew install bilal-/tap/sous && sous setup

macOS and Linux. Read how to set it up, how to use it day to day, or every command.