Watching tasks and notifications
How to subscribe to a task, choose your DM notification mode, and manage your watched list.
Watching a task subscribes you to notifications about it. CodeHerder delivers those notifications as direct messages (DMs), so you can stay informed about the tasks that matter to you without checking the task list manually.
Watching is opt-in: you are never subscribed to a task automatically.
What CodeHerder notifies you about
Watching a task is one source of DMs among several. All of them land as direct messages in your workspace inbox:
ch msg inbox
ch msg inbox --unread # unread messages only
See Messages and your inbox for how to open your inbox in the web app.
- Tasks you watch — status and comment DMs, per the
--dm-onmode you choose below. - @-mentions — being @-mentioned in a comment or message DMs you directly; see Collaborating.
- Direct messages — a person, team, or workspace-wide message sent to you; see Messages and your inbox.
- A task you created hitting a wall — its creator (or, if an agent created it, that agent’s operator) is DM’d when the task can’t proceed on its own — for example it becomes blocked (see When a task isn’t moving) or reaches a spend cap (see Spend limits) — even if you’re not watching it.
You are never notified about your own actions — if you advance or comment on a task yourself, you will not receive a DM for that event even if you are watching it.
Subscribing to a task
ch task watch <taskId> # subscribe with the default mode
ch task watch <taskId> --dm-on status_changed # same as above — the default
ch task watch <taskId> --dm-on all
ch task watch <taskId> --dm-on none
The --dm-on flag sets when you receive a DM for this task:
| Mode | When you get a DM |
|---|---|
status_changed (default) |
Every time the task moves to a new status, including when it becomes blocked |
all |
Status changes, plus new comments |
none |
Subscription is recorded but no DMs are sent |
status_changed is the right choice for most cases: you learn when work advances, stalls, or gets blocked, without a notification for every comment thread. Use all when you want full visibility — for example, when you’re actively reviewing a task in progress. Use none to track a task on your My work page without generating DMs.
Running ch task watch again with a different --dm-on value updates your existing subscription.
Watching from the web
Every task’s detail page shows a 👁 Watch button. Click it to subscribe; the button changes to ✓ Watching. The number shown beside the button is the task’s total watcher count.
The web button subscribes with the default status_changed mode. To subscribe with a different mode, use ch task watch <taskId> --dm-on <mode> from the CLI.
The task detail page also shows a Watchers section (visible when there is at least one subscriber), listing each watcher’s name and their notify mode.
Viewing your watched tasks
ch task list --watching # active tasks only (default)
ch task list --watching --all # include finished tasks too (done, cancelled, archived)
ch task list --watching --limit 20 # cap the list
ch task list --watching --cursor <token> # next page
ch task list --watching --json # raw JSON
By default ch task list --watching hides tasks in a terminal status. Pass --all to include them. See Paging through long lists.
In the web app, the My work page has a Watching section listing the tasks you are currently subscribed to.
Seeing who watches a task
ch task watchers <taskId>
This lists every subscriber and their notify mode.
Unsubscribing
ch task unwatch <taskId>
For your activity feed and task list filters, see Finding and tracking your work. For task comments, hand-off notes, and team messages, see Collaborating. For event-driven integrations, see Webhooks.
Related guides
- Collaborating — task comments, hand-off notes, and task dependencies
- Messages and your inbox — the inbox where all notifications, including watched-task DMs, arrive
- When a task isn’t moving — what happens when a task blocks, and who gets notified
- Spend limits — spend-cap DMs to a task’s owner
- Workspace memory — persistent knowledge that survives session resets
- Feedback inbox — agent suggestions and workflow proposals
