ghcp-cli-dashboard 0.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ghcp_cli_dashboard-0.1.3/LICENSE +21 -0
- ghcp_cli_dashboard-0.1.3/MANIFEST.in +6 -0
- ghcp_cli_dashboard-0.1.3/PKG-INFO +133 -0
- ghcp_cli_dashboard-0.1.3/README.md +98 -0
- ghcp_cli_dashboard-0.1.3/ghcp_cli_dashboard.egg-info/PKG-INFO +133 -0
- ghcp_cli_dashboard-0.1.3/ghcp_cli_dashboard.egg-info/SOURCES.txt +20 -0
- ghcp_cli_dashboard-0.1.3/ghcp_cli_dashboard.egg-info/dependency_links.txt +1 -0
- ghcp_cli_dashboard-0.1.3/ghcp_cli_dashboard.egg-info/entry_points.txt +2 -0
- ghcp_cli_dashboard-0.1.3/ghcp_cli_dashboard.egg-info/requires.txt +4 -0
- ghcp_cli_dashboard-0.1.3/ghcp_cli_dashboard.egg-info/top_level.txt +1 -0
- ghcp_cli_dashboard-0.1.3/pyproject.toml +62 -0
- ghcp_cli_dashboard-0.1.3/requirements.txt +1 -0
- ghcp_cli_dashboard-0.1.3/setup.cfg +4 -0
- ghcp_cli_dashboard-0.1.3/setup.py +54 -0
- ghcp_cli_dashboard-0.1.3/src/__init__.py +5 -0
- ghcp_cli_dashboard-0.1.3/src/__version__.py +4 -0
- ghcp_cli_dashboard-0.1.3/src/dashboard_app.py +365 -0
- ghcp_cli_dashboard-0.1.3/src/process_tracker.py +669 -0
- ghcp_cli_dashboard-0.1.3/src/session_dashboard.py +216 -0
- ghcp_cli_dashboard-0.1.3/src/static/css/dashboard.css +310 -0
- ghcp_cli_dashboard-0.1.3/src/static/js/dashboard.js +529 -0
- ghcp_cli_dashboard-0.1.3/src/templates/dashboard.html +116 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Jeff Steinbok
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ghcp-cli-dashboard
|
|
3
|
+
Version: 0.1.3
|
|
4
|
+
Summary: A local web dashboard that monitors all your GitHub Copilot CLI sessions in real-time
|
|
5
|
+
Home-page: https://github.com/JeffSteinbok/ghcpCliSessionDashboard
|
|
6
|
+
Author: Jeff Steinbok
|
|
7
|
+
License: MIT
|
|
8
|
+
Keywords: copilot github cli dashboard session monitor
|
|
9
|
+
Classifier: Development Status :: 4 - Beta
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
18
|
+
Classifier: Topic :: Utilities
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
Requires-Dist: flask
|
|
23
|
+
Requires-Dist: pywin32; sys_platform == "win32"
|
|
24
|
+
Dynamic: author
|
|
25
|
+
Dynamic: classifier
|
|
26
|
+
Dynamic: description
|
|
27
|
+
Dynamic: description-content-type
|
|
28
|
+
Dynamic: home-page
|
|
29
|
+
Dynamic: keywords
|
|
30
|
+
Dynamic: license
|
|
31
|
+
Dynamic: license-file
|
|
32
|
+
Dynamic: requires-dist
|
|
33
|
+
Dynamic: requires-python
|
|
34
|
+
Dynamic: summary
|
|
35
|
+
|
|
36
|
+
# Copilot Session Dashboard
|
|
37
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard)
|
|
38
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard/releases)
|
|
39
|
+
|
|
40
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard/actions/workflows/ci.yml)
|
|
41
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard/actions/workflows/release.yml)
|
|
42
|
+
|
|
43
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard/actions/workflows/publish-pypi.yml)
|
|
44
|
+
[](https://pypi.org/project/ghcp-cli-dashboard/)
|
|
45
|
+
|
|
46
|
+
A local web dashboard that monitors all your GitHub Copilot CLI sessions in real-time.
|
|
47
|
+
Designed for power users running multiple Copilot sessions simultaneously.
|
|
48
|
+
|
|
49
|
+

|
|
50
|
+
|
|
51
|
+
> [!IMPORTANT]
|
|
52
|
+
> The dashboard requires the **SESSION_STORE** experimental feature to be enabled in the Copilot CLI. Without it, session history will not be available. Add `"experimental": true` to `~/.copilot/config.json`, then start a new Copilot session. The `session-store.db` file will be created automatically on first run.
|
|
53
|
+
|
|
54
|
+
## Installation
|
|
55
|
+
|
|
56
|
+
### Option 1: From PyPI
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pip install ghcp-cli-dashboard
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Option 2: From Source
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Clone the repo
|
|
66
|
+
git clone https://github.com/JeffSteinbok/ghcpCliDashboard.git
|
|
67
|
+
cd ghcpCliDashboard
|
|
68
|
+
|
|
69
|
+
# Install in editable mode
|
|
70
|
+
pip install -e .
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Usage
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Start the dashboard
|
|
77
|
+
copilot-dashboard start
|
|
78
|
+
|
|
79
|
+
# Start in background
|
|
80
|
+
copilot-dashboard start --background
|
|
81
|
+
|
|
82
|
+
# Check status
|
|
83
|
+
copilot-dashboard status
|
|
84
|
+
|
|
85
|
+
# Stop
|
|
86
|
+
copilot-dashboard stop
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Open **http://localhost:5111** in your browser.
|
|
90
|
+
|
|
91
|
+
## Features
|
|
92
|
+
|
|
93
|
+
### Session States
|
|
94
|
+
- **Working / Thinking** (green) — session is actively running tools or reasoning
|
|
95
|
+
- **Waiting** (yellow) — session needs your input (`ask_user` or `ask_permission` pending)
|
|
96
|
+
- **Idle** (blue) — session is done and ready for your next task
|
|
97
|
+
|
|
98
|
+
### Desktop Notifications
|
|
99
|
+
Click the 🔕 button in the header to enable browser notifications. You'll get an alert whenever a session transitions from working to waiting or idle, so you can stay on top of sessions that need attention without watching the dashboard.
|
|
100
|
+
|
|
101
|
+
### Views
|
|
102
|
+
- **Tile view** (default) — compact card grid to see all sessions at a glance
|
|
103
|
+
- **List view** — detailed expandable rows with full session info
|
|
104
|
+
- Toggle between views with the buttons next to the Active/Previous tabs
|
|
105
|
+
|
|
106
|
+
### Session Monitoring
|
|
107
|
+
- **Active vs Previous** — sessions with a running `copilot.exe` process appear in the Active tab
|
|
108
|
+
- **Waiting context** — when a session is waiting, shows *what* it's asking (e.g. the `ask_user` question and choices)
|
|
109
|
+
- **Background tasks** — shows count of running subagents per session
|
|
110
|
+
- **YOLO mode indicator** — shows 🔥 YOLO badge for sessions running with `--yolo`
|
|
111
|
+
- **MCP servers** — displays connected MCP servers (e.g. bluebird, icm, github) for both active and past sessions
|
|
112
|
+
- **Project grouping** — sessions are auto-categorized by repo, working directory, or content analysis
|
|
113
|
+
|
|
114
|
+
### Actions
|
|
115
|
+
- **Focus window** — click 📺 on an active session to bring its terminal window to the foreground
|
|
116
|
+
- **Restart commands** — each session has a copy-pasteable `copilot --resume <id>` command (includes `--yolo` only if the session was running with it)
|
|
117
|
+
- **Session details** — click any session to see checkpoints, recent tool output, references, and conversation history
|
|
118
|
+
|
|
119
|
+
### Appearance
|
|
120
|
+
- **Light/Dark mode** toggle
|
|
121
|
+
- **Color palettes** — Default and Pink themes
|
|
122
|
+
- **Auto-refresh** — active sessions poll every 5s, full session list every 30s; expanded sections and collapsed groups persist across refreshes
|
|
123
|
+
|
|
124
|
+
## Prerequisites
|
|
125
|
+
|
|
126
|
+
| Package | Purpose |
|
|
127
|
+
|---------|---------|
|
|
128
|
+
| `flask` | Web server |
|
|
129
|
+
| `pywin32` | Window focus and process detection (Windows-only) |
|
|
130
|
+
|
|
131
|
+
Both are installed automatically via `pip install ghcp-cli-dashboard`.
|
|
132
|
+
|
|
133
|
+
For more details on architecture, data sources, and API endpoints, see [DEVELOPMENT.md](DEVELOPMENT.md).
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Copilot Session Dashboard
|
|
2
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard)
|
|
3
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard/releases)
|
|
4
|
+
|
|
5
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard/actions/workflows/ci.yml)
|
|
6
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard/actions/workflows/release.yml)
|
|
7
|
+
|
|
8
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard/actions/workflows/publish-pypi.yml)
|
|
9
|
+
[](https://pypi.org/project/ghcp-cli-dashboard/)
|
|
10
|
+
|
|
11
|
+
A local web dashboard that monitors all your GitHub Copilot CLI sessions in real-time.
|
|
12
|
+
Designed for power users running multiple Copilot sessions simultaneously.
|
|
13
|
+
|
|
14
|
+

|
|
15
|
+
|
|
16
|
+
> [!IMPORTANT]
|
|
17
|
+
> The dashboard requires the **SESSION_STORE** experimental feature to be enabled in the Copilot CLI. Without it, session history will not be available. Add `"experimental": true` to `~/.copilot/config.json`, then start a new Copilot session. The `session-store.db` file will be created automatically on first run.
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
### Option 1: From PyPI
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pip install ghcp-cli-dashboard
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Option 2: From Source
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Clone the repo
|
|
31
|
+
git clone https://github.com/JeffSteinbok/ghcpCliDashboard.git
|
|
32
|
+
cd ghcpCliDashboard
|
|
33
|
+
|
|
34
|
+
# Install in editable mode
|
|
35
|
+
pip install -e .
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Usage
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Start the dashboard
|
|
42
|
+
copilot-dashboard start
|
|
43
|
+
|
|
44
|
+
# Start in background
|
|
45
|
+
copilot-dashboard start --background
|
|
46
|
+
|
|
47
|
+
# Check status
|
|
48
|
+
copilot-dashboard status
|
|
49
|
+
|
|
50
|
+
# Stop
|
|
51
|
+
copilot-dashboard stop
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Open **http://localhost:5111** in your browser.
|
|
55
|
+
|
|
56
|
+
## Features
|
|
57
|
+
|
|
58
|
+
### Session States
|
|
59
|
+
- **Working / Thinking** (green) — session is actively running tools or reasoning
|
|
60
|
+
- **Waiting** (yellow) — session needs your input (`ask_user` or `ask_permission` pending)
|
|
61
|
+
- **Idle** (blue) — session is done and ready for your next task
|
|
62
|
+
|
|
63
|
+
### Desktop Notifications
|
|
64
|
+
Click the 🔕 button in the header to enable browser notifications. You'll get an alert whenever a session transitions from working to waiting or idle, so you can stay on top of sessions that need attention without watching the dashboard.
|
|
65
|
+
|
|
66
|
+
### Views
|
|
67
|
+
- **Tile view** (default) — compact card grid to see all sessions at a glance
|
|
68
|
+
- **List view** — detailed expandable rows with full session info
|
|
69
|
+
- Toggle between views with the buttons next to the Active/Previous tabs
|
|
70
|
+
|
|
71
|
+
### Session Monitoring
|
|
72
|
+
- **Active vs Previous** — sessions with a running `copilot.exe` process appear in the Active tab
|
|
73
|
+
- **Waiting context** — when a session is waiting, shows *what* it's asking (e.g. the `ask_user` question and choices)
|
|
74
|
+
- **Background tasks** — shows count of running subagents per session
|
|
75
|
+
- **YOLO mode indicator** — shows 🔥 YOLO badge for sessions running with `--yolo`
|
|
76
|
+
- **MCP servers** — displays connected MCP servers (e.g. bluebird, icm, github) for both active and past sessions
|
|
77
|
+
- **Project grouping** — sessions are auto-categorized by repo, working directory, or content analysis
|
|
78
|
+
|
|
79
|
+
### Actions
|
|
80
|
+
- **Focus window** — click 📺 on an active session to bring its terminal window to the foreground
|
|
81
|
+
- **Restart commands** — each session has a copy-pasteable `copilot --resume <id>` command (includes `--yolo` only if the session was running with it)
|
|
82
|
+
- **Session details** — click any session to see checkpoints, recent tool output, references, and conversation history
|
|
83
|
+
|
|
84
|
+
### Appearance
|
|
85
|
+
- **Light/Dark mode** toggle
|
|
86
|
+
- **Color palettes** — Default and Pink themes
|
|
87
|
+
- **Auto-refresh** — active sessions poll every 5s, full session list every 30s; expanded sections and collapsed groups persist across refreshes
|
|
88
|
+
|
|
89
|
+
## Prerequisites
|
|
90
|
+
|
|
91
|
+
| Package | Purpose |
|
|
92
|
+
|---------|---------|
|
|
93
|
+
| `flask` | Web server |
|
|
94
|
+
| `pywin32` | Window focus and process detection (Windows-only) |
|
|
95
|
+
|
|
96
|
+
Both are installed automatically via `pip install ghcp-cli-dashboard`.
|
|
97
|
+
|
|
98
|
+
For more details on architecture, data sources, and API endpoints, see [DEVELOPMENT.md](DEVELOPMENT.md).
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ghcp-cli-dashboard
|
|
3
|
+
Version: 0.1.3
|
|
4
|
+
Summary: A local web dashboard that monitors all your GitHub Copilot CLI sessions in real-time
|
|
5
|
+
Home-page: https://github.com/JeffSteinbok/ghcpCliSessionDashboard
|
|
6
|
+
Author: Jeff Steinbok
|
|
7
|
+
License: MIT
|
|
8
|
+
Keywords: copilot github cli dashboard session monitor
|
|
9
|
+
Classifier: Development Status :: 4 - Beta
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
18
|
+
Classifier: Topic :: Utilities
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
Requires-Dist: flask
|
|
23
|
+
Requires-Dist: pywin32; sys_platform == "win32"
|
|
24
|
+
Dynamic: author
|
|
25
|
+
Dynamic: classifier
|
|
26
|
+
Dynamic: description
|
|
27
|
+
Dynamic: description-content-type
|
|
28
|
+
Dynamic: home-page
|
|
29
|
+
Dynamic: keywords
|
|
30
|
+
Dynamic: license
|
|
31
|
+
Dynamic: license-file
|
|
32
|
+
Dynamic: requires-dist
|
|
33
|
+
Dynamic: requires-python
|
|
34
|
+
Dynamic: summary
|
|
35
|
+
|
|
36
|
+
# Copilot Session Dashboard
|
|
37
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard)
|
|
38
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard/releases)
|
|
39
|
+
|
|
40
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard/actions/workflows/ci.yml)
|
|
41
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard/actions/workflows/release.yml)
|
|
42
|
+
|
|
43
|
+
[](https://github.com/JeffSteinbok/ghcpCliSessionDashboard/actions/workflows/publish-pypi.yml)
|
|
44
|
+
[](https://pypi.org/project/ghcp-cli-dashboard/)
|
|
45
|
+
|
|
46
|
+
A local web dashboard that monitors all your GitHub Copilot CLI sessions in real-time.
|
|
47
|
+
Designed for power users running multiple Copilot sessions simultaneously.
|
|
48
|
+
|
|
49
|
+

|
|
50
|
+
|
|
51
|
+
> [!IMPORTANT]
|
|
52
|
+
> The dashboard requires the **SESSION_STORE** experimental feature to be enabled in the Copilot CLI. Without it, session history will not be available. Add `"experimental": true` to `~/.copilot/config.json`, then start a new Copilot session. The `session-store.db` file will be created automatically on first run.
|
|
53
|
+
|
|
54
|
+
## Installation
|
|
55
|
+
|
|
56
|
+
### Option 1: From PyPI
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pip install ghcp-cli-dashboard
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Option 2: From Source
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Clone the repo
|
|
66
|
+
git clone https://github.com/JeffSteinbok/ghcpCliDashboard.git
|
|
67
|
+
cd ghcpCliDashboard
|
|
68
|
+
|
|
69
|
+
# Install in editable mode
|
|
70
|
+
pip install -e .
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Usage
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Start the dashboard
|
|
77
|
+
copilot-dashboard start
|
|
78
|
+
|
|
79
|
+
# Start in background
|
|
80
|
+
copilot-dashboard start --background
|
|
81
|
+
|
|
82
|
+
# Check status
|
|
83
|
+
copilot-dashboard status
|
|
84
|
+
|
|
85
|
+
# Stop
|
|
86
|
+
copilot-dashboard stop
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Open **http://localhost:5111** in your browser.
|
|
90
|
+
|
|
91
|
+
## Features
|
|
92
|
+
|
|
93
|
+
### Session States
|
|
94
|
+
- **Working / Thinking** (green) — session is actively running tools or reasoning
|
|
95
|
+
- **Waiting** (yellow) — session needs your input (`ask_user` or `ask_permission` pending)
|
|
96
|
+
- **Idle** (blue) — session is done and ready for your next task
|
|
97
|
+
|
|
98
|
+
### Desktop Notifications
|
|
99
|
+
Click the 🔕 button in the header to enable browser notifications. You'll get an alert whenever a session transitions from working to waiting or idle, so you can stay on top of sessions that need attention without watching the dashboard.
|
|
100
|
+
|
|
101
|
+
### Views
|
|
102
|
+
- **Tile view** (default) — compact card grid to see all sessions at a glance
|
|
103
|
+
- **List view** — detailed expandable rows with full session info
|
|
104
|
+
- Toggle between views with the buttons next to the Active/Previous tabs
|
|
105
|
+
|
|
106
|
+
### Session Monitoring
|
|
107
|
+
- **Active vs Previous** — sessions with a running `copilot.exe` process appear in the Active tab
|
|
108
|
+
- **Waiting context** — when a session is waiting, shows *what* it's asking (e.g. the `ask_user` question and choices)
|
|
109
|
+
- **Background tasks** — shows count of running subagents per session
|
|
110
|
+
- **YOLO mode indicator** — shows 🔥 YOLO badge for sessions running with `--yolo`
|
|
111
|
+
- **MCP servers** — displays connected MCP servers (e.g. bluebird, icm, github) for both active and past sessions
|
|
112
|
+
- **Project grouping** — sessions are auto-categorized by repo, working directory, or content analysis
|
|
113
|
+
|
|
114
|
+
### Actions
|
|
115
|
+
- **Focus window** — click 📺 on an active session to bring its terminal window to the foreground
|
|
116
|
+
- **Restart commands** — each session has a copy-pasteable `copilot --resume <id>` command (includes `--yolo` only if the session was running with it)
|
|
117
|
+
- **Session details** — click any session to see checkpoints, recent tool output, references, and conversation history
|
|
118
|
+
|
|
119
|
+
### Appearance
|
|
120
|
+
- **Light/Dark mode** toggle
|
|
121
|
+
- **Color palettes** — Default and Pink themes
|
|
122
|
+
- **Auto-refresh** — active sessions poll every 5s, full session list every 30s; expanded sections and collapsed groups persist across refreshes
|
|
123
|
+
|
|
124
|
+
## Prerequisites
|
|
125
|
+
|
|
126
|
+
| Package | Purpose |
|
|
127
|
+
|---------|---------|
|
|
128
|
+
| `flask` | Web server |
|
|
129
|
+
| `pywin32` | Window focus and process detection (Windows-only) |
|
|
130
|
+
|
|
131
|
+
Both are installed automatically via `pip install ghcp-cli-dashboard`.
|
|
132
|
+
|
|
133
|
+
For more details on architecture, data sources, and API endpoints, see [DEVELOPMENT.md](DEVELOPMENT.md).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
MANIFEST.in
|
|
3
|
+
README.md
|
|
4
|
+
pyproject.toml
|
|
5
|
+
requirements.txt
|
|
6
|
+
setup.py
|
|
7
|
+
ghcp_cli_dashboard.egg-info/PKG-INFO
|
|
8
|
+
ghcp_cli_dashboard.egg-info/SOURCES.txt
|
|
9
|
+
ghcp_cli_dashboard.egg-info/dependency_links.txt
|
|
10
|
+
ghcp_cli_dashboard.egg-info/entry_points.txt
|
|
11
|
+
ghcp_cli_dashboard.egg-info/requires.txt
|
|
12
|
+
ghcp_cli_dashboard.egg-info/top_level.txt
|
|
13
|
+
src/__init__.py
|
|
14
|
+
src/__version__.py
|
|
15
|
+
src/dashboard_app.py
|
|
16
|
+
src/process_tracker.py
|
|
17
|
+
src/session_dashboard.py
|
|
18
|
+
src/static/css/dashboard.css
|
|
19
|
+
src/static/js/dashboard.js
|
|
20
|
+
src/templates/dashboard.html
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
src
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
[tool.ruff]
|
|
2
|
+
line-length = 100
|
|
3
|
+
target-version = "py311"
|
|
4
|
+
|
|
5
|
+
[tool.ruff.format]
|
|
6
|
+
quote-style = "double"
|
|
7
|
+
indent-style = "space"
|
|
8
|
+
line-ending = "auto"
|
|
9
|
+
|
|
10
|
+
[tool.ruff.lint]
|
|
11
|
+
select = [
|
|
12
|
+
"E", # pycodestyle errors
|
|
13
|
+
"W", # pycodestyle warnings
|
|
14
|
+
"F", # pyflakes
|
|
15
|
+
"I", # isort
|
|
16
|
+
"C", # flake8-comprehensions
|
|
17
|
+
"B", # flake8-bugbear
|
|
18
|
+
"UP", # pyupgrade
|
|
19
|
+
"RUF", # ruff-specific rules
|
|
20
|
+
]
|
|
21
|
+
ignore = [
|
|
22
|
+
"E501", # line too long — ruff format handles Python, but not embedded HTML/JS strings
|
|
23
|
+
"B008", # do not perform function calls in argument defaults
|
|
24
|
+
"C901", # too complex
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
[tool.ruff.lint.per-file-ignores]
|
|
28
|
+
"__init__.py" = ["F401"]
|
|
29
|
+
|
|
30
|
+
[tool.pytest.ini_options]
|
|
31
|
+
testpaths = ["tests"]
|
|
32
|
+
python_files = ["test_*.py"]
|
|
33
|
+
python_classes = ["Test*"]
|
|
34
|
+
python_functions = ["test_*"]
|
|
35
|
+
addopts = "-v --tb=short"
|
|
36
|
+
|
|
37
|
+
[tool.mypy]
|
|
38
|
+
python_version = "3.11"
|
|
39
|
+
warn_return_any = true
|
|
40
|
+
warn_unused_configs = true
|
|
41
|
+
disallow_untyped_defs = false
|
|
42
|
+
ignore_missing_imports = true
|
|
43
|
+
|
|
44
|
+
[tool.coverage.run]
|
|
45
|
+
source = ["src"]
|
|
46
|
+
omit = [
|
|
47
|
+
"*/tests/*",
|
|
48
|
+
"*/__pycache__/*",
|
|
49
|
+
"*/venv/*",
|
|
50
|
+
]
|
|
51
|
+
|
|
52
|
+
[tool.coverage.report]
|
|
53
|
+
exclude_lines = [
|
|
54
|
+
"pragma: no cover",
|
|
55
|
+
"def __repr__",
|
|
56
|
+
"raise AssertionError",
|
|
57
|
+
"raise NotImplementedError",
|
|
58
|
+
"if __name__ == .__main__.:",
|
|
59
|
+
"if TYPE_CHECKING:",
|
|
60
|
+
"class .*\\bProtocol\\):",
|
|
61
|
+
"@(abc\\.)?abstractmethod",
|
|
62
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
flask
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""Setup script for Copilot Session Dashboard."""
|
|
2
|
+
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
from setuptools import find_packages, setup
|
|
6
|
+
|
|
7
|
+
# Read requirements from requirements.txt
|
|
8
|
+
requirements_file = Path(__file__).parent / "requirements.txt"
|
|
9
|
+
with open(requirements_file, encoding="utf-8") as f:
|
|
10
|
+
requirements = [line.strip() for line in f if line.strip() and not line.startswith("#")]
|
|
11
|
+
|
|
12
|
+
# Read version from src/__version__.py
|
|
13
|
+
version_file = Path(__file__).parent / "src" / "__version__.py"
|
|
14
|
+
version = {}
|
|
15
|
+
with open(version_file, encoding="utf-8") as f:
|
|
16
|
+
exec(f.read(), version)
|
|
17
|
+
|
|
18
|
+
# Read long description from README
|
|
19
|
+
readme_file = Path(__file__).parent / "README.md"
|
|
20
|
+
with open(readme_file, encoding="utf-8") as f:
|
|
21
|
+
long_description = f.read()
|
|
22
|
+
|
|
23
|
+
setup(
|
|
24
|
+
name="ghcp-cli-dashboard",
|
|
25
|
+
version=version["__version__"],
|
|
26
|
+
description="A local web dashboard that monitors all your GitHub Copilot CLI sessions in real-time",
|
|
27
|
+
long_description=long_description,
|
|
28
|
+
long_description_content_type="text/markdown",
|
|
29
|
+
author="Jeff Steinbok",
|
|
30
|
+
url="https://github.com/JeffSteinbok/ghcpCliSessionDashboard",
|
|
31
|
+
license="MIT",
|
|
32
|
+
packages=find_packages(exclude=["tests", "tests.*"]),
|
|
33
|
+
include_package_data=True,
|
|
34
|
+
install_requires=requirements + ['pywin32; sys_platform == "win32"'],
|
|
35
|
+
python_requires=">=3.11",
|
|
36
|
+
entry_points={
|
|
37
|
+
"console_scripts": [
|
|
38
|
+
"copilot-dashboard=src.session_dashboard:main",
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
classifiers=[
|
|
42
|
+
"Development Status :: 4 - Beta",
|
|
43
|
+
"Intended Audience :: Developers",
|
|
44
|
+
"License :: OSI Approved :: MIT License",
|
|
45
|
+
"Operating System :: OS Independent",
|
|
46
|
+
"Programming Language :: Python :: 3",
|
|
47
|
+
"Programming Language :: Python :: 3.11",
|
|
48
|
+
"Programming Language :: Python :: 3.12",
|
|
49
|
+
"Programming Language :: Python :: 3.13",
|
|
50
|
+
"Topic :: Software Development :: Quality Assurance",
|
|
51
|
+
"Topic :: Utilities",
|
|
52
|
+
],
|
|
53
|
+
keywords="copilot github cli dashboard session monitor",
|
|
54
|
+
)
|