by m1ckc3s
A tiny macOS menu bar status indicator for Claude Code: animated icons, elapsed timer, and open/close lifecycle.
# Add to your Claude Code skills
git clone https://github.com/m1ckc3s/claude-status-barGuides for using cli tools skills like claude-status-bar.
claude-status-bar is an open-source cli tools skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by m1ckc3s. A tiny macOS menu bar status indicator for Claude Code: animated icons, elapsed timer, and open/close lifecycle. It has 365 GitHub stars.
claude-status-bar's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/m1ckc3s/claude-status-bar" and add it to your Claude Code skills directory (see the Installation section above).
claude-status-bar is primarily written in Swift. It is open-source under m1ckc3s on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other CLI Tools skills you can browse and compare side by side. Open the CLI Tools category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh claude-status-bar against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
A tiny macOS menu bar app that shows Claude Code's live status: an animated Claude icon while it's thinking or running a tool, a yellow dot when it's awaiting your permission, and the elapsed time of the current turn. Lightweight, no window, no dock icon, no usage dashboards.
Built so you can tab away during a long "thinking" stretch and still see, at a glance, whether Claude is working, waiting on you, or done._
[!IMPORTANT] Multi-session support. When several Claude Code sessions run at once (multiple terminals, or a terminal plus the desktop app), the menu bar surfaces the highest-priority one — a session awaiting your permission is never hidden behind one that's merely thinking — names the repo, and the dropdown lists every live session. Click a session to jump to it: desktop sessions focus the Claude app, terminal sessions bring their terminal app to the front (the app, not yet the exact window or tab when you have several open). Precise per-tab focus is in progress: issue #19 →.
1m 1s timer.Editing, Reading, Running command, Using tool, …).Everything is controlled from the menu:
1m 1s clock.| Surface | Tracked? |
|---|---|
| Claude Code CLI (terminal) | ✅ |
| Claude Code Desktop — Code tab | ✅ |
| Cursor (Claude Code extension) | ✅ |
| Claude Desktop — Chat tab | ❌ |
| Cowork | ❌ |
Signed and notarized. Open it, drag the app to Applications, launch once.
ClaudeStatusBar.dmg from Releases.Download the latest DMG and drag it into Applications (choose Replace). Launch it once, it refreshes its hooks on a version change, then restart Claude Code to pick them up.
Installs the hooks (status + open/close lifecycle) automatically from inside Claude Code:
/plugin marketplace add m1ckc3s/claude-status-bar
/plugin install claude-status-bar@claude-status-bar
The plugin installs the hooks but not the app itself, so drag Claude Status Bar into Applications once (from the DMG). The plugin launches it automatically on session start.
The app is stateless. Claude Code hooks write each session's status to its own file under ~/.claude/statusbar/state.d/<session_id>.json; the app polls that directory every 0.4s, aggregates across all live sessions, and renders one icon and label (permission dot if any session needs approval, animating if any is working, resting only when all are idle). SessionStart launches it; it self-quits once the Claude desktop app is closed and no Claude Code session is active (each active session is its file under ~/.claude/statusbar/state.d/).
The installer merges its hooks into ~/.claude/settings.json (backing it up first), and the app's only network call is a once-a-day GitHub release check (details).
node "/Applications/ClaudeStatusBar.app/Contents/Resources/uninstall.js" # removes only our hooks
Then drag the app to the Trash.
I built this for myself, then open-sourced it because other people might find it handy too, and I'm genuinely thrilled that so many of you do. An extra thank-you to everyone who went the extra mile and contributed code, fixes, and ideas.
This is an unofficial, open-source side project. It is not affiliated with, endorsed by, or sponsored by Anthropic. "Claude" and the Claude spark logo are trademarks of Anthropic, used here nominatively. This project is MIT licensed, but that covers the source code only and conveys no rights to Anthropic's trademarks or brand.
If I'm violating or impeding your trademark, Contact me on X Chat (@mickces) This is a free side project; I'm not monetizing it.
MIT