agenteye-app 1.0.0__py3-none-any.whl

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.
@@ -0,0 +1,224 @@
1
+ Metadata-Version: 2.4
2
+ Name: agenteye-app
3
+ Version: 1.0.0
4
+ Summary: Agent Eye dashboard for monitoring GitHub Copilot CLI sessions in real-time
5
+ Home-page: https://github.com/JeffSteinbok/agenteye
6
+ Author: Jeff Steinbok
7
+ License: MIT
8
+ Keywords: agenteye 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: fastapi
23
+ Requires-Dist: uvicorn
24
+ Requires-Dist: platformdirs
25
+ Requires-Dist: pywinauto; sys_platform == "win32"
26
+ Requires-Dist: pywebview>=5.0
27
+ Requires-Dist: pystray>=0.19
28
+ Requires-Dist: pillow>=10.0
29
+ Requires-Dist: plyer>=2.1
30
+ Requires-Dist: pywin32; sys_platform == "win32"
31
+ Requires-Dist: pywinauto; sys_platform == "win32"
32
+ Dynamic: author
33
+ Dynamic: classifier
34
+ Dynamic: description
35
+ Dynamic: description-content-type
36
+ Dynamic: home-page
37
+ Dynamic: keywords
38
+ Dynamic: license
39
+ Dynamic: license-file
40
+ Dynamic: requires-dist
41
+ Dynamic: requires-python
42
+ Dynamic: summary
43
+
44
+ # Agent Eye
45
+ [![GitHub](https://img.shields.io/badge/GitHub-agenteye-blue?logo=github)](https://github.com/JeffSteinbok/agenteye)
46
+ [![GitHub release](https://img.shields.io/github/v/release/JeffSteinbok/agenteye)](https://github.com/JeffSteinbok/agenteye/releases)
47
+
48
+ [![CI](https://github.com/JeffSteinbok/agenteye/actions/workflows/ci.yml/badge.svg)](https://github.com/JeffSteinbok/agenteye/actions/workflows/ci.yml)
49
+ [![Release](https://github.com/JeffSteinbok/agenteye/actions/workflows/release.yml/badge.svg)](https://github.com/JeffSteinbok/agenteye/actions/workflows/release.yml)
50
+
51
+ [![Publish to PyPI](https://github.com/JeffSteinbok/agenteye/actions/workflows/publish-pypi.yml/badge.svg)](https://github.com/JeffSteinbok/agenteye/actions/workflows/publish-pypi.yml)
52
+ [![PyPI version](https://img.shields.io/pypi/v/agenteye.svg?v=0.3.2)](https://pypi.org/project/agenteye/)
53
+ [![OpenAPI](https://img.shields.io/badge/OpenAPI-spec-green?logo=openapiinitiative)](https://editor.swagger.io/?url=https://raw.githubusercontent.com/JeffSteinbok/agenteye/main/docs/openapi.json)
54
+
55
+ A local web dashboard that monitors all your GitHub Copilot CLI and Claude Code sessions in real-time.
56
+ Designed for power users running multiple AI coding sessions simultaneously.
57
+
58
+ > [!TIP]
59
+ > 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.
60
+
61
+ ![Dashboard Screenshot](https://raw.githubusercontent.com/JeffSteinbok/agenteye/main/screenshot.png)
62
+
63
+ ## Installation
64
+
65
+ ### Option 1: From PyPI
66
+
67
+ ```bash
68
+ pip install agenteye
69
+ ```
70
+
71
+ ### Option 2: From Source
72
+
73
+ ```bash
74
+ # Clone the repo
75
+ git clone https://github.com/JeffSteinbok/agenteye.git
76
+ cd agenteye
77
+
78
+ # Install in editable mode
79
+ pip install -e .
80
+ ```
81
+
82
+ ## Usage
83
+
84
+ ### Native App (Recommended)
85
+
86
+ Run as a native desktop app with system tray integration:
87
+
88
+ ```bash
89
+ # Start the tray app (window + tray icon)
90
+ agenteye app
91
+
92
+ # Start minimized to tray
93
+ agenteye app --hidden
94
+
95
+ # Custom port
96
+ agenteye app --port 8080
97
+ ```
98
+
99
+ The tray app provides:
100
+ - Native window with dark/light title bar matching app theme
101
+ - System tray icon with quick access menu
102
+ - Close (X) minimizes to tray, quit from tray menu exits
103
+ - Native Windows notifications (no browser permission needed)
104
+
105
+ ### Browser Mode
106
+
107
+ Run as a background server and open in your browser:
108
+
109
+ ```bash
110
+ # Start the dashboard
111
+ agenteye start
112
+
113
+ # Start in background
114
+ agenteye start --background
115
+
116
+ # Check status
117
+ agenteye status
118
+
119
+ # Stop
120
+ agenteye stop
121
+
122
+ # Upgrade to the latest version (restarts automatically if running)
123
+ agenteye upgrade
124
+ ```
125
+
126
+ Open **http://localhost:5111** in your browser.
127
+
128
+ ### Autostart at Login (Windows)
129
+
130
+ ```bash
131
+ # Start tray app on login (recommended)
132
+ agenteye autostart --mode app
133
+
134
+ # Start background server on login
135
+ agenteye autostart --mode server
136
+
137
+ # Custom port
138
+ agenteye autostart --mode app --port 8080
139
+
140
+ # Remove login startup
141
+ agenteye autostart-remove
142
+ ```
143
+
144
+ ## Features
145
+
146
+ ### ✨ New in v0.10
147
+
148
+ - **Native tray app** — `agenteye app` runs as a native desktop application with system tray integration, eliminating the need for a separate browser tab
149
+ - **Dark/light title bar** — window title bar automatically matches your chosen theme
150
+ - **Native notifications** — Windows toast notifications with proper app name and icon (no browser permission prompts)
151
+ - **Start hidden** — `--hidden` flag starts the app minimized to tray (great for autostart)
152
+
153
+ ### ✨ New in v0.7
154
+
155
+ - **Claude Code support** — automatically discovers Claude Code sessions from `~/.claude/projects/`. Active Claude sessions appear alongside Copilot sessions with a `✦ Claude` badge.
156
+ - **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.
157
+ - **Settings menu** — ☰ hamburger menu in the header with toggles for autostart-on-login and remote sync.
158
+ - **Upgrade command** — `agenteye upgrade` stops the server, upgrades via pip, and restarts automatically.
159
+
160
+ ### Session States
161
+ - **Working / Thinking** (green) — session is actively running tools or reasoning
162
+ - **Waiting** (yellow) — session needs your input (`ask_user` or `ask_permission` pending)
163
+ - **Idle** (blue) — session is done and ready for your next task
164
+
165
+ ### Key Features
166
+ - **Desktop notifications** — get alerts when sessions transition between states
167
+ - **Focus window** — bring an active session's terminal to the foreground with one click
168
+ - **Restart commands** — copy-pasteable `copilot --resume <id>` commands for every session
169
+ - **Waiting context** — shows *what* a waiting session is asking (e.g. the `ask_user` question and choices)
170
+ - **Background tasks** — shows count of running subagents per session
171
+ - **Session details** — click any session to see checkpoints, recent tool output, references, and conversation history
172
+ - **Tile & List views** — compact card grid or detailed expandable rows
173
+ - **9 color palettes** and light/dark mode
174
+
175
+ ### Cross-Machine Sync
176
+
177
+ See active sessions from all your machines in one dashboard — powered by OneDrive, Google Drive, or any cloud-synced folder. No Git commits needed.
178
+
179
+ **How it works:**
180
+ - On each poll cycle, the dashboard exports your active sessions as JSON files to a shared cloud folder
181
+ - Other machines read those files and display them in a **"Remote Sessions"** section under Active
182
+ - Each machine only writes to its own subfolder — no sync conflicts
183
+
184
+ **Auto-detection (priority order):**
185
+ 1. `OneDriveCommercial` (preferred — prevents data leakage to personal accounts)
186
+ 2. `OneDriveConsumer`
187
+ 3. User Documents folder
188
+
189
+ **Configuration** (`~/.copilot/dashboard-config.json`):
190
+ ```json
191
+ {
192
+ "sync": {
193
+ "enabled": true,
194
+ "folder": "D:\\MyCloudSync"
195
+ }
196
+ }
197
+ ```
198
+ - Set `"enabled": false` to disable sync entirely
199
+ - Set `"folder"` to override auto-detection with a specific path
200
+
201
+ **What remote sessions show:**
202
+ - Live state indicators (working, waiting, idle)
203
+ - Session summary, intent, branch, MCP servers, turn/checkpoint counts
204
+ - Machine name badge (e.g. `🖥️ LAPTOP-HOME`)
205
+
206
+ **What remote sessions don't show:**
207
+ - No detail drill-down (checkpoints, turns, files)
208
+ - No focus or kill actions (those are local-only)
209
+ - No past/previous sessions from remote machines
210
+
211
+ ## Prerequisites
212
+
213
+ | Package | Purpose |
214
+ |---------|---------|
215
+ | `fastapi` | Web framework with auto-generated OpenAPI docs |
216
+ | `uvicorn` | ASGI server |
217
+ | `pywinauto` | Window focus and process detection (Windows-only) |
218
+ | `pywebview` | Native window for tray app |
219
+ | `pystray` | System tray icon |
220
+ | `plyer` | Native OS notifications |
221
+
222
+ All are installed automatically via `pip install agenteye`.
223
+
224
+ For more details on architecture, data sources, and API endpoints, see [DEVELOPMENT.md](DEVELOPMENT.md).
@@ -0,0 +1,30 @@
1
+ agenteye_app-1.0.0.dist-info/licenses/LICENSE,sha256=G3FOOzsWqAlBInxvfL_9l07d0RboFDbiylFfzHazaHU,1070
2
+ src/__init__.py,sha256=mlQ3hizYy6nFYBKUGbFfc_ub1IxJCD3_vuBgrIPN6T4,165
3
+ src/__version__.py,sha256=3VzAZYCI4yP1n8P_j_IrrEB7AfzMkXGVbXiIiPMQB-w,124
4
+ src/claude_code.py,sha256=qZOlafbLU-zOT_bjDJrW0uWpBNdyxOmOFzFEkt6_sQg,20283
5
+ src/constants.py,sha256=xb0E9wNovWi2KdYRQEeglnd4az4XCXPfMWpsIz9drFM,8527
6
+ src/dashboard_api.py,sha256=B3JZIHZP7IirTBGnDWoYYyfy1fBSHtKeQBTQP9-ZOIk,37302
7
+ src/grouping.py,sha256=kJ7wC-sXGdEMFIyNn7qx4EHDjCyR37na6Yhp8Yw_4hQ,3596
8
+ src/logging_config.py,sha256=czOHPd80mu7TzXmKLVm0PNrWambMMWaAX0QJNU7ZwaI,3893
9
+ src/models.py,sha256=Jng_67IL7EW4IpMHQ1p3klpGSqjk-Xe_Iu9QsmDiS0Y,1643
10
+ src/process_tracker.py,sha256=SkL66PIDmXbaF0_0gIramSw0XgDvuNe7nLVb6W1YOqY,47380
11
+ src/schemas.py,sha256=cte7amm5Ob8Pr2sQbLtq15GzmGfKNaXJ-ZJNFYLNn_U,4524
12
+ src/session_dashboard.py,sha256=wJXNwn2IjbdbWevSgkcP0kyngaTmFa0Wx2Ejxd96Luk,23031
13
+ src/sync.py,sha256=b_Av6--AnRV4mjrHxNkleTgoxnmMBwlVBrkuGkib4Ao,9077
14
+ src/tray_app.py,sha256=ak1W1ZIRgJVpjTkenEl6jMihHldWZpq6x_DnX08PR0I,19214
15
+ src/static/favicon.png,sha256=ndq8F2F0yln1_VqbyKP2-5wD-HtzwyfE7mbDP28dyhU,5162
16
+ src/static/icon-192.png,sha256=LJ-ZwoxQGX4BLpQe9DU6iq4wS3FKHVZhym-uTVKE_eg,27741
17
+ src/static/icon-512.png,sha256=K8Kq2w_pKhTPxDsbY3KEasrRea0jAxFGlOzcVC9XmKQ,163471
18
+ src/static/logo.png,sha256=umOB8Hh5POqmgNdFCcNvLeINN_nm3QSPq4hSDRva4ds,759027
19
+ src/static/tray-icon.ico,sha256=B0bRAx_JHx7diV6E8TWPpd1MoCVurIaFZCXaNoCcs3E,72021
20
+ src/static/tray-icon.png,sha256=XD9jzkC8BE1hso1SWjh3QTKo3nlkpTqUQyPN8mnm6e4,44606
21
+ src/static/trayTemplate.png,sha256=k81OWVWCcZeCY4VfwqfMKc1CJY4bi3j-soHj9FmZe_8,26036
22
+ src/static/dist/index.html,sha256=b4xrHqVmlLH8hes16WSOvtOmudrAFC-eEzI9UVx_Z80,1328
23
+ src/static/dist/assets/index-BDgkVPoS.js,sha256=EF_ec0vNYcyjR_0MMJtrMqGdZvPSChziJriDk7VvlYY,194334
24
+ src/static/dist/assets/index-BDgkVPoS.js.map,sha256=NHR-Z4i4_D-ZR3BiSYm43PsyV9YGPJiQwHVoV_C-ksc,536225
25
+ src/static/dist/assets/index-BSoxjIF8.css,sha256=Z47bYTpe-Ec0su0G1MwuybVS_QJDHJCiY8QTvk-sa8M,24381
26
+ agenteye_app-1.0.0.dist-info/METADATA,sha256=byGqax4Xw4CilBC31OlXbl6JBcjmbQawINBRw6BZS8o,8360
27
+ agenteye_app-1.0.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
28
+ agenteye_app-1.0.0.dist-info/entry_points.txt,sha256=2dTIjpEXtRjpEnmDmV3UTjy8URbl1IhxM6TaCmCk7_c,56
29
+ agenteye_app-1.0.0.dist-info/top_level.txt,sha256=74rtVfumQlgAPzR5_2CgYN24MB0XARCg0t-gzk6gTrM,4
30
+ agenteye_app-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ agenteye = src.session_dashboard:main
@@ -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 @@
1
+ src
src/__init__.py ADDED
@@ -0,0 +1,5 @@
1
+ """Agent Eye — monitor all your GitHub Copilot CLI sessions."""
2
+
3
+ from .__version__ import __repository__, __version__
4
+
5
+ __all__ = ["__repository__", "__version__"]
src/__version__.py ADDED
@@ -0,0 +1,4 @@
1
+ """Version information for Agent Eye."""
2
+
3
+ __version__ = "1.0.0"
4
+ __repository__ = "https://github.com/JeffSteinbok/agenteye"