Cutely Visualize Your Claude Code Sessions in a Web Browser and Say Goodbye to Losing Track of Them

Cutely Visualize Your Claude Code Sessions in a Web Browser and Say Goodbye to Losing Track of Them

Working across multiple Claude Code sessions often leaves me lost. So this time I built a browser dashboard that lists the status of every session.
2026.10.30

This page has been translated by machine translation. View original

Introduction

Hello everyone, this is Akaike.
Until now, I have visualized Claude Code sessions in the following ways.

https://dev.classmethod.jp/articles/claude-code-hooks-mirror-ball-tips/
https://dev.classmethod.jp/articles/summer-project-2026-esp32-claude-code-status-visualization/

Both were a lot of fun to make, but they require dedicated hardware, so the barrier to everyday use was a bit high. (I'd like something realistic to use by now...)

So this time, I built a dashboard that lets you visualize Claude Code sessions in the browser.

Motivation

While working with multiple Claude Code sessions side by side, I had the following troubles.

  • How I usually use Claude Code

    • I open VS Code for each folder and run Claude Code in each window
    • I use VS Code because a large screen makes it easier to review the documents and code Claude creates
    • I also tried the terminal app cmux, but viewing the documents it created was inconvenient, so I ended up coming back to VS Code...
  • What troubles me

    • As windows increase, I can't tell which are processing and which are waiting for approval
    • I often fail to notice a session stopped waiting for approval and leave it alone for a while
    • With the mirror ball, I can't tell which session is waiting for approval, and the ESP32 device has a small screen that can only show one session

In this article, I define this state of losing track of sessions as "session lost."
So I wanted something that lets me check multiple sessions at a glance.

What I made

I made a plugin for Claude Code called Clawd Session House.
It prepares a room for Clawd for each session, and expresses the session's state through Clawd's movement in the room and the color of the light.

https://github.com/Lamaglama39/clawd-session-house

Live view

Live view

The live view arranges the running sessions one by one as tiles.
Roughly, it behaves as follows. It's soothing.

  • Status
    • Idle: The light is blue, and Clawd breathes and blinks
    • Processing: The light is amber, and Clawd walks around thinking
    • Waiting for approval: The light flashes red, and Clawd makes a troubled face and shows "HELP!"
  • In addition to the elapsed time and the running tool, it also displays subagents, task progress, and background work
  • It can show desktop notifications when a session starts waiting for approval and when a process that took more than 1 minute finishes

Review

Review

The review screen aggregates, from the recorded events, the time Claude spent working and the time it spent waiting for approval.
You can find projects with long approval waits and use that as a chance to revisit your allowed-command settings.

  • Aggregation by day, time of day, and project
  • The most-used tools and the number of launches for each type of subagent
  • A timeline showing state transitions for each session
  • Period selection and CSV download

These records are stored only in a local SQLite database.
Also, the body of prompts and the input contents of tools are neither saved nor displayed.

How to use

It runs on macOS, Linux, and WSL2 on Windows, and requires Python 3.9 or later and curl.
Run the following command inside Claude Code, then start a new session.

/plugin install clawd-session-house --marketplace Lamaglama39/clawd-session-house

For versions of Claude Code earlier than 2.1.275, add the marketplace first and then install.

/plugin marketplace add Lamaglama39/clawd-session-house
/plugin install clawd-session-house@lamaglama39

After that, just open http://127.0.0.1:8765/ in your browser.
Since I've prepared Skills, you can also ask Claude Code to "open Session House" and it will open the dashboard.

How it works

Overall picture

The overall structure is as follows.

First is Claude Code's hooks, the means of knowing the state.
Hooks are commands that Claude Code runs automatically at set timings, such as when a prompt is submitted, a tool is executed, or approval is requested.
Information such as the session ID and working folder is passed to the hook as JSON, so you can tell what happened in which session.

https://code.claude.com/docs/ja/hooks

Next, the hook script sends the received JSON as is to the local server.
The server holds the state for each session ID, and notifies the browser via Server-Sent Events every time the state changes.
Server-Sent Events is a mechanism for continuously sending data from the server to the browser.
The server runs on only Python's standard library, so no additional packages are needed.

Finally, the browser draws Clawd in each tile according to the state it receives.
The server also records the same events in SQLite, and the review screen aggregates and displays those records.

Mapping events to states

Hook events and dashboard states are mapped as follows.

Hook event State
UserPromptSubmit, PreToolUse, PostToolUse Processing
PermissionRequest Waiting for approval
Stop Idle
SessionEnd Ended

However, when you interrupt processing with Esc or deny in the approval dialog, Claude Code does not fire a hook, so the state change can't be detected from hooks alone.
Therefore, after such operations, the tile animation stays as it is until the next prompt is sent. (I'd like to improve this somehow in the future...)

Distributed as a plugin

The mechanism so far is packaged as a Claude Code plugin.

https://code.claude.com/docs/ja/plugins

Hooks included in a plugin are registered automatically upon installation.
Users don't need to edit settings.json, and uninstalling also removes the hooks.
The server starts automatically when a session begins, so users don't even need to think about launching it.

Also, three operations—opening the dashboard, restarting the server, and stopping the server—are provided as skills.
You can call them from inside Claude Code, like /clawd-session-house:open.

Including the web app part, it can be distributed easily with a single command, so plugins are convenient and nice.

In closing

That was the story of visualizing Claude Code sessions in the browser.

Also, this dashboard was made entirely by chatting with Claude Code.
As long as you can extract session state with hooks, how you display it is up to you, so I encourage you all to build a dashboard that suits you and find the best way to manage your sessions.

I hope this article helps session-lost people all over the country.


Claudeならクラスメソッドにお任せください

クラスメソッドは、Anthropic社とリセラー契約を締結しています。各種製品ガイドから、業種別の活用法、フェーズごとのお悩み解決などサービス支援ページにまとめております。まずはご覧いただき、お気軽にご相談ください。

サービス詳細を見る

Share this article

AI白書