# Plan

> Plan Viewer Skill

- Skill: `itamarzand88/plan` (Agent Skill)
- Install (CLI): `npx skillmds@latest add itamarzand88/plan`
- Raw SKILL.md: https://api.skillmd.com/api/skills/itamarzand88/plan/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ItamarZand88 (https://skillmd.com/u/itamarzand88)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/itamarzand88/plan

---

# Plan Viewer Skill

Display Claude Code plan files in a split pane with real-time updates.

## Description

The plan viewer allows you to watch a markdown plan file and display it in a separate terminal pane. As the plan is written or updated, the display automatically refreshes to show the latest content.

## Usage

### Watch a Plan File

```bash
# Watch a plan file and display in split pane
bun run canvas/src/cli.ts watch-plan ~/.claude/plans/my-plan.md

# With custom title
bun run canvas/src/cli.ts watch-plan ~/.claude/plans/my-plan.md --title "Implementation Plan"

# Show in current terminal (no split pane)
bun run canvas/src/cli.ts watch-plan ~/.claude/plans/my-plan.md --no-spawn
```

### Integration with Claude Code Plan Mode

When Claude Code enters plan mode, it writes to a plan file (e.g., `~/.claude/plans/<plan-name>.md`). You can watch this file to see the plan as it's being written:

```bash
# Watch the current plan file
bun run canvas/src/cli.ts watch-plan "C:\Users\YourName\.claude\plans\current-plan.md"
```

## Features

- **Live Updates**: Content refreshes automatically when the file changes
- **Split Pane**: Opens in a separate pane (Windows Terminal, tmux)
- **Scroll Controls**: Navigate long plans with arrow keys
- **Auto-scroll**: Stays at bottom when new content is added (if already at bottom)
- **Markdown Highlighting**: Headers, lists, and bold text are highlighted

## Controls

| Key | Action |
|-----|--------|
| `↑` / `↓` | Scroll up/down |
| `Page Up` / `Page Down` | Scroll by page |
| `g` | Go to top |
| `G` | Go to bottom |
| `q` / `Esc` | Close canvas |

## Configuration

The plan viewer accepts these options:

| Option | Default | Description |
|--------|---------|-------------|
| `--title` | "Plan" | Title shown in the canvas header |
| `--no-spawn` | false | Show in current terminal instead of split pane |

## Example

```bash
# Start watching a plan file
bun run canvas/src/cli.ts watch-plan ./my-plan.md --title "Feature Plan"

# In another terminal, append to the file
echo "## New Section" >> ./my-plan.md
echo "- Task 1" >> ./my-plan.md
echo "- Task 2" >> ./my-plan.md

# The canvas will automatically update to show the new content
```

## Architecture

```
┌─────────────────────┐     writes     ┌──────────────┐
│  Claude Code        │ ─────────────> │  Plan File   │
│  (Plan Mode)        │                │  (.md)       │
└─────────────────────┘                └──────────────┘
                                              │
                                              │ watches
                                              ▼
┌─────────────────────┐     IPC        ┌──────────────┐
│  watch-plan CLI     │ ─────────────> │  Document    │
│  (Controller)       │    update      │  Canvas      │
└─────────────────────┘                └──────────────┘
```

## Troubleshooting

### Canvas doesn't spawn

- Ensure you're running in Windows Terminal, ConEmu, or a tmux session
- Check with `bun run canvas/src/cli.ts env` to see your terminal environment

### Updates not showing

- The file watcher debounces changes (100ms) to avoid excessive updates
- Ensure the file is being saved (not just buffered)
- Check the controller terminal for "File updated" messages

### Connection issues

- The canvas shows "[connecting...]" until IPC is established
- Once connected, it shows "[live]" indicator
- If connection fails, the canvas still shows the initial content

