proxitor 0.9.0-beta.1 → 0.9.0-beta.2

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.
package/README.md CHANGED
@@ -345,13 +345,14 @@ The wizard asks for:
345
345
 
346
346
  - **OpenRouter API key** — stored in config or set as `OPENROUTER_API_KEY` env var
347
347
  - **Port** — default `8828` (avoids conflicts with common dev servers on 8080)
348
+ - **Listen address** — all interfaces (`0.0.0.0`), localhost only (`127.0.0.1`), or a custom address (IP, hostname, or `unix:/path`)
348
349
  - **API base URL** — default `https://openrouter.ai/api`; change for self-hosted or custom endpoints
349
- - **Data URL** — separate URL for provider/model data fetching; falls back to OpenRouter automatically if the custom API doesn't support these endpoints
350
350
  - **Authentication type** — `bearer` (default) or `oauth`; use `oauth` for custom proxy providers that pass tokens in the `Authorization: OAuth ...` header
351
- - **Host** — all interfaces (`0.0.0.0`) or localhost only (`127.0.0.1`)
352
351
  - **Save location** — project directory, `~/.config/proxitor/`, or `$XDG_CONFIG_HOME/proxitor/`
353
352
 
354
- If a config already exists, the wizard shows its location and asks whether to reconfigure. Existing `modelOverrides`, `provider`, and other fields are preserved only the wizard fields are updated.
353
+ After collecting the key, base URL, and auth type, the wizard performs a **best-effort upstream probe** (3 s timeout) to verify connectivity. If the upstream is unreachable or the key is rejected, a warning is shown but the config is still saved — this is informational only.
354
+
355
+ If a config already exists, the wizard shows its location and asks whether to reconfigure. All fields are **pre-filled** with current values — press Enter to keep, or type a new value. Existing `modelOverrides`, `provider`, and other fields are preserved — only the wizard fields are updated.
355
356
 
356
357
  ```sh
357
358
  proxitor config menu # interactive menu
@@ -359,9 +360,16 @@ proxitor config add # add a model override
359
360
  proxitor config edit # edit existing override
360
361
  proxitor config remove # remove override(s)
361
362
  proxitor config list # show current overrides
363
+ proxitor config list --json # overrides as JSON
364
+ proxitor config show # print the resolved config (merged)
365
+ proxitor config show --json # same, machine-readable
362
366
  proxitor config browse # explore models with pricing info
363
367
  proxitor config wizard # interactive setup wizard
364
- proxitor config validate # validate config file
368
+ proxitor config validate # validate config file (exit 0 ok, 1 invalid)
369
+ proxitor config validate --json # structured JSON result
370
+ proxitor doctor # diagnose environment + network + port + version
371
+ proxitor doctor --json # machine-readable diagnostic report
372
+ proxitor doctor --offline # skip network checks
365
373
  ```
366
374
 
367
375
  ### Add override walkthrough
@@ -426,19 +434,92 @@ The interface uses live data from the OpenRouter API — model search with type-
426
434
 
427
435
  ---
428
436
 
437
+ ## Diagnostics
438
+
439
+ When something doesn't work, `proxitor doctor` runs a battery of checks and prints a report. Sections cover:
440
+
441
+ - **Environment** — Node version, platform, TTY
442
+ - **Config** — discovery path, validity, override count
443
+ - **API key** — resolution (env vs. file; never prints the key)
444
+ - **Network** — upstream reachability (with configurable timeout)
445
+ - **Port** — availability of the configured port
446
+ - **Version** — installed version
447
+
448
+ Statuses: `✓ ok` / `⚠ warn` / `✗ fail` / `ⓘ skip`. Exit code is `0` when no `fail`, `1` otherwise — scriptable from CI.
449
+
450
+ ```sh
451
+ $ proxitor doctor
452
+
453
+ ▲ Proxitor Doctor
454
+
455
+ ◇ Environment
456
+ │ ✓ node-version — v22.4.1
457
+ │ ✓ platform — darwin arm64
458
+ │ ✓ tty — true
459
+
460
+ ◇ Config
461
+ │ ✓ config-found — /Users/u/proj/proxitor.config.yaml
462
+ │ ✓ config-valid — 12 keys, 3 override(s)
463
+
464
+ ◇ API key
465
+ │ ✓ api-key — set (env: set, file: set)
466
+
467
+ ◇ Network
468
+ │ ✓ upstream — https://openrouter.ai/api — 200, 342 models
469
+
470
+ ◇ Port
471
+ │ ✓ port-8828 — 127.0.0.1:8828
472
+
473
+ ◇ Version
474
+ │ ✓ version — 0.9.0-beta.1
475
+
476
+ └ Done. All checks passed.
477
+ ```
478
+
479
+ Useful flags:
480
+
481
+ ```sh
482
+ proxitor doctor --json # structured JSON for CI / scripts
483
+ proxitor doctor --offline # skip network checks (no upstream, no npm)
484
+ proxitor doctor --timeout 5000 # custom per-check network timeout (ms)
485
+ ```
486
+
487
+ ---
488
+
429
489
  ## CLI Options
430
490
 
491
+ ```sh
492
+ proxitor # start the proxy (default command)
493
+ proxitor start # same as above
494
+ proxitor up # alias for start
495
+ proxitor run # alias for start
496
+ proxitor --port 9000 # override port
497
+ proxitor ./team.yaml # use an explicit config
498
+ proxitor config show # print the resolved config
499
+ proxitor config show --json # machine-readable config
500
+ proxitor config list --json # overrides as JSON
501
+ proxitor config wizard # interactive setup
502
+ proxitor config validate # check the current config (exit 0/1)
503
+ proxitor config validate --json # structured JSON result
504
+ proxitor doctor # diagnose environment, network, port, version
505
+ proxitor doctor --offline # skip network checks
506
+ proxitor --help # full help
507
+ proxitor --version # print version
508
+ ```
509
+
431
510
  | Flag | Default | Description |
432
511
  |---|---|---|
433
- | `-p, --port <port>` | `8828` | Server port |
512
+ | `-p, --port <port>` | `8828` | Server port (validated: 1-65535) |
434
513
  | `-h, --host <host>` | `0.0.0.0` | Server host |
435
- | `-c, --config <path>` | auto-discovered | Path to config file |
436
- | `--openrouter-key <key>` | `$OPENROUTER_API_KEY` | OpenRouter API key |
514
+ | `-c, --config <path>` | auto-discovered | Path to config file (positional `[config-path]` also accepted) |
515
+ | `--openrouter-key <key>` / `-k <key>` | `$OPENROUTER_API_KEY` | OpenRouter API key |
437
516
  | `--verbose` | `false` | Enable verbose logging |
438
517
  | `--no-config` | | Skip config file discovery |
439
518
  | `-v, --version` | | Print version |
440
519
  | `--help` | | Print help |
441
520
 
521
+ Subcommands live under `proxitor config <subcommand>`. Run `proxitor config --help` for the full list, or see [Interactive Config Manager](#interactive-config-manager) for the walkthroughs.
522
+
442
523
  ---
443
524
 
444
525
  ## Development