A local web dashboard that monitors all your GitHub Copilot CLI sessions in real-time
Project description
Copilot Session Dashboard
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.jsonlfiles from your Copilot session directories. For richer session history (summaries, checkpoints), enable the SESSION_STORE experimental feature: add"experimental": trueto~/.copilot/config.jsonand start a new Copilot session.
Installation
Option 1: From PyPI
pip install ghcp-cli-dashboard
Option 2: From Source
# Clone the repo
git clone https://github.com/JeffSteinbok/ghcpCliDashboard.git
cd ghcpCliDashboard
# Install in editable mode
pip install -e .
Usage
# 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✦ Claudebadge. - 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 for details.
- Settings menu — ☰ hamburger menu in the header with toggles for autostart-on-login and remote sync.
- Upgrade command —
copilot-dashboard upgradestops 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_userorask_permissionpending) - 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_userquestion 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):
OneDriveCommercial(preferred — prevents data leakage to personal accounts)OneDriveConsumer- User Documents folder
Configuration (~/.copilot/dashboard-config.json):
{
"sync": {
"enabled": true,
"folder": "D:\\MyCloudSync"
}
}
- Set
"enabled": falseto 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ghcp_cli_dashboard-0.9.2.tar.gz.
File metadata
- Download URL: ghcp_cli_dashboard-0.9.2.tar.gz
- Upload date:
- Size: 363.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9b171adf1314cbc2958ec8aa6de337716ff47993ecb4e565ab133b2fc11fbbd
|
|
| MD5 |
27e8edccb6e46cef388169fa030323e7
|
|
| BLAKE2b-256 |
340b80ad04362cd9bee57d50eb26ac9301c9644446e92d0460cbd0b7e62c51f0
|
Provenance
The following attestation bundles were made for ghcp_cli_dashboard-0.9.2.tar.gz:
Publisher:
publish-pypi.yml on JeffSteinbok/ghcpCliDashboard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ghcp_cli_dashboard-0.9.2.tar.gz -
Subject digest:
f9b171adf1314cbc2958ec8aa6de337716ff47993ecb4e565ab133b2fc11fbbd - Sigstore transparency entry: 1107719877
- Sigstore integration time:
-
Permalink:
JeffSteinbok/ghcpCliDashboard@fd729590e79782e5c18f587125342f6ade95ce7b -
Branch / Tag:
refs/tags/v0.9.2 - Owner: https://github.com/JeffSteinbok
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@fd729590e79782e5c18f587125342f6ade95ce7b -
Trigger Event:
release
-
Statement type:
File details
Details for the file ghcp_cli_dashboard-0.9.2-py3-none-any.whl.
File metadata
- Download URL: ghcp_cli_dashboard-0.9.2-py3-none-any.whl
- Upload date:
- Size: 344.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0c89f190f2c46f0053a917f07ff663d1c7f73a4315745013c1ddc96269d19f0
|
|
| MD5 |
8d69345179827a7b55ea807f6c7a016e
|
|
| BLAKE2b-256 |
d85fc47c9fdc76c7beea32dec158a619bdaf5deac51ac14d496427bef51497d2
|
Provenance
The following attestation bundles were made for ghcp_cli_dashboard-0.9.2-py3-none-any.whl:
Publisher:
publish-pypi.yml on JeffSteinbok/ghcpCliDashboard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ghcp_cli_dashboard-0.9.2-py3-none-any.whl -
Subject digest:
d0c89f190f2c46f0053a917f07ff663d1c7f73a4315745013c1ddc96269d19f0 - Sigstore transparency entry: 1107719878
- Sigstore integration time:
-
Permalink:
JeffSteinbok/ghcpCliDashboard@fd729590e79782e5c18f587125342f6ade95ce7b -
Branch / Tag:
refs/tags/v0.9.2 - Owner: https://github.com/JeffSteinbok
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@fd729590e79782e5c18f587125342f6ade95ce7b -
Trigger Event:
release
-
Statement type: