# Claude Panel

> A real-time context dashboard and ambient screensaver for Claude Code

- **Type:** MCP server
- **Install:** `agentstack add mcp-alex-radaev-claude-panel`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [alex-radaev](https://agentstack.voostack.com/s/alex-radaev)
- **Installs:** 0
- **Category:** [Data & Analytics](https://agentstack.voostack.com/c/data-and-analytics)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [alex-radaev](https://github.com/alex-radaev)
- **Source:** https://github.com/alex-radaev/claude-panel

## Install

```sh
agentstack add mcp-alex-radaev-claude-panel
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

Claude Panel
  
    Claude Code gets its own screen — it decides what you need to see
  

  
  
  

Main screen (Claude's content) → Status dashboard → Ambient screensaver

---

Claude Panel is a persistent TUI that sits next to your Claude Code terminal. Claude autonomously updates the panel with whatever it thinks matters — code it just wrote, a diagram, next steps, or a mood emoji. A structured dashboard tracks the current task, files changed, and key decisions, refreshing after every response. And when you're between tasks, ambient terminal screensavers keep the vibe going.

## Three Screens

| Screen | Managed by | What it shows |
|--------|-----------|---------------|
| **Main** | **Claude** | Whatever Claude thinks is useful right now — code snippets, explanations, diagrams, progress checklists, mood emoji. Full creative control. |
| **Status** | **Claude** (AI curator) | Structured dashboard: current task, files changed, decisions made. Auto-updates after every response. |
| **Ambient** | **You** | Terminal screensaver of your choice. Plays when nothing else needs your attention. |

**Claude manages the content, you manage the screensaver.** The main and status screens update automatically — Claude reads the conversation, decides what's worth pinning on screen, and writes it. No manual commands needed.

## Ambient Screensavers

Twelve built-in terminal animations ship with the package. Navigate with arrow keys or `panel(show="ambient")`.

aurora

tokyo-drift

Also available: `neon-dreams` | `neon-street` | `space-flight` | `rain-city` | `city-lights` | `matrix` | `noir` | `banquet` | `dvd-bounce` | `synthwave`

All screensavers are bundled with the package — they work out of the box on a fresh install.

### Custom screensavers

Drop a `.py` file in `~/.claude-panel/screensavers/` and it becomes available immediately. User screensavers override bundled ones of the same name, so you can customize any built-in screensaver without touching the package.

```bash
# List available screensavers
panel(screensaver="rain-city")

# Or ask Claude to create one
# "make me a screensaver with falling snow"
```

Screensavers are plain Python scripts that draw to a Rich canvas. [Creating your own takes ~10 lines.](CONTRIBUTING.md#creating-a-screensaver)

## Install

```bash
# As a Claude Code plugin (recommended)
claude plugin marketplace add alex-radaev/claude-panel
claude plugin install claude-panel@claude-panel
```

Manual installation

```bash
git clone https://github.com/alex-radaev/claude-panel
cd claude-panel
uv sync
```

Then add to your MCP config (`~/.claude/settings.json` or `.mcp.json`).

## Usage

The panel **opens automatically** when you start a Claude Code session — an iTerm2 (macOS) or Windows Terminal (WSL) split pane launches with the viewer. No manual commands needed.

To disable auto-open, set `"auto_open": false` in `~/.claude-panel/config.json`.

You can also open it manually:

```bash
# From Claude Code
panel_open()

# Manual
uv run claude-panel
```

Once running, Claude takes over. The main and status screens update on their own. You can switch views:

```python
panel(show="ambient")              # switch to screensaver
panel(show="main")                 # switch to main canvas
panel(show="status")               # switch to status dashboard
panel(screensaver="tokyo-drift")   # change screensaver
```

| Key | Action |
|-----|--------|
| `q` | Quit viewer |
| `` | Cycle screens |
| `c` | Clear panel |

> **iTerm2 tip:** The panel pane may look washed out because iTerm2 dims inactive split panes by default. To fix: **Settings > Appearance > Dimming** and uncheck **Dim inactive split panes**.

## How It Works

```
 Claude Code session              iTerm2 Split Pane
┌──────────────────────┐         ┌──────────────────┐
│                      │         │                  │
│  Main Claude         │         │  Textual TUI     │
│  + Background agents │         │  Viewer          │
│  + Stop hook curator │         │                  │
│                      │         │                  │
└──────────┬───────────┘         └────────┬─────────┘
           │  WRITES                      │ POLLS
           └──────►  per-session   ◄──────┘
                     state.json
            ~/.claude-panel/sessions//
```

1. **Claude responds** — a Stop hook runs the AI curator (Haiku). It reads the conversation, decides what changed, and updates the **status screen**.
2. **Claude spawns a background agent** — updates the **main screen** with whatever content is worth showing. Zero conversation noise.
3. **The viewer polls** the state file every 300ms and re-renders instantly.

**Session isolation:** Each Claude Code session gets its own state. Run multiple sessions — they don't interfere. The viewer tracks whichever session is active.

## Review Notifications

The panel can show GitHub PRs waiting for your review directly on the main screen. A shared background poller checks `gh search prs --review-requested=@me` every 2 minutes and surfaces results as a clickable list with links that open in your browser.

- **Auto-appears** when you have pending reviews
- **Auto-dismisses** when you approve, comment, or request changes
- **One poller** shared across all concurrent sessions (no duplicate API calls)
- **Clickable links** — click a PR title to open it in the browser
- Filter by GitHub org via `review_notifications.org` in config
- Disable entirely with `"review_notifications": false`

## Configuration

`~/.claude-panel/config.json`:

```json
{
  "auto_open": true,
  "model": "claude-haiku-4-5-20251001",
  "favorite_screensaver": "tokyo-drift",
  "update_every_n": 1,
  "curator_personality": "playful",
  "review_notifications": {
    "enabled": true,
    "poll_interval_seconds": 120,
    "org": "my-org"
  }
}
```

| Option | Values | Description |
|--------|--------|-------------|
| `auto_open` | `true`, `false` | Automatically open the panel on session start (default: `true`) |
| `model` | Any Claude model ID | Model for the status curator (default: Haiku) |
| `favorite_screensaver` | Screensaver name | Default ambient screensaver |
| `update_every_n` | Number | Update status every N responses (1 = every time) |
| `curator_personality` | `"playful"`, `"professional"` | Curator tone — playful adds humor and emoji combos, professional is concise and factual |
| `review_notifications` | Object or `false` | GitHub review request notifications (default: enabled) |
| `review_notifications.enabled` | `true`, `false` | Toggle review notifications on/off |
| `review_notifications.poll_interval_seconds` | Number | How often to check GitHub for new reviews (default: `120`) |
| `review_notifications.org` | GitHub org name | Only show reviews from this org (omit for all orgs) |

## Contributing

Contributions welcome — especially new screensavers. See [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide, including a screensaver template that gets you started in ~10 lines of Python.

## License

MIT

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [alex-radaev](https://github.com/alex-radaev)
- **Source:** [alex-radaev/claude-panel](https://github.com/alex-radaev/claude-panel)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-alex-radaev-claude-panel
- Seller: https://agentstack.voostack.com/s/alex-radaev
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
