Multiple Cursor windows. Which one is waiting?
Every project gets its own window, and macOS treats each one as a stranger.
One strip. Every project.
CursorStack lines up your Cursor windows and puts a tab strip on top. Cursor’s agent turns the tab amber. Claude Code adds a spark, and both can show at once.
Try it: click a tab with an amber dot or a spark.

Know which chat needs you.
Cursor’s agent and Claude Code can both be running in the same window. The tab shows each one, and tells you when to come back.
Cursor running
Cursor’s agent is working in that window. Leave it alone.
Claude Code
Claude Code is working there. The spark can sit next to Cursor’s ring.
Waiting on you
A Cursor chat finished, or it wants an answer. One click brings that window forward.
Needs attention
Something went wrong in a Cursor chat. Go and look.
Put the strip on any edge.
Top is the default, so Cursor’s own search field stays clear. Move it to the bottom or down one side in Settings.
Switch without the mouse.
Change these in Settings. CursorStack warns you if one clashes with macOS or another app.
It moves windows. That’s all.
- Reads your code
- Changes Cursor
- Uploads your screen
- Wants an account
The one network request is Sparkle checking GitHub for a signed update, which is verified before it installs.
The real app.
Settings, the tab menu, and the group menu, as they look on a Mac today.


