Metadata-Version: 2.4
Name: ghcp-cli-dashboard
Version: 0.8.0
Summary: A local web dashboard that monitors all your GitHub Copilot CLI sessions in real-time
Home-page: https://github.com/JeffSteinbok/ghcpCliSessionDashboard
Author: Jeff Steinbok
License: MIT
Keywords: copilot github cli dashboard session monitor
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastapi
Requires-Dist: uvicorn
Requires-Dist: pywinauto; sys_platform == "win32"
Requires-Dist: pywin32; sys_platform == "win32"
Requires-Dist: pywinauto; sys_platform == "win32"
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Copilot Session Dashboard
[![GitHub](https://img.shields.io/badge/GitHub-ghcpCliDashboard-blue?logo=github)](https://github.com/JeffSteinbok/ghcpCliDashboard)
[![GitHub release](https://img.shields.io/github/v/release/JeffSteinbok/ghcpCliDashboard)](https://github.com/JeffSteinbok/ghcpCliDashboard/releases)

[![CI](https://github.com/JeffSteinbok/ghcpCliDashboard/actions/workflows/ci.yml/badge.svg)](https://github.com/JeffSteinbok/ghcpCliDashboard/actions/workflows/ci.yml)
[![Release](https://github.com/JeffSteinbok/ghcpCliDashboard/actions/workflows/release.yml/badge.svg)](https://github.com/JeffSteinbok/ghcpCliDashboard/actions/workflows/release.yml)

[![Publish to PyPI](https://github.com/JeffSteinbok/ghcpCliDashboard/actions/workflows/publish-pypi.yml/badge.svg)](https://github.com/JeffSteinbok/ghcpCliDashboard/actions/workflows/publish-pypi.yml)
[![PyPI version](https://img.shields.io/pypi/v/ghcp-cli-dashboard.svg?v=0.3.2)](https://pypi.org/project/ghcp-cli-dashboard/)
[![OpenAPI](https://img.shields.io/badge/OpenAPI-spec-green?logo=openapiinitiative)](https://editor.swagger.io/?url=https://raw.githubusercontent.com/JeffSteinbok/ghcpCliDashboard/main/docs/openapi.json)

A local web dashboard that monitors all your GitHub Copilot CLI and Claude Code sessions in real-time.
Designed for power users running multiple AI coding sessions simultaneously.

> [!TIP]
> The dashboard works out of the box by reading `events.jsonl` files from your Copilot session directories. For richer session history (summaries, checkpoints), enable the **SESSION_STORE** experimental feature: add `"experimental": true` to `~/.copilot/config.json` and start a new Copilot session.

![Dashboard Screenshot](https://raw.githubusercontent.com/JeffSteinbok/ghcpCliDashboard/main/screenshot.png)

## Installation

### Option 1: From PyPI

```bash
pip install ghcp-cli-dashboard
```

### Option 2: From Source

```bash
# Clone the repo
git clone https://github.com/JeffSteinbok/ghcpCliDashboard.git
cd ghcpCliDashboard

# Install in editable mode
pip install -e .
```

## Usage

```bash
# Start the dashboard
copilot-dashboard start

# Start in background
copilot-dashboard start --background

# Check status
copilot-dashboard status

# Stop
copilot-dashboard stop

# Upgrade to the latest version (restarts automatically if running)
copilot-dashboard upgrade

# Start automatically at login (Windows)
copilot-dashboard autostart
copilot-dashboard autostart --port 8080   # custom port
copilot-dashboard autostart-remove        # remove login startup
```

Open **http://localhost:5111** in your browser.

## Features

### ✨ New in v0.7

- **Claude Code support** — automatically discovers Claude Code sessions from `~/.claude/projects/`. Active Claude sessions appear alongside Copilot sessions with a `✦ Claude` badge.
- **Cross-machine sync** — see active sessions from all your machines in one dashboard, powered by OneDrive or any cloud-synced folder. See [Cross-Machine Sync](#cross-machine-sync) for details.
- **Settings menu** — ☰ hamburger menu in the header with toggles for autostart-on-login and remote sync.
- **Upgrade command** — `copilot-dashboard upgrade` stops the server, upgrades via pip, and restarts automatically.

### Session States
- **Working / Thinking** (green) — session is actively running tools or reasoning
- **Waiting** (yellow) — session needs your input (`ask_user` or `ask_permission` pending)
- **Idle** (blue) — session is done and ready for your next task

### Key Features
- **Desktop notifications** — get alerts when sessions transition between states
- **Focus window** — bring an active session's terminal to the foreground with one click
- **Restart commands** — copy-pasteable `copilot --resume <id>` commands for every session
- **Waiting context** — shows *what* a waiting session is asking (e.g. the `ask_user` question and choices)
- **Background tasks** — shows count of running subagents per session
- **Session details** — click any session to see checkpoints, recent tool output, references, and conversation history
- **Tile & List views** — compact card grid or detailed expandable rows
- **9 color palettes** and light/dark mode

### Cross-Machine Sync

See active sessions from all your machines in one dashboard — powered by OneDrive, Google Drive, or any cloud-synced folder. No Git commits needed.

**How it works:**
- On each poll cycle, the dashboard exports your active sessions as JSON files to a shared cloud folder
- Other machines read those files and display them in a **"Remote Sessions"** section under Active
- Each machine only writes to its own subfolder — no sync conflicts

**Auto-detection (priority order):**
1. `OneDriveCommercial` (preferred — prevents data leakage to personal accounts)
2. `OneDriveConsumer`
3. User Documents folder

**Configuration** (`~/.copilot/dashboard-config.json`):
```json
{
  "sync": {
    "enabled": true,
    "folder": "D:\\MyCloudSync"
  }
}
```
- Set `"enabled": false` to disable sync entirely
- Set `"folder"` to override auto-detection with a specific path

**What remote sessions show:**
- Live state indicators (working, waiting, idle)
- Session summary, intent, branch, MCP servers, turn/checkpoint counts
- Machine name badge (e.g. `🖥️ LAPTOP-HOME`)

**What remote sessions don't show:**
- No detail drill-down (checkpoints, turns, files)
- No focus or kill actions (those are local-only)
- No past/previous sessions from remote machines

## Prerequisites

| Package | Purpose |
|---------|---------|
| `fastapi` | Web framework with auto-generated OpenAPI docs |
| `uvicorn` | ASGI server |
| `pywin32` | Window focus and process detection (Windows-only) |

Both are installed automatically via `pip install ghcp-cli-dashboard`.

For more details on architecture, data sources, and API endpoints, see [DEVELOPMENT.md](DEVELOPMENT.md).
