agentsview 0.16.1__py3-none-win_amd64.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.
agentsview/__init__.py ADDED
@@ -0,0 +1,10 @@
1
+ from __future__ import annotations
2
+
3
+ import subprocess
4
+ import sys
5
+ from pathlib import Path
6
+
7
+
8
+ def main() -> None:
9
+ bin_path = Path(__file__).parent / "bin" / "agentsview.exe"
10
+ sys.exit(subprocess.call([str(bin_path)] + sys.argv[1:]))
agentsview/__main__.py ADDED
@@ -0,0 +1,3 @@
1
+ from agentsview import main
2
+
3
+ main()
Binary file
@@ -0,0 +1,347 @@
1
+ Metadata-Version: 2.1
2
+ Name: agentsview
3
+ Version: 0.16.1
4
+ Summary: Local web viewer for AI agent sessions
5
+ Home-page: https://github.com/wesm/agentsview
6
+ Author: Wes McKinney
7
+ License: MIT
8
+ Requires-Python: >=3.9
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Programming Language :: Python :: 3
11
+ Description-Content-Type: text/markdown
12
+
13
+ # agentsview
14
+
15
+ A local-first desktop and web application for browsing, searching,
16
+ and analyzing AI agent coding sessions. Supports Claude Code, Codex,
17
+ OpenCode, and 9 other agents.
18
+
19
+ <p align="center">
20
+ <img src="https://agentsview.io/screenshots/dashboard.png" alt="Analytics dashboard" width="720">
21
+ </p>
22
+
23
+ ## Desktop App
24
+
25
+ Download the desktop installer for macOS or Windows from
26
+ [GitHub Releases](https://github.com/wesm/agentsview/releases).
27
+ The desktop app includes auto-updates and runs the server as a
28
+ local sidecar -- no terminal required.
29
+
30
+ ## CLI Install
31
+
32
+ ```bash
33
+ curl -fsSL https://agentsview.io/install.sh | bash
34
+ ```
35
+
36
+ **Windows:**
37
+
38
+ ```powershell
39
+ powershell -ExecutionPolicy ByPass -c "irm https://agentsview.io/install.ps1 | iex"
40
+ ```
41
+
42
+ The CLI installer downloads the latest release, verifies the
43
+ SHA-256 checksum, and installs the binary.
44
+
45
+ **Build from source** (requires Go 1.25+ with CGO and Node.js 22+):
46
+
47
+ ```bash
48
+ git clone https://github.com/wesm/agentsview.git
49
+ cd agentsview
50
+ make build
51
+ make install # installs to ~/.local/bin
52
+ ```
53
+
54
+ ## Why?
55
+
56
+ AI coding agents generate large volumes of session data across
57
+ projects. agentsview indexes these sessions into a local SQLite
58
+ database with full-text search, providing a web interface to
59
+ find past conversations, review agent behavior, and track usage
60
+ patterns over time.
61
+
62
+ ## Features
63
+
64
+ - **Full-text search** across all message content, instantly
65
+ - **Analytics dashboard** with activity heatmaps, tool usage,
66
+ velocity metrics, and project breakdowns
67
+ - **Multi-agent support** for Claude Code, Codex, OpenCode, and
68
+ 9 other agents ([full list](#supported-agents))
69
+ - **Live updates** via SSE as active sessions receive new messages
70
+ - **Keyboard-first** navigation (vim-style `j`/`k`/`[`/`]`)
71
+ - **Export and publish** sessions as HTML or to GitHub Gist
72
+ - **Local-first** -- all data stays on your machine, single binary,
73
+ no accounts
74
+
75
+ ## Usage
76
+
77
+ ```bash
78
+ agentsview # start server
79
+ agentsview -port 9090 # custom port
80
+ ```
81
+
82
+ On startup, agentsview discovers sessions from all supported
83
+ agents, syncs them into a local SQLite database with FTS5
84
+ full-text search, and opens a web UI at `http://127.0.0.1:8080`.
85
+
86
+ For hostname or reverse-proxy access, set a `public_url`. This
87
+ preserves the default DNS-rebinding and CSRF protections while
88
+ explicitly trusting the external browser origin you expect.
89
+
90
+ ```bash
91
+ # Direct HTTP on a custom hostname/port
92
+ agentsview -host 0.0.0.0 -port 8004 \
93
+ -public-url http://viewer.example.test:8004
94
+
95
+ # HTTPS behind your own reverse proxy
96
+ agentsview -host 127.0.0.1 -port 8004 \
97
+ -public-url https://viewer.example.test
98
+ ```
99
+
100
+ agentsview can also manage a Caddy frontend for you. In managed-Caddy
101
+ mode, keep the backend on loopback and let Caddy terminate TLS and
102
+ optionally restrict client IP ranges. By default, managed Caddy binds
103
+ to `127.0.0.1` and exposes the public URL on port `8443`. To expose it
104
+ on a non-loopback interface, set `-proxy-bind-host` explicitly and
105
+ provide at least one `-allowed-subnet`.
106
+
107
+ Managed Caddy mode requires the `caddy` CLI to already be installed.
108
+ This patch does not automate Caddy installation. Use your normal OS
109
+ package manager or ask your coding agent to install Caddy for your
110
+ platform first. Caddy supports Linux, macOS, and Windows.
111
+
112
+ For privileged ports such as `443` or `80`, prefer leaving
113
+ `agentsview` itself unprivileged and granting the Caddy binary
114
+ permission to bind low ports. On Linux, that typically means:
115
+
116
+ ```bash
117
+ sudo setcap cap_net_bind_service=+ep "$(command -v caddy)"
118
+ ```
119
+
120
+ Then run `agentsview` normally as your user with `-public-port 443`
121
+ or `-public-port 80`. This avoids running the session viewer as root,
122
+ which would otherwise change which home directory and agent session
123
+ data it can see. If you do not need a privileged port, the default
124
+ `8443` is the simpler option.
125
+
126
+ ```bash
127
+ agentsview -host 127.0.0.1 -port 8080 \
128
+ -public-url https://viewer.example.test \
129
+ -proxy caddy \
130
+ -proxy-bind-host 0.0.0.0 \
131
+ -public-port 8443 \
132
+ -tls-cert ~/.certs/viewer.crt \
133
+ -tls-key ~/.certs/viewer.key \
134
+ -allowed-subnet 10.0/16 \
135
+ -allowed-subnet 192.168.1.0/24
136
+ ```
137
+
138
+ You can persist the same settings in `~/.agentsview/config.toml`:
139
+
140
+ ```toml
141
+ public_url = "https://viewer.example.test"
142
+
143
+ [proxy]
144
+ mode = "caddy"
145
+ bind_host = "0.0.0.0"
146
+ public_port = 8443
147
+ tls_cert = "/home/user/.certs/viewer.crt"
148
+ tls_key = "/home/user/.certs/viewer.key"
149
+ allowed_subnets = ["10.0/16", "192.168.1.0/24"]
150
+ ```
151
+
152
+ `public_origins` remains available as an advanced override when you
153
+ need to allow additional browser origins beyond the main `public_url`.
154
+
155
+ ## Screenshots
156
+
157
+ | Dashboard | Session viewer |
158
+ |-----------|---------------|
159
+ | ![Dashboard](https://agentsview.io/screenshots/dashboard.png) | ![Session viewer](https://agentsview.io/screenshots/message-viewer.png) |
160
+
161
+ | Search | Activity heatmap |
162
+ |--------|-----------------|
163
+ | ![Search](https://agentsview.io/screenshots/search-results.png) | ![Heatmap](https://agentsview.io/screenshots/heatmap.png) |
164
+
165
+ ## Keyboard Shortcuts
166
+
167
+ | Key | Action |
168
+ |-----|--------|
169
+ | `Cmd+K` | Open search |
170
+ | `j` / `k` | Next / previous message |
171
+ | `]` / `[` | Next / previous session |
172
+ | `o` | Toggle sort order |
173
+ | `t` | Toggle thinking blocks |
174
+ | `e` | Export session as HTML |
175
+ | `p` | Publish to GitHub Gist |
176
+ | `r` | Sync sessions |
177
+ | `?` | Show all shortcuts |
178
+
179
+ ## PostgreSQL Sync
180
+
181
+ agentsview can push session data from the local SQLite database to a
182
+ remote PostgreSQL instance, enabling shared team dashboards and
183
+ centralized search across multiple machines.
184
+
185
+ ### Push Sync (SQLite to PG)
186
+
187
+ Configure `pg` in `~/.agentsview/config.toml`:
188
+
189
+ ```toml
190
+ [pg]
191
+ url = "postgres://user:pass@host:5432/dbname?sslmode=require"
192
+ machine_name = "my-laptop"
193
+ ```
194
+
195
+ Use `sslmode=require` (or `verify-full` for CA-verified connections)
196
+ for non-local PostgreSQL instances. Only use `sslmode=disable` for
197
+ trusted local/loopback connections.
198
+
199
+ The `machine_name` identifies which machine pushed each session
200
+ (must not be `"local"`, which is reserved).
201
+
202
+ CLI commands:
203
+
204
+ ```bash
205
+ agentsview pg push # push now
206
+ agentsview pg push --full # force full re-push (bypasses heuristic)
207
+ agentsview pg status # show sync status
208
+ ```
209
+
210
+ Push is on-demand — run `pg push` whenever you want to sync to
211
+ PostgreSQL. There is no automatic background push.
212
+
213
+ ### PG Read-Only Mode
214
+
215
+ Serve the web UI directly from PostgreSQL with no local SQLite.
216
+ Configure `[pg].url` in config (as shown above), then:
217
+
218
+ ```bash
219
+ agentsview pg serve # default: 127.0.0.1:8080
220
+ agentsview pg serve -port 9090 # custom port
221
+ ```
222
+
223
+ To have `pg serve` manage a Caddy TLS frontend directly:
224
+
225
+ The same managed-Caddy prerequisites and backend-loopback requirement
226
+ described earlier for normal `serve` mode also apply here.
227
+
228
+ ```bash
229
+ agentsview pg serve \
230
+ -host 127.0.0.1 \
231
+ -port 18080 \
232
+ -public-url https://viewer.example.test \
233
+ -proxy caddy \
234
+ -proxy-bind-host 0.0.0.0 \
235
+ -public-port 8443 \
236
+ -tls-cert ~/.certs/viewer.crt \
237
+ -tls-key ~/.certs/viewer.key \
238
+ -allowed-subnet 10.0/16
239
+ ```
240
+
241
+ This mode is useful for shared team viewers where multiple machines
242
+ push to a central PG database and one or more read-only instances
243
+ serve the UI. Uploads, file watching, and local sync are disabled.
244
+ For managed-Caddy mode, keep the backend `-host` on loopback and use
245
+ `-proxy-bind-host` / `-public-port` to expose the public listener. If
246
+ you run plain `pg serve` without `-proxy caddy`, then using a
247
+ non-loopback `-host` enables token-authenticated remote access and
248
+ prints the auth token on startup.
249
+
250
+ The normal SQLite-backed `serve` mode and PostgreSQL-backed `pg serve`
251
+ mode keep separate managed-Caddy state, so both can coexist on one
252
+ host.
253
+
254
+ ### Known Limitations
255
+
256
+ - **Deleted sessions**: Sessions permanently pruned from SQLite
257
+ (via `agentsview prune`) are not propagated as deletions to PG.
258
+ Sessions soft-deleted with `deleted_at` are synced correctly.
259
+ - **Change detection**: Push uses aggregate length statistics
260
+ rather than content hashes. Use `-full` to force a complete
261
+ re-push if content was rewritten in-place.
262
+
263
+ ## Documentation
264
+
265
+ Full documentation is available at
266
+ [agentsview.io](https://agentsview.io):
267
+
268
+ - [Quick Start](https://agentsview.io/quickstart/) --
269
+ installation and first run
270
+ - [Usage Guide](https://agentsview.io/usage/) --
271
+ dashboard, session browser, search, export
272
+ - [CLI Reference](https://agentsview.io/commands/) --
273
+ commands, flags, and environment variables
274
+ - [Configuration](https://agentsview.io/configuration/) --
275
+ data directory, config file, session discovery
276
+ - [Architecture](https://agentsview.io/architecture/) --
277
+ how the sync engine, parsers, and server work
278
+
279
+ ## Development
280
+
281
+ ```bash
282
+ make dev # run Go server in dev mode
283
+ make frontend-dev # run Vite dev server (use alongside make dev)
284
+ make desktop-dev # run Tauri desktop app in dev mode
285
+ make test # Go tests (CGO_ENABLED=1 -tags fts5)
286
+ make lint # golangci-lint
287
+ make e2e # Playwright E2E tests
288
+ ```
289
+
290
+ ## Desktop Development
291
+
292
+ The desktop app is a Tauri wrapper under `desktop/`. It launches
293
+ the `agentsview` Go binary as a local sidecar and loads
294
+ `http://127.0.0.1:<port>` in a native webview.
295
+
296
+ ```bash
297
+ make desktop-dev # run desktop app in dev mode
298
+ make desktop-build # build desktop bundles (.app/.exe)
299
+ make desktop-macos-app # build macOS .app only
300
+ make desktop-windows-installer # build Windows installer (.exe)
301
+ ```
302
+
303
+ Desktop env escape hatch: `~/.agentsview/desktop.env` (for
304
+ PATH/API keys overrides).
305
+
306
+ ### Project Structure
307
+
308
+ ```
309
+ cmd/agentsview/ CLI entrypoint
310
+ internal/config/ Configuration loading
311
+ internal/db/ SQLite operations (sessions, search, analytics)
312
+ internal/postgres/ PostgreSQL support (push sync, read-only store, schema)
313
+ internal/parser/ Session parsers (all supported agents)
314
+ internal/server/ HTTP handlers, SSE, middleware
315
+ internal/sync/ Sync engine, file watcher, discovery
316
+ frontend/ Svelte 5 SPA (Vite, TypeScript)
317
+ ```
318
+
319
+ ## Supported Agents
320
+
321
+ | Agent | Session Directory | Env Override |
322
+ |-------|-------------------|--------------|
323
+ | Claude Code | `~/.claude/projects/` | `CLAUDE_PROJECTS_DIR` |
324
+ | Codex | `~/.codex/sessions/` | `CODEX_SESSIONS_DIR` |
325
+ | Copilot | `~/.copilot/` | `COPILOT_DIR` |
326
+ | Gemini | `~/.gemini/` | `GEMINI_DIR` |
327
+ | OpenCode | `~/.local/share/opencode/` | `OPENCODE_DIR` |
328
+ | Cursor | `~/.cursor/projects/` | `CURSOR_PROJECTS_DIR` |
329
+ | Amp | `~/.local/share/amp/threads/` | `AMP_DIR` |
330
+ | iFlow | `~/.iflow/projects/` | `IFLOW_DIR` |
331
+ | VSCode Copilot | `~/Library/Application Support/Code/User/` (macOS) | `VSCODE_COPILOT_DIR` |
332
+ | Pi | `~/.pi/agent/sessions/` | `PI_DIR` |
333
+ | OpenClaw | `~/.openclaw/agents/` | `OPENCLAW_DIR` |
334
+ | Kimi | `~/.kimi/sessions/` | `KIMI_DIR` |
335
+
336
+ ## Acknowledgements
337
+
338
+ Inspired by
339
+ [claude-history-tool](https://github.com/andyfischer/ai-coding-tools/tree/main/claude-history-tool)
340
+ by Andy Fischer and
341
+ [claude-code-transcripts](https://github.com/simonw/claude-code-transcripts)
342
+ by Simon Willison.
343
+
344
+ ## License
345
+
346
+ MIT
347
+
@@ -0,0 +1,7 @@
1
+ agentsview/__init__.py,sha256=BjbaBtM3mOH2liyrj2Rt19UPJH2uJRAl8JMBhJQBVM0,238
2
+ agentsview/__main__.py,sha256=TmPx60CQc_hxduT618L0HffKfbfGKtSNUW9gHhxTBsY,36
3
+ agentsview/bin/agentsview.exe,sha256=GhunZ5WJm48F_-hrBr4cej8zZr4eqcKL6mNicSKT20c,18810880
4
+ agentsview-0.16.1.dist-info/METADATA,sha256=kpUhUGCGycUDd2YuD7KGSES05jKoItrcJ3Zh72pYtuY,11385
5
+ agentsview-0.16.1.dist-info/WHEEL,sha256=X5kTc0SppwMtt_l8mLffJ55SxTW2E2JAYfXV_1dyXVg,101
6
+ agentsview-0.16.1.dist-info/entry_points.txt,sha256=4-mB9InmBn_2B4RAcxFu_3wqpNfXgOuFq1jvVn0Mg3U,47
7
+ agentsview-0.16.1.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: agentsview-build-wheels
3
+ Root-Is-Purelib: false
4
+ Tag: py3-none-win_amd64
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ agentsview = agentsview:main