A menu bar app for people with more than one Claude

Claude said
you've had
enough.
You haven't.

Sidestep watches every Claude account you're signed into and steps Claude Code around the wall to the one with the most gas left. No restart. No re-login. No sad little wait-until-Tuesday.

macOS 14+ · Apple silicon & Intel · reads the same auth files as your CLI proxy
This panel is live. Grab the knob and drag it to Derek. Try dragging it to Alexa, whose token needs a sign-in. Hover a countdown. Click ↻.

This is the actual popover, not a render.

SidestepFileAccountsHelp
17% · 4%🔋 100%Mon Aug 24  4:47 PM
It lives up there, next to the clock

One meter.
Every account.
Never the wall.

Two numbers in the menu bar, the whole picture one click down. Session, weekly, the Fable bucket, and a reset timeline, for every login you've got.

5H session7D weeklyFABLE its own bucket±7D reset tape5 MIN refreshnative swift · zero electron
JOHN · 7D WEEKLY · RESETS WED 3P0%
MON 17TUE 25

Enough,said Claude.

Sidestep keeps every Claude account you own in the menu bar. The moment this bar goes red, Claude Code sidesteps onto the fresh one. Your sessions don't restart. You don't log in. Nobody goes outside.

02 · The wall
4:47PM
FRIDAY THREE FILES FROM DONE WEEKLY LIMIT · REACHED
Real output, lightly abbreviated. The part where you cry is not shown.

Claude said you've had enough. You haven't.

You have another account. It's right there. It's in another browser, its token is in the Keychain, and getting to it means logging out, opening a browser you don't use, pasting a code back into a terminal, then restarting every terminal you had going.

Twelve minutes, minimum. Longer if you fat-finger the paste. And every running session loses the thread it was holding.

Meanwhile, up in the menu bar
SidestepFileViewHelp
97% · 71%Fri 4:47 PM
So you close the laptop and go outside like some kind of animal.
02 · The wall

One account is at the wall. The other one is at zero.

John hit his weekly limit at 4:47 on a Friday. Derek's account hasn't been touched all week. Claude Code only knows about one of them. Sidestep knows about both, and moves you over in one drag.

4:47 PM · the wall
97% · 71%
session · weekly · john@sidestep.sh
SidestepFileView
97% · 71%Fri 4:47

John: 97% session, 71% weekly, reset Wednesday at 3 PM. Stuck until then.

one drag · no restart
4:47 PM · plus three seconds
0% · 0%
session · weekly · derek@sidestep.sh
SidestepFileView
0% · 0%Fri 4:47

Derek: 0% and 0%. Same terminals, same conversation, three seconds later.

The gap between those two panels · one knob, three writes, zero restarts
02 · The wall

Stop keeping a spreadsheet in your head.

Four accounts. Four reset days. Two of them you can't remember signing into. When Claude Code stops at 4:47 on a Friday, this is the file you're querying, and it's a bad file.

What you actually have
Note to selfalexa's is the deep one?
or was that last month
Pretty surejohn reset tuesday??
tuesday-ish. wednesday?
Definitelyderek is fresh i think
haven't used it since june
Oh nonithin is signed out
which browser was that
versus · one panel that already knows
What Sidestep shows you

Every account, every ladder, every reset window on one strip. Derek is at zero and resets Saturday. That's the whole answer, and you didn't have to remember any of it.

03 · The meter

One row per account. Read it at a glance.

Session (5H), weekly (7D), and the Fable row: Fable gets its own weekly bucket, so it gets its own line. Each one is a 24-segment ladder, a percentage, and a countdown to the reset. Polled every 60 seconds from Anthropic's own usage endpoint, so the numbers are the numbers.

  • UNDER 50%Grey. A fuel gauge you don't look at.
  • 50 TO 79%Amber. Half a tank. Plan the next stop.
  • 80% AND UPRed, and the last segment breathes. Time to switch.

Hover a countdown and it says the reset in words a human uses. "Today at 8:10 PM", not a Unix timestamp.

Accountwho, tier Label5H · 7D · FABLE Ladder24 segments · fills left to right · colour is the severity %used Reset inhover for the day
Hover either countdown yourself. It's the real tooltip.
03 · The meter

Two numbers in the menu bar. You don't open the panel until you need to.

The title is the active account's session and weekly usage. The dot is the mood. That's the whole interface for about 95% of your week.

Claude CodeFileEditView
6% · 30%Mon 9:41
Normal dayOrange dot. Nobody's thinking about limits. Correct.
Claude CodeFileEditView
41% · 62%Wed 3:12
Heads upAmber. The week is more than half gone. Maybe check the panel.
Claude CodeFileEditView
97% · 71%Fri 4:58
FridayRed. The session's cooked. Open the panel, drag the knob, keep going.
UPD · EVERY · REQ SINCE LAUNCH · the header keeps the receipts
03 · The meter

Read it at a glance. Then go back to work.

Twenty-four segments. Grey, then amber at 50, then red at 80. Drag the slider and watch what the menu bar would be telling you.

Claude CodeFileEditView
17% · 31%Tue 2:07
5H
17% 3H 49M
050 · AMBER80 · RED100
CruisingCruising. Nobody's counting.

Weekly stays at 31% in this demo. In the app both numbers move, and the Fable row gets its own thin ladder.

04 · The shifter

Go on.

A slot down the left, one gate per account, a knob parked in the one you're using. Grab it, pull it down a gate, let go. It chunks into place and Claude Code is on the other account before you've finished the sentence you were typing.

Try dropping it on Alexa. Her refresh token went bad, so her gate is hatched, and the knob shakes and springs back. The app would rather say no than switch you onto a login that doesn't work.
Menu bar title
17% · 4%
session · weekly for John
Drag the knob · or click a gate
04 · The shifter

A switch is three writes. Here they are.

No daemon, no shim, no rewriting of Claude Code. Sidestep edits the three places your login actually lives and gets out of the way. In this order.

1Snapshot

The login that's leaving gets filed to disk under its own email, so it's still there when you want it back.

$ write ~/.cli-proxy-api/
    claude-john@sidestep.sh.json
access + refresh + expiry, 0600
2Swap

The account you picked gets written into the one Keychain item Claude Code reads. Same item, new tokens.

$ security add-generic-password \
  -s "Claude Code-credentials" \
  -a john -U
3Point

One field in your config says which account is yours. It gets updated, and the old file is kept next to it.

~/.claude.json · bak .sidestep-bak
- "oauthAccount": john@sidestep.sh
+ "oauthAccount": derek@sidestep.sh

Claude Code doesn't hold your token in memory. Every turn it shells out to security find-generic-password and caches the answer for 30 seconds. So the session you left running in the other window picks up the new account on its next turn, all by itself. Nothing restarts. No relaunch, no "please quit and reopen", no lost context.

Menu bar title
ClaudeFileEditView
17% · 4%100%Tue 8:12 PM
John, 17% into the session
04 · The shifter

The gate that won't open.

Refresh tokens rot. Sign in somewhere else, let another tool rotate it, leave it alone long enough, and Anthropic stops taking it. Most apps find out at the worst possible moment, halfway through a request. Sidestep finds out on the next poll and tells you before you've committed to anything.

  • The rowsGo to dashes. No made-up zero, no stale number from an hour ago. It doesn't know, so it doesn't say.
  • The noteNames who the token actually belongs to, because half the time you signed in as the wrong person in a browser you forgot was logged in.
  • The gateGoes hatched, and the knob refuses it. You cannot switch onto a broken login by accident.
  • The fixHit SIGN IN, or + ADD ACCOUNT. Real OAuth, real browser, and the fresh token gets written to the proxy copy too, so nothing goes stale behind your back again.
05 · Reset windows · ±7 days

See the whole week.

Percentages tell you where you are. The tape tells you when it changes. Every account's 7-day window, drawn against the calendar, with NOW down the middle.

Each row

One bar per account. It fills as you spend.

The bar runs from when the weekly window opened to when it resets. The label on the end tick is the only number you need: how much is gone, and when it comes back. The thin orange line underneath is the Fable bucket on the same clock.

Picking one

Switch to whichever resets soonest.

Everything right of NOW is still coming. Grab the account whose tick lands first. The ◆ is the 5-hour session reset, usually tonight. Locked accounts show NO DATA · SIGN IN rather than a guess.

05 · Reset windows

Two accounts. Both at seventy. Not the same.

John
70%
7D · resets tonight, 9 PM
Derek
70%
7D · resets Sunday, 2 PM

The percentages look identical. The tape doesn't.

Active: Derek · resets Sunday
05 · Field manual · reset windows

Read it in three seconds.

Five marks. That's the entire notation. Once you've seen it you can't unsee it, which is the point of a chart.

Plate 1 · the tape as drawn
OPENRESET

Bar length = 7-day window

Starts when your weekly quota opened. Ends at the tick where it resets. Always seven days wide, wherever it sits on the calendar.

Fill = used

Grey under 50, amber to 79, red from 80. The label at the tick says the number and the day: "70% SUN 2P".

Thin orange = the Fable bucket

Fable has its own weekly limit, separate from the 7D row. Same clock, thinner line, so it never gets confused with the weekly.

◆ = 5H reset

The session window. It's a point, not a bar, because five hours is a blink at this scale. Usually the thing you're actually waiting on.

NOW

Orange line = NOW

Dead center, always. Left is spent. Right is coming. Whatever tick is nearest on the right is your next switch.

It refreshes every five minutes with the rest of the panel, so the ticks drift left in real time. Watch one cross NOW and you'll see the bar empty out. Cheap thrills, but ours.

Timeline.swift · ResetTimeline
SidestepFileEditViewWindowHelp
17% · 4%Mon 9:43 AM
06 · Install

One command. Two minutes, generously.

macOS 14+Apple silicon & IntelFree & openA Swift package
sidestep · zsh~/Developer/sidestep
Sign in to the rest and you're done.
SidestepFileEditViewWindowHelp
17% · 4%Mon 9:43 AM
06 · Install

One command.
Then it's just there.

It's a Swift package. build-app.sh --install compiles it, signs it, and drops it in Applications. Open it once and look up.

Sign in to the accounts you already have. Sidestep starts polling on its own and the pill shows up in the menu bar. That's the tutorial.

OS macOS 14 Sonoma or newerCPU Apple silicon and IntelSize a native app, not a browserCost zero

Rate limits are a you problem now. Sorry.

sidestep · zsh~/Developer/sidestep
17% · 4% · john@sidestep.sh · session · weekly · in your menu bar
SidestepFileEditViewWindowHelp
17% · 4%Mon 9:43 AM
06 · Install

Build it. There it is.

One command. Then every account you're signed into is one click down.

sidestep · zsh~/Developer/sidestep
That's the real popover, sixty seconds after install. + ADD ACCOUNT signs in the rest; drag the knob whenever one runs dry.
07 · Get it

You already paid for
the other one.

Every Claude account in the menu bar. Drag the knob, keep working.

Install Sidestep $./scripts/build-app.sh --install

Native Swift, nine files you can read in an afternoon. Tokens stay on your Mac, it backs up every file before it writes one, and it talks to nobody but Anthropic. No telemetry, no server, no account with us.

Native SwiftZero Electron5 min refreshTokens stay localmacOS 14+
07 · Get it

Here's the whole bill.
It's short.

Itemized, because people keep asking what the catch is.

Sidestep
menu bar · macOS 14+ · order #0001
You get
Usage meter5H, 7D and FABLE, one ladder each, every account0.00
Gear shifterone gate per account, switches mid-session0.00
Reset tape±7 days, so you know which one to grab0.00
It phones home
Telemetry events0
Servers in the middle0
Accounts with us0
It writes
Files touched per switchproxy snapshot, Keychain item, ~/.claude.json3
Backed up before every write3
Swift files you can read9
Total$0.00
Tender: none · Tokens never leave this Mac · Returns accepted, it's a folder
Install
Thank you · come back angry
SidestepFileEditView
17% · 4%Mon 9:41 AM
Five minutes later: 17% · 4% · john@sidestep.sh
SidestepFileEditViewWindowHelp
17% · 4%Mon 9:41 AM
07 · Get it

Four accounts. One pill.

Click it, drag the knob, keep working. Claude Code picks up the new account on its next turn.

Install Sidestep ./scripts/build-app.sh --install
Native Swift · nine files, zero Electron Tokens stay local · no telemetry, no server Three writes per switch · each one backed up