procsi 0.3.1 → 0.4.0

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.
Files changed (82) hide show
  1. package/README.md +149 -148
  2. package/dist/cli/commands/off.d.ts.map +1 -1
  3. package/dist/cli/commands/off.js +1 -0
  4. package/dist/cli/commands/off.js.map +1 -1
  5. package/dist/cli/commands/on.d.ts.map +1 -1
  6. package/dist/cli/commands/on.js +3 -1
  7. package/dist/cli/commands/on.js.map +1 -1
  8. package/dist/cli/commands/request.d.ts.map +1 -1
  9. package/dist/cli/commands/request.js +61 -5
  10. package/dist/cli/commands/request.js.map +1 -1
  11. package/dist/cli/commands/requests.d.ts.map +1 -1
  12. package/dist/cli/commands/requests.js +9 -1
  13. package/dist/cli/commands/requests.js.map +1 -1
  14. package/dist/cli/formatters/detail.d.ts.map +1 -1
  15. package/dist/cli/formatters/detail.js +9 -2
  16. package/dist/cli/formatters/detail.js.map +1 -1
  17. package/dist/cli/formatters/table.d.ts.map +1 -1
  18. package/dist/cli/formatters/table.js +11 -1
  19. package/dist/cli/formatters/table.js.map +1 -1
  20. package/dist/cli/tui/App.d.ts.map +1 -1
  21. package/dist/cli/tui/App.js +43 -1
  22. package/dist/cli/tui/App.js.map +1 -1
  23. package/dist/cli/tui/components/AccordionPanel.d.ts.map +1 -1
  24. package/dist/cli/tui/components/AccordionPanel.js +1 -1
  25. package/dist/cli/tui/components/AccordionPanel.js.map +1 -1
  26. package/dist/cli/tui/components/FilterBar.d.ts.map +1 -1
  27. package/dist/cli/tui/components/FilterBar.js +34 -3
  28. package/dist/cli/tui/components/FilterBar.js.map +1 -1
  29. package/dist/cli/tui/components/HelpModal.d.ts.map +1 -1
  30. package/dist/cli/tui/components/HelpModal.js +2 -0
  31. package/dist/cli/tui/components/HelpModal.js.map +1 -1
  32. package/dist/cli/tui/components/RequestListItem.d.ts.map +1 -1
  33. package/dist/cli/tui/components/RequestListItem.js +3 -2
  34. package/dist/cli/tui/components/RequestListItem.js.map +1 -1
  35. package/dist/cli/tui/components/StatusBar.d.ts.map +1 -1
  36. package/dist/cli/tui/components/StatusBar.js +2 -0
  37. package/dist/cli/tui/components/StatusBar.js.map +1 -1
  38. package/dist/cli/tui/hooks/useRequests.d.ts +4 -0
  39. package/dist/cli/tui/hooks/useRequests.d.ts.map +1 -1
  40. package/dist/cli/tui/hooks/useRequests.js +36 -0
  41. package/dist/cli/tui/hooks/useRequests.js.map +1 -1
  42. package/dist/cli/tui/utils/filters.d.ts.map +1 -1
  43. package/dist/cli/tui/utils/filters.js +3 -1
  44. package/dist/cli/tui/utils/filters.js.map +1 -1
  45. package/dist/daemon/control.d.ts.map +1 -1
  46. package/dist/daemon/control.js +23 -1
  47. package/dist/daemon/control.js.map +1 -1
  48. package/dist/daemon/index.js +1 -1
  49. package/dist/daemon/index.js.map +1 -1
  50. package/dist/daemon/interceptor-loader.d.ts.map +1 -1
  51. package/dist/daemon/interceptor-loader.js +5 -0
  52. package/dist/daemon/interceptor-loader.js.map +1 -1
  53. package/dist/daemon/proxy.d.ts.map +1 -1
  54. package/dist/daemon/proxy.js +99 -4
  55. package/dist/daemon/proxy.js.map +1 -1
  56. package/dist/daemon/storage.d.ts +18 -4
  57. package/dist/daemon/storage.d.ts.map +1 -1
  58. package/dist/daemon/storage.js +111 -25
  59. package/dist/daemon/storage.js.map +1 -1
  60. package/dist/mcp/server.d.ts +3 -0
  61. package/dist/mcp/server.d.ts.map +1 -1
  62. package/dist/mcp/server.js +65 -2
  63. package/dist/mcp/server.js.map +1 -1
  64. package/dist/overrides/node.d.ts.map +1 -1
  65. package/dist/overrides/node.js +62 -0
  66. package/dist/overrides/node.js.map +1 -1
  67. package/dist/shared/constants.d.ts +10 -0
  68. package/dist/shared/constants.d.ts.map +1 -0
  69. package/dist/shared/constants.js +10 -0
  70. package/dist/shared/constants.js.map +1 -0
  71. package/dist/shared/control-client.d.ts +15 -3
  72. package/dist/shared/control-client.d.ts.map +1 -1
  73. package/dist/shared/control-client.js +15 -3
  74. package/dist/shared/control-client.js.map +1 -1
  75. package/dist/shared/process-name.d.ts +10 -0
  76. package/dist/shared/process-name.d.ts.map +1 -0
  77. package/dist/shared/process-name.js +27 -0
  78. package/dist/shared/process-name.js.map +1 -0
  79. package/dist/shared/types.d.ts +10 -0
  80. package/dist/shared/types.d.ts.map +1 -1
  81. package/package.json +2 -1
  82. package/skills/procsi/SKILL.md +5 -4
package/README.md CHANGED
@@ -4,13 +4,13 @@
4
4
  [![CI](https://github.com/mtford90/procsi/actions/workflows/ci.yml/badge.svg)](https://github.com/mtford90/procsi/actions/workflows/ci.yml)
5
5
  [![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
6
6
 
7
- Procsi is a terminal-based HTTP proxy with a powerful MCP server. Quickly intercept, inspect & rewrite HTTP traffic.
7
+ Procsi is a terminal-based, project-isolated HTTP proxy with a powerful CLI & MCP server. Quickly intercept, inspect & rewrite HTTP traffic from the comfort of your terminal or favourite AI agent.
8
8
 
9
9
  ![procsi demo](demo.gif)
10
10
 
11
11
  ## Feature Highlights
12
12
 
13
- - **Project isolation** — each project gets its own `.procsi/` directory with a separate daemon, database, CA cert and interceptors.
13
+ - **Project isolation** — each project gets its own `.procsi/` directory with a separate daemon, database, CA cert and interceptors
14
14
  - **MCP server** — AI agents get full access to your captured traffic and can write interceptor files for you. Search, filter, inspect, mock — all via tool calls.
15
15
  - **Interceptors** — mock, modify or observe traffic with `.ts` files. Match on anything, query past traffic from within handlers, compose complex scenarios.
16
16
 
@@ -104,46 +104,47 @@ npx agents export --target claude
104
104
 
105
105
  ### Available Tools
106
106
 
107
- | Tool | Description |
108
- |------|-------------|
109
- | `procsi_get_status` | Daemon status, proxy port, request count |
110
- | `procsi_list_requests` | Search and filter captured requests |
111
- | `procsi_get_request` | Full request details by ID (headers, bodies, timing) |
112
- | `procsi_search_bodies` | Full-text search through body content |
113
- | `procsi_query_json` | Extract values from JSON bodies via JSONPath |
114
- | `procsi_count_requests` | Count matching requests |
115
- | `procsi_clear_requests` | Delete all captured requests |
116
- | `procsi_list_sessions` | List active proxy sessions |
117
- | `procsi_list_interceptors` | List loaded interceptors with status and errors |
118
- | `procsi_reload_interceptors` | Reload interceptors from disk |
107
+ | Tool | Description |
108
+ | ---------------------------- | ---------------------------------------------------- |
109
+ | `procsi_get_status` | Daemon status, proxy port, request count |
110
+ | `procsi_list_requests` | Search and filter captured requests |
111
+ | `procsi_get_request` | Full request details by ID (headers, bodies, timing) |
112
+ | `procsi_search_bodies` | Full-text search through body content |
113
+ | `procsi_query_json` | Extract values from JSON bodies via JSONPath |
114
+ | `procsi_count_requests` | Count matching requests |
115
+ | `procsi_clear_requests` | Delete all captured requests |
116
+ | `procsi_list_sessions` | List active proxy sessions |
117
+ | `procsi_list_interceptors` | List loaded interceptors with status and errors |
118
+ | `procsi_reload_interceptors` | Reload interceptors from disk |
119
119
 
120
120
  ### Filtering
121
121
 
122
122
  Most tools accept these filters:
123
123
 
124
- | Parameter | Description | Example |
125
- |-----------|-------------|---------|
126
- | `method` | HTTP method(s), comma-separated | `"GET,POST"` |
127
- | `status_range` | Status code, Nxx pattern, or range | `"4xx"`, `"401"`, `"500-503"` |
128
- | `search` | Substring match on URL/path | `"api/users"` |
129
- | `host` | Exact or suffix match (prefix with `.`) | `"api.example.com"`, `".example.com"` |
130
- | `path` | Path prefix match | `"/api/v2"` |
131
- | `since` / `before` | Time window (ISO 8601) | `"2024-01-15T10:30:00Z"` |
132
- | `header_name` | Filter by header existence or value | `"content-type"` |
133
- | `header_value` | Exact header value (requires `header_name`) | `"application/json"` |
134
- | `header_target` | Which headers to search | `"request"`, `"response"`, `"both"` |
135
- | `intercepted_by` | Filter by interceptor name | `"mock-users"` |
136
- | `offset` | Pagination offset (0-based) | `0` |
137
- | `limit` | Max results (default 50, max 500) | `100` |
124
+ | Parameter | Description | Example |
125
+ | ------------------ | ------------------------------------------- | ------------------------------------- |
126
+ | `method` | HTTP method(s), comma-separated | `"GET,POST"` |
127
+ | `status_range` | Status code, Nxx pattern, or range | `"4xx"`, `"401"`, `"500-503"` |
128
+ | `search` | Substring match on URL/path | `"api/users"` |
129
+ | `host` | Exact or suffix match (prefix with `.`) | `"api.example.com"`, `".example.com"` |
130
+ | `path` | Path prefix match | `"/api/v2"` |
131
+ | `since` / `before` | Time window (ISO 8601) | `"2024-01-15T10:30:00Z"` |
132
+ | `header_name` | Filter by header existence or value | `"content-type"` |
133
+ | `header_value` | Exact header value (requires `header_name`) | `"application/json"` |
134
+ | `header_target` | Which headers to search | `"request"`, `"response"`, `"both"` |
135
+ | `source` | Filter by request source | `"node"`, `"python"` |
136
+ | `intercepted_by` | Filter by interceptor name | `"mock-users"` |
137
+ | `offset` | Pagination offset (0-based) | `0` |
138
+ | `limit` | Max results (default 50, max 500) | `100` |
138
139
 
139
140
  `procsi_get_request` accepts comma-separated IDs for batch fetching (e.g. `"id1,id2,id3"`).
140
141
 
141
142
  `procsi_query_json` also takes:
142
143
 
143
- | Parameter | Description | Example |
144
- |-----------|-------------|---------|
145
- | `target` | Which body to query: `"request"`, `"response"`, or `"both"` (default) | `"response"` |
146
- | `value` | Exact value match after JSONPath extraction | `"active"` |
144
+ | Parameter | Description | Example |
145
+ | --------- | --------------------------------------------------------------------- | ------------ |
146
+ | `target` | Which body to query: `"request"`, `"response"`, or `"both"` (default) | `"response"` |
147
+ | `value` | Exact value match after JSONPath extraction | `"active"` |
147
148
 
148
149
  ### Output Formats
149
150
 
@@ -257,21 +258,21 @@ export default {
257
258
 
258
259
  ### Handler Context
259
260
 
260
- | Property | Description |
261
- |----------|-------------|
262
- | `ctx.request` | The incoming request (frozen, read-only) |
261
+ | Property | Description |
262
+ | --------------- | ----------------------------------------- |
263
+ | `ctx.request` | The incoming request (frozen, read-only) |
263
264
  | `ctx.forward()` | Forward to upstream, returns the response |
264
- | `ctx.procsi` | Query captured traffic (see below) |
265
- | `ctx.log(msg)` | Write to `.procsi/procsi.log` |
265
+ | `ctx.procsi` | Query captured traffic (see below) |
266
+ | `ctx.log(msg)` | Write to `.procsi/procsi.log` |
266
267
 
267
268
  #### `ctx.procsi`
268
269
 
269
- | Method | Description |
270
- |--------|-------------|
271
- | `countRequests(filter?)` | Count matching requests |
272
- | `listRequests({ filter?, limit?, offset? })` | List request summaries |
273
- | `getRequest(id)` | Full request details by ID |
274
- | `searchBodies({ query, ...filter? })` | Full-text search through bodies |
270
+ | Method | Description |
271
+ | -------------------------------------------- | -------------------------------------------- |
272
+ | `countRequests(filter?)` | Count matching requests |
273
+ | `listRequests({ filter?, limit?, offset? })` | List request summaries |
274
+ | `getRequest(id)` | Full request details by ID |
275
+ | `searchBodies({ query, ...filter? })` | Full-text search through bodies |
275
276
  | `queryJsonBodies({ json_path, ...filter? })` | Extract values from JSON bodies via JSONPath |
276
277
 
277
278
  ### How Interceptors Work
@@ -326,15 +327,15 @@ export default {
326
327
 
327
328
  `eval "$(procsi on)"` sets these in your shell (`eval "$(procsi off)"` unsets them):
328
329
 
329
- | Variable | Purpose |
330
- |----------|---------|
331
- | `HTTP_PROXY` | Proxy URL for HTTP clients |
332
- | `HTTPS_PROXY` | Proxy URL for HTTPS clients |
333
- | `SSL_CERT_FILE` | CA cert path (curl, git, etc.) |
334
- | `REQUESTS_CA_BUNDLE` | CA cert path (Python requests) |
335
- | `NODE_EXTRA_CA_CERTS` | CA cert path (Node.js) |
336
- | `PROCSI_SESSION_ID` | UUID identifying the current session |
337
- | `PROCSI_LABEL` | Session label (when `-l` flag used) |
330
+ | Variable | Purpose |
331
+ | --------------------- | ------------------------------------ |
332
+ | `HTTP_PROXY` | Proxy URL for HTTP clients |
333
+ | `HTTPS_PROXY` | Proxy URL for HTTPS clients |
334
+ | `SSL_CERT_FILE` | CA cert path (curl, git, etc.) |
335
+ | `REQUESTS_CA_BUNDLE` | CA cert path (Python requests) |
336
+ | `NODE_EXTRA_CA_CERTS` | CA cert path (Node.js) |
337
+ | `PROCSI_SESSION_ID` | UUID identifying the current session |
338
+ | `PROCSI_LABEL` | Session label (when `-l` flag used) |
338
339
 
339
340
  ## Configuration
340
341
 
@@ -349,12 +350,12 @@ Create `.procsi/config.json` to override defaults. All fields are optional:
349
350
  }
350
351
  ```
351
352
 
352
- | Setting | Default | Description |
353
- |---------|---------|-------------|
354
- | `maxStoredRequests` | `5000` | Max requests in the database. Oldest evicted automatically. |
355
- | `maxBodySize` | `10485760` (10 MB) | Max body size to capture. Larger bodies are proxied but not stored. |
356
- | `maxLogSize` | `10485760` (10 MB) | Max log file size before rotation. |
357
- | `pollInterval` | `2000` | TUI polling interval in ms. Lower = faster updates, more IPC traffic. |
353
+ | Setting | Default | Description |
354
+ | ------------------- | ------------------ | --------------------------------------------------------------------- |
355
+ | `maxStoredRequests` | `5000` | Max requests in the database. Oldest evicted automatically. |
356
+ | `maxBodySize` | `10485760` (10 MB) | Max body size to capture. Larger bodies are proxied but not stored. |
357
+ | `maxLogSize` | `10485760` (10 MB) | Max log file size before rotation. |
358
+ | `pollInterval` | `2000` | TUI polling interval in ms. Lower = faster updates, more IPC traffic. |
358
359
 
359
360
  Missing or invalid values fall back to defaults.
360
361
 
@@ -362,14 +363,14 @@ Missing or invalid values fall back to defaults.
362
363
 
363
364
  Anything that respects `HTTP_PROXY` works:
364
365
 
365
- | Client | Support |
366
- |--------|---------|
367
- | curl | Automatic |
368
- | wget | Automatic |
366
+ | Client | Support |
367
+ | ---------------------------- | -------------------------- |
368
+ | curl | Automatic |
369
+ | wget | Automatic |
369
370
  | Node.js (fetch, axios, etc.) | With `NODE_EXTRA_CA_CERTS` |
370
- | Python (requests, httpx) | With `REQUESTS_CA_BUNDLE` |
371
- | Go | Automatic |
372
- | Rust (reqwest) | Automatic |
371
+ | Python (requests, httpx) | With `REQUESTS_CA_BUNDLE` |
372
+ | Go | Automatic |
373
+ | Rust (reqwest) | Automatic |
373
374
 
374
375
  ## Export
375
376
 
@@ -397,59 +398,59 @@ Mouse support: click to select, scroll to navigate, click panels to focus.
397
398
 
398
399
  ### Main View
399
400
 
400
- | Key | Action |
401
- |-----|--------|
402
- | `j`/`k` or `↑`/`↓` | Navigate up/down |
403
- | `g` / `G` | Jump to first / last item |
404
- | `Ctrl+u` / `Ctrl+d` | Half-page up / down |
405
- | `Ctrl+f` / `Ctrl+b` | Full-page down / up |
406
- | `Tab` / `Shift+Tab` | Next / previous panel |
407
- | `1`-`5` | Jump to section (list / request / request body / response / response body) |
408
- | `Enter` | Open body in full-screen viewer |
409
- | `/` | Open filter bar |
410
- | `u` | Toggle full URL display |
411
- | `c` | Copy request as curl |
412
- | `y` | Copy body to clipboard |
413
- | `s` | Export body (opens export modal) |
414
- | `H` | Export all as HAR |
415
- | `r` | Refresh |
416
- | `?` | Help |
417
- | `i` | Proxy connection info |
418
- | `q` | Quit |
401
+ | Key | Action |
402
+ | ------------------- | -------------------------------------------------------------------------- |
403
+ | `j`/`k` or `↑`/`↓` | Navigate up/down |
404
+ | `g` / `G` | Jump to first / last item |
405
+ | `Ctrl+u` / `Ctrl+d` | Half-page up / down |
406
+ | `Ctrl+f` / `Ctrl+b` | Full-page down / up |
407
+ | `Tab` / `Shift+Tab` | Next / previous panel |
408
+ | `1`-`5` | Jump to section (list / request / request body / response / response body) |
409
+ | `Enter` | Open body in full-screen viewer |
410
+ | `/` | Open filter bar |
411
+ | `u` | Toggle full URL display |
412
+ | `c` | Copy request as curl |
413
+ | `y` | Copy body to clipboard |
414
+ | `s` | Export body (opens export modal) |
415
+ | `H` | Export all as HAR |
416
+ | `r` | Refresh |
417
+ | `?` | Help |
418
+ | `i` | Proxy connection info |
419
+ | `q` | Quit |
419
420
 
420
421
  ### Filter Bar (`/`)
421
422
 
422
- | Key | Action |
423
- |-----|--------|
424
- | `Tab` / `Shift+Tab` | Cycle between search, method, status fields |
425
- | `←` / `→` | Cycle method (ALL/GET/POST/PUT/PATCH/DELETE) or status (ALL/2xx-5xx) |
426
- | `Return` | Apply filter |
427
- | `Esc` | Cancel and revert |
423
+ | Key | Action |
424
+ | ------------------- | -------------------------------------------------------------------- |
425
+ | `Tab` / `Shift+Tab` | Cycle between search, method, status fields |
426
+ | `←` / `→` | Cycle method (ALL/GET/POST/PUT/PATCH/DELETE) or status (ALL/2xx-5xx) |
427
+ | `Return` | Apply filter |
428
+ | `Esc` | Cancel and revert |
428
429
 
429
430
  ### JSON Explorer (Enter on a JSON body)
430
431
 
431
- | Key | Action |
432
- |-----|--------|
433
- | `j`/`k` | Navigate nodes |
434
- | `Enter`/`l` | Expand/collapse node |
435
- | `h` | Collapse node |
436
- | `e` / `c` | Expand / collapse all |
437
- | `/` | Filter by path |
438
- | `n` / `N` | Next / previous match |
439
- | `y` | Copy value |
440
- | `q` / `Esc` | Close |
432
+ | Key | Action |
433
+ | ----------- | --------------------- |
434
+ | `j`/`k` | Navigate nodes |
435
+ | `Enter`/`l` | Expand/collapse node |
436
+ | `h` | Collapse node |
437
+ | `e` / `c` | Expand / collapse all |
438
+ | `/` | Filter by path |
439
+ | `n` / `N` | Next / previous match |
440
+ | `y` | Copy value |
441
+ | `q` / `Esc` | Close |
441
442
 
442
443
  ### Text Viewer (Enter on a non-JSON body)
443
444
 
444
- | Key | Action |
445
- |-----|--------|
446
- | `j`/`k` | Scroll line by line |
447
- | `Space` | Page down |
448
- | `g` / `G` | Top / bottom |
449
- | `/` | Search text |
450
- | `n` / `N` | Next / previous match |
451
- | `y` | Copy to clipboard |
452
- | `q` / `Esc` | Close |
445
+ | Key | Action |
446
+ | ----------- | --------------------- |
447
+ | `j`/`k` | Scroll line by line |
448
+ | `Space` | Page down |
449
+ | `g` / `G` | Top / bottom |
450
+ | `/` | Search text |
451
+ | `n` / `N` | Next / previous match |
452
+ | `y` | Copy to clipboard |
453
+ | `q` / `Esc` | Close |
453
454
 
454
455
  </details>
455
456
 
@@ -457,10 +458,10 @@ Mouse support: click to select, scroll to navigate, click panels to focus.
457
458
 
458
459
  ### Global Options
459
460
 
460
- | Flag | Description |
461
- |------|-------------|
462
- | `-v, --verbose` | Increase log verbosity (stackable: `-vv`, `-vvv`) |
463
- | `-d, --dir <path>` | Override project root directory |
461
+ | Flag | Description |
462
+ | ------------------ | ------------------------------------------------- |
463
+ | `-v, --verbose` | Increase log verbosity (stackable: `-vv`, `-vvv`) |
464
+ | `-d, --dir <path>` | Override project root directory |
464
465
 
465
466
  ### `procsi on`
466
467
 
@@ -472,10 +473,11 @@ eval "$(procsi on)"
472
473
 
473
474
  If run directly in a TTY (without `eval`), shows usage instructions.
474
475
 
475
- | Flag | Description |
476
- |------|-------------|
477
- | `-l, --label <label>` | Label this session (visible in TUI and MCP) |
478
- | `--no-restart` | Don't auto-restart daemon on version mismatch |
476
+ | Flag | Description |
477
+ | --------------------- | --------------------------------------------- |
478
+ | `-l, --label <label>` | Label this session (visible in TUI and MCP) |
479
+ | `-s, --source <name>` | Label the source process (auto-detected from PID if omitted) |
480
+ | `--no-restart` | Don't auto-restart daemon on version mismatch |
479
481
 
480
482
  ### `procsi off`
481
483
 
@@ -489,8 +491,8 @@ eval "$(procsi off)"
489
491
 
490
492
  Open the interactive TUI.
491
493
 
492
- | Flag | Description |
493
- |------|-------------|
494
+ | Flag | Description |
495
+ | ------ | ------------------------------------------- |
494
496
  | `--ci` | CI mode: render once and exit (for testing) |
495
497
 
496
498
  ### `procsi status`
@@ -525,21 +527,22 @@ procsi requests --limit 100 --offset 50 # pagination
525
527
  procsi requests --json # JSON output
526
528
  ```
527
529
 
528
- | Flag | Description |
529
- |------|-------------|
530
- | `--method <methods>` | Filter by HTTP method (comma-separated) |
531
- | `--status <range>` | Status range: `2xx`, `4xx`, exact `401`, etc. |
532
- | `--host <host>` | Filter by hostname |
533
- | `--path <prefix>` | Filter by path prefix |
534
- | `--search <text>` | Substring match on URL |
535
- | `--since <time>` | Since time (5m, 2h, 10am, yesterday, monday, 2024-01-01) |
536
- | `--before <time>` | Before time (same formats as --since) |
537
- | `--header <spec>` | Header name or name:value |
538
- | `--header-target <target>` | `request`, `response`, or `both` (default) |
539
- | `--intercepted-by <name>` | Filter by interceptor name |
540
- | `--limit <n>` | Max results (default 50) |
541
- | `--offset <n>` | Skip results (default 0) |
542
- | `--json` | JSON output |
530
+ | Flag | Description |
531
+ | -------------------------- | -------------------------------------------------------- |
532
+ | `--method <methods>` | Filter by HTTP method (comma-separated) |
533
+ | `--status <range>` | Status range: `2xx`, `4xx`, exact `401`, etc. |
534
+ | `--host <host>` | Filter by hostname |
535
+ | `--path <prefix>` | Filter by path prefix |
536
+ | `--search <text>` | Substring match on URL |
537
+ | `--since <time>` | Since time (5m, 2h, 10am, yesterday, monday, 2024-01-01) |
538
+ | `--before <time>` | Before time (same formats as --since) |
539
+ | `--header <spec>` | Header name or name:value |
540
+ | `--header-target <target>` | `request`, `response`, or `both` (default) |
541
+ | `--source <name>` | Filter by request source (e.g. node, python) |
542
+ | `--intercepted-by <name>` | Filter by interceptor name |
543
+ | `--limit <n>` | Max results (default 50) |
544
+ | `--offset <n>` | Skip results (default 0) |
545
+ | `--json` | JSON output |
543
546
 
544
547
  #### `procsi requests search <query>`
545
548
 
@@ -589,8 +592,8 @@ procsi request a1b2c3d export har
589
592
 
590
593
  List active proxy sessions.
591
594
 
592
- | Flag | Description |
593
- |------|-------------|
595
+ | Flag | Description |
596
+ | -------- | ----------- |
594
597
  | `--json` | JSON output |
595
598
 
596
599
  ### `procsi clear`
@@ -634,13 +637,13 @@ procsi interceptors logs --follow # live tail (Ctrl+C to stop)
634
637
  procsi interceptors logs --follow --json # live tail as NDJSON
635
638
  ```
636
639
 
637
- | Flag | Description |
638
- |------|-------------|
639
- | `--name <interceptor>` | Filter by interceptor name |
640
- | `--level <level>` | Filter by level (info, warn, error) |
641
- | `--limit <n>` | Max events (default 50) |
642
- | `--follow` | Live tail — poll for new events |
643
- | `--json` | JSON output |
640
+ | Flag | Description |
641
+ | ---------------------- | ----------------------------------- |
642
+ | `--name <interceptor>` | Filter by interceptor name |
643
+ | `--level <level>` | Filter by level (info, warn, error) |
644
+ | `--limit <n>` | Max events (default 50) |
645
+ | `--follow` | Live tail — poll for new events |
646
+ | `--json` | JSON output |
644
647
 
645
648
  #### `procsi interceptors logs clear`
646
649
 
@@ -690,13 +693,11 @@ procsi daemon stop
690
693
  eval "$(procsi on)"
691
694
  ```
692
695
 
693
- ### Terminal too small
694
-
695
- The TUI needs at least 60 columns by 10 rows.
696
-
697
696
  ### Requests not appearing
698
697
 
699
- Your HTTP client needs to respect proxy environment variables.
698
+ Your HTTP client needs to respect proxy environment variables.
699
+
700
+ There are workarounds implemented for node - e.g. fetch override. Other libraries in different environments may need a similar treatment.
700
701
 
701
702
  ## Licence
702
703
 
@@ -1 +1 @@
1
- {"version":3,"file":"off.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/off.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,eAAO,MAAM,UAAU,SAmBnB,CAAC"}
1
+ {"version":3,"file":"off.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/off.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,eAAO,MAAM,UAAU,SAmBnB,CAAC"}
@@ -13,6 +13,7 @@ const PROCSI_ENV_VARS = [
13
13
  "GLOBAL_AGENT_HTTPS_PROXY",
14
14
  "NODE_USE_ENV_PROXY",
15
15
  "PROCSI_SESSION_ID",
16
+ "PROCSI_SESSION_TOKEN",
16
17
  "PROCSI_LABEL",
17
18
  ];
18
19
  export const offCommand = new Command("off")
@@ -1 +1 @@
1
- {"version":3,"file":"off.js","sourceRoot":"","sources":["../../../src/cli/commands/off.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAEpE,0CAA0C;AAC1C,MAAM,eAAe,GAAG;IACtB,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,aAAa;IACb,eAAe;IACf,oBAAoB;IACpB,qBAAqB;IACrB,yBAAyB;IACzB,0BAA0B;IAC1B,oBAAoB;IACpB,mBAAmB;IACnB,cAAc;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KACzC,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,oEAAoE;IACpE,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,8CAA8C;IAC9C,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAExC,mCAAmC;IACnC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;IAE9C,4DAA4D;IAC5D,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"off.js","sourceRoot":"","sources":["../../../src/cli/commands/off.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAEpE,0CAA0C;AAC1C,MAAM,eAAe,GAAG;IACtB,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,aAAa;IACb,eAAe;IACf,oBAAoB;IACpB,qBAAqB;IACrB,yBAAyB;IACzB,0BAA0B;IAC1B,oBAAoB;IACpB,mBAAmB;IACnB,sBAAsB;IACtB,cAAc;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KACzC,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,oEAAoE;IACpE,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,8CAA8C;IAC9C,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAExC,mCAAmC;IACnC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;IAE9C,4DAA4D;IAC5D,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"on.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/on.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAIlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CASnE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAMjD;AAED,eAAO,MAAM,SAAS,SA+GlB,CAAC"}
1
+ {"version":3,"file":"on.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/on.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAIlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CASnE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAMjD;AAED,eAAO,MAAM,SAAS,SAmHnB,CAAC"}
@@ -74,6 +74,7 @@ export function formatNodeOptionsRestore() {
74
74
  export const onCommand = new Command("on")
75
75
  .description("Output shell export statements to start intercepting HTTP traffic")
76
76
  .option("-l, --label <label>", "Label for this session")
77
+ .option("-s, --source <name>", "Label the source process (auto-detected from PID if omitted)")
77
78
  .option("--no-restart", "Do not auto-restart daemon on version mismatch")
78
79
  .action(async (options, command) => {
79
80
  // If stdout is a TTY, user ran directly — show instructions instead
@@ -115,7 +116,7 @@ export const onCommand = new Command("on")
115
116
  // Register session with daemon
116
117
  const client = new ControlClient(paths.controlSocketFile);
117
118
  try {
118
- const session = await client.registerSession(label, process.ppid);
119
+ const session = await client.registerSession(label, process.ppid, options.source);
119
120
  // Build environment variables
120
121
  const envVars = {
121
122
  HTTP_PROXY: proxyUrl,
@@ -132,6 +133,7 @@ export const onCommand = new Command("on")
132
133
  ...getNodeEnvVars(proxyUrl),
133
134
  // procsi session tracking
134
135
  PROCSI_SESSION_ID: session.id,
136
+ PROCSI_SESSION_TOKEN: session.token,
135
137
  };
136
138
  if (label) {
137
139
  envVars["PROCSI_LABEL"] = label;
@@ -1 +1 @@
1
- {"version":3,"file":"on.js","sourceRoot":"","sources":["../../../src/cli/commands/on.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"on.js","sourceRoot":"","sources":["../../../src/cli/commands/on.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/request.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0IpC,eAAO,MAAM,cAAc,SAiCvB,CAAC"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/request.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkMpC,eAAO,MAAM,cAAc,SA+BvB,CAAC"}
@@ -123,6 +123,64 @@ const exportSubcommand = new Command("export")
123
123
  client.close();
124
124
  }
125
125
  });
126
+ const saveSubcommand = new Command("save")
127
+ .description("Save (bookmark) a request so it persists across clear operations")
128
+ .action(async (_opts, command) => {
129
+ const parentOpts = command.parent?.args ?? [];
130
+ const idPrefix = parentOpts[0];
131
+ if (!idPrefix || typeof idPrefix !== "string") {
132
+ console.error("Usage: procsi request <id> save");
133
+ process.exit(1);
134
+ }
135
+ const { client } = await connectToDaemon(command);
136
+ try {
137
+ const request = await resolveRequest(client, idPrefix);
138
+ const result = await client.saveRequest(request.id);
139
+ if (result.success) {
140
+ console.log(` Request ${request.id.slice(0, SHORT_ID_LENGTH)} saved`);
141
+ }
142
+ else {
143
+ console.error(` Failed to save request`);
144
+ process.exit(1);
145
+ }
146
+ }
147
+ catch (err) {
148
+ console.error(`Error: ${getErrorMessage(err)}`);
149
+ process.exit(1);
150
+ }
151
+ finally {
152
+ client.close();
153
+ }
154
+ });
155
+ const unsaveSubcommand = new Command("unsave")
156
+ .description("Remove the saved/bookmark flag from a request")
157
+ .action(async (_opts, command) => {
158
+ const parentOpts = command.parent?.args ?? [];
159
+ const idPrefix = parentOpts[0];
160
+ if (!idPrefix || typeof idPrefix !== "string") {
161
+ console.error("Usage: procsi request <id> unsave");
162
+ process.exit(1);
163
+ }
164
+ const { client } = await connectToDaemon(command);
165
+ try {
166
+ const request = await resolveRequest(client, idPrefix);
167
+ const result = await client.unsaveRequest(request.id);
168
+ if (result.success) {
169
+ console.log(` Request ${request.id.slice(0, SHORT_ID_LENGTH)} unsaved`);
170
+ }
171
+ else {
172
+ console.error(` Failed to unsave request`);
173
+ process.exit(1);
174
+ }
175
+ }
176
+ catch (err) {
177
+ console.error(`Error: ${getErrorMessage(err)}`);
178
+ process.exit(1);
179
+ }
180
+ finally {
181
+ client.close();
182
+ }
183
+ });
126
184
  // --- Main `request` command ---
127
185
  export const requestCommand = new Command("request")
128
186
  .description("View a single request in detail")
@@ -130,6 +188,8 @@ export const requestCommand = new Command("request")
130
188
  .option("--json", "JSON output")
131
189
  .addCommand(bodySubcommand)
132
190
  .addCommand(exportSubcommand)
191
+ .addCommand(saveSubcommand)
192
+ .addCommand(unsaveSubcommand)
133
193
  .action(async (id, opts, command) => {
134
194
  const { client } = await connectToDaemon(command);
135
195
  try {
@@ -139,11 +199,7 @@ export const requestCommand = new Command("request")
139
199
  return;
140
200
  }
141
201
  console.log(formatRequestDetail(request));
142
- const hint = formatHint([
143
- "body for full body",
144
- "export curl|har",
145
- "body --request for request body",
146
- ]);
202
+ const hint = formatHint(["body for full body", "export curl|har", "save|unsave to bookmark"]);
147
203
  if (hint) {
148
204
  console.log("");
149
205
  console.log(hint);
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/cli/commands/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/cli/commands/request.ts"],"names":[],"mappings":"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"}