You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Claude Code Tab Badges <VersionBadgeversion="v0.14.2" />
8
10
9
11
When you run multiple Claude Code sessions in parallel — one per feature, one per repo, a few long-running tasks — it gets hard to know which tabs need your attention without clicking through each one. Wave's badge system solves this: hooks in Claude Code write a small visual indicator to the tab header whenever something important happens, so you can see at a glance which sessions are waiting, done, or in trouble.
10
12
13
+
:::info
14
+
tl;dr You can copy and paste this page directly into Claude Code and it will help you set everything up!
15
+
:::
16
+
11
17
## How it works
12
18
13
19
Claude Code supports [lifecycle hooks](https://code.claude.com/docs/en/hooks) — shell commands that run automatically at specific points in a session. Wave's `wsh badge` command sets or clears a visual indicator on the current block or tab. By wiring these together, you get ambient awareness across all your sessions without watching any of them.
@@ -38,6 +44,15 @@ Add the following to `~/.claude/settings.json`. If you already have a `hooks` ke
That's it. Restart any running Claude Code sessions for the hooks to take effect.
58
84
85
+
:::warning Known Issue
86
+
There is a known issue in Claude Code where `Notification` hooks may be delayed by several seconds before firing. This delay is unrelated to Wave — it occurs in Claude Code itself. See [#5186](https://github.com/anthropics/claude-code/issues/5186) and [#19627](https://github.com/anthropics/claude-code/issues/19627) for details.
Claude Code occasionally needs your approval before it can continue — to run a command, write a file outside the project, or use a tool that requires explicit permission. When it hits one of these, it stops and waits. Without a signal, you might not notice for minutes.
64
94
65
95
This hook fires on the `permission_prompt` notification type and sets a high-priority gold badge with an audible beep. Priority 20 means it beats any other badge on that tab, so a waiting session always surfaces above a finished one.
66
96
67
97
When you click into the tab and approve or deny the request, the badge clears automatically.
When Claude Code finishes responding, this hook sets a green check badge. It's a low-key signal: glance at the tab bar, see which sessions are done, review their output in whatever order you like.
72
102
73
-
The `stop_hook_active` guard in the command prevents the hook from firing recursively if you have other `Stop` hooks that keep Claude running.
When Claude Code uses the `AskUserQuestion` tool, it's paused and waiting for you to respond before it can proceed. This `PreToolUse` hook fires just before that tool call and sets the same high-priority gold badge as the permission prompt.
106
+
107
+
`PreToolUse` hooks can match any tool by name, so you can add badges for other tools as well — for example, to get a signal whenever Claude runs a shell command (`Bash`) or edits a file (`Edit`). Any tool name Claude Code supports can be used as a matcher.
74
108
75
109
## Choosing your own icons and colors
76
110
77
-
Icon names are [Font Awesome](https://fontawesome.com/icons) icon names without the `fa-` prefix. Colors are any valid CSS color — named colors like `gold` and `green`, hex values like `#f59e0b`, or anything else CSS accepts.
111
+
Icon names are [Font Awesome](https://fontawesome.com/icons) icon names without the `fa-` prefix. Colors are any valid CSS color — hex values, named colors, or anything else CSS accepts.
|Blocked / waiting on input |`hourglass-half`|`#FF9500`|
119
+
|Neutral / informational|`circle-info`|`#429DFF`|
120
+
|Background task running|`spinner`|`#00FFDB`|
87
121
88
-
To target a specific block or tab instead of the current one, add `-b <blockid>` or `-b tab`. See the [`wsh badge` reference](/reference/wsh-cmd/badge) for all available flags.
122
+
See the [`wsh badge` reference](/reference/wsh-cmd/badge) for all available flags.
0 commit comments