DEV Community

Cover image for The Machine Keeps Up. You Don't. Building a Second Screen for Claude Code.
Matthias Steinbauer
Matthias Steinbauer

Posted on

The Machine Keeps Up. You Don't. Building a Second Screen for Claude Code.

The Machine Keeps Up. You Don't. Building a Second Screen for Claude Code.

Anthropic keeps telling us: run multiple Claude Code sessions in parallel. It's right there in the docs, in the blog posts, in every "advanced tips" thread. And they're right — it works. You can have one session refactoring your auth module, another fixing a gnarly CSS bug, and a third writing tests. Claude handles context across all of them just fine.

The machine isn't the bottleneck. You are.

My actual desk setup: Claude Code terminal, .LOUPE app, and the Second Screen dashboard running side by side
Three screens, three contexts. Left: Claude Code doing its thing. Center: the app we're building. Right: the dashboard keeping it all together.

The Problem With Parallel Sessions

When you're running 3-5 Claude Code sessions simultaneously, things get chaotic fast. You Alt-Tab between terminals and forget which session was doing what. One session finished five minutes ago and is waiting for your input — but you didn't notice because you were deep in another one. You lose track of which GitHub issues are being worked on where.

Claude's context window is great. Human working memory? Not so much.

We needed a way to see all our sessions at a glance without switching between terminals. Something like a mission control for Claude Code.

So We Built One (With Claude, Obviously)

We vibecoded a dashboard that solves exactly this problem. It's called claude-second-screen, and it does one thing well: it gives you a real-time overview of all your active Claude Code sessions.

Here's what each session card shows you:

  • 🟢 Green — Session is idle, work is done
  • 🟡 Yellow — Claude is actively working
  • 🔴 Red — Session is waiting for YOUR input (this is the important one)

Beyond the color coding, each card displays a short summary of what's happening in that session and which GitHub issues are being worked on. No more "wait, which terminal was fixing issue #47?"

How It Works

The architecture is dead simple. A lightweight local server runs the dashboard on localhost:3456. Claude Code sessions report their state via hooks — the same hooks system that Claude Code already provides.

Four hooks handle everything:

  • SessionStart — registers a new session on the dashboard
  • UserPromptSubmit — marks the session as busy (yellow)
  • Stop — marks the session as idle (green)
  • Notification — marks the session as waiting for input (red)

There's also a skill file you drop into your .claude/skills/ directory. This teaches Claude to update the dashboard with summaries and issue references as it works. Claude essentially self-reports what it's doing.

Setup in 2 Minutes

git clone https://github.com/steima/claude-second-screen
cd claude-second-screen
npm install
npm run build
npm start
Enter fullscreen mode Exit fullscreen mode

Then copy the skill file and add the hooks to your .claude/settings.json:

{
  "hooks": {
    "SessionStart": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "bash /path/to/claude-second-screen/hooks/register-session.sh"
      }]
    }],
    "Stop": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "bash /path/to/claude-second-screen/hooks/set-idle.sh"
      }]
    }],
    "Notification": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "bash /path/to/claude-second-screen/hooks/notify-waiting.sh"
      }]
    }]
  }
}
Enter fullscreen mode Exit fullscreen mode

Open http://localhost:3456 on your second monitor. Done.

Why a Dedicated Dashboard?

You might ask: why not just use tmux panes or terminal tabs? Because the point isn't to see the terminal output. The point is to see the status and intent of each session at a glance. A wall of terminal text doesn't tell you "this session is blocked on you" — a red card does.

It's the difference between monitoring raw logs and having a proper dashboard. When you're juggling 3+ parallel sessions, you want the 10,000-foot view, not the ground-level terminal scroll.

The Meta Part

Yes, we built this tool with Claude Code. Yes, we ran multiple sessions in parallel to do it. And yes, we desperately needed the dashboard while building the dashboard. Dogfooding at its finest.

Try It Out

The repo is open source (MIT): github.com/steima/claude-second-screen

If you're running multiple Claude Code sessions and feel like you're the one dropping context — not the AI — give it a shot. It's a small tool that solves a real workflow problem.


We're building .LOUPE, a GRC compliance platform, and Claude Code is a core part of our development workflow. This dashboard came out of our daily frustration with losing track of parallel sessions. If you have ideas or improvements, PRs are welcome.

Top comments (0)