Developer Tools
Nightporter
Keep your Mac awake for Claude Code & Copilot CLI
A tiny menu-bar app that holds your Mac awake while Claude Code or Copilot CLI is working, shows every live session and its token use at a glance, and taps you on the shoulder the moment a run stops to wait on you. No account, no network, no telemetry — it just watches the sessions already on your machine.
- Lives in the menu bar
- No network, no telemetry
- Releases the lock on low battery
- Free and unlocked
Free and unlocked. Buy me a coffee ☕ if it saved your overnight run.
Your Mac stays awake until your agent is actually done.
How it works
-
Download & open
Drag it to Applications and launch — no window appears, just a cup icon in the menu bar. Universal binary for Apple silicon and Intel.
-
Connect
One click wires it into your agents — hooks in Claude Code's settings.json (backed up first) and a hooks file for Copilot CLI. Restart any running sessions and you're set.
-
Walk away
While a session is working, the app holds a power assertion — the same mechanism as caffeinate — so the Mac won't idle-sleep mid-task.
-
Get tapped back
When a run hits a permission prompt at 2am, you get a notification. It re-nags every few minutes until you answer, then clears itself.
What's inside
-
Awake only when it matters
Choose when to hold the Mac open — while an agent is working, while any session is open, always, or never. The default keeps you awake exactly as long as a run needs and not a minute more.
-
Live session readout
One row per session, each with a status dot, the project name, context and output tokens, turn count and model. See what every Claude Code and Copilot CLI run on your machine is doing without switching windows.
-
A nudge when Claude needs you
Blocked on a permission prompt, the app posts a notification and re-nags every few minutes — replacing rather than stacking — then withdraws it automatically the moment the session unblocks.
-
Token count in the menu bar
Keep the live context size or session total right beside the cup icon (☕ 128k), or turn it off. A quiet gauge of how heavy the current run has become.
-
Battery-aware
Opt to pause on battery, and it hard-releases the lock below 15% no matter the setting — your Mac will never refuse to sleep itself flat. Desktops without a battery are never held back.
-
Nothing leaves your Mac
No network access of any kind, no analytics, no accounts. It reads the session files and transcripts already on disk, holds an IOKit power assertion, and that's the whole story.
About Nightporter
Nightporter is a macOS menu-bar utility that keeps your Mac awake while Claude Code or Copilot CLI is working, shows live session state and token usage, and notifies you when a run is blocked waiting on you.
A long unattended run can stall in two ways: the Mac goes to sleep mid-task, or the agent hits a permission prompt in the small hours and waits silently for a human who’s asleep. Coding agents like Claude Code self-caffeinate for a few minutes per session, so idle sleep is partly covered — this app adds durability past that timeout, optional display-sleep coverage, a clear view of what each session is doing, and a live token readout.
It works from two signals already present on your machine. Claude Code and
Copilot CLI hooks report each session’s state — working, waiting, idle, ended —
while the app tails the session transcripts to count tokens and to catch the things hooks
can’t see, like an interrupt or an answered prompt. While a session qualifies,
it holds an IOKit power assertion, the same mechanism caffeinate uses.
There is no network access of any kind — no analytics, no telemetry, no
account. The hook script it installs is plain /bin/sh and fails silently, so
it can never disrupt the very session it’s watching. It’s free, unlocked, and
runs on macOS 14 Sonoma or later, on both Apple silicon and Intel.
Built for the overnight run.
Nightporter is free and fully unlocked — I made it because I kept waking up to a Claude Code session that had stalled hours earlier. If it saves one of your long runs, a coffee is always appreciated.