pennyrouter 0.3.0 → 0.3.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
@@ -23,7 +23,7 @@ npx pennyrouter status
23
23
  Installation opens a browser and requires login to the PennyRouter account that should own
24
24
  the new machine key. CLI installs no longer create anonymous ghost accounts.
25
25
 
26
- With no `--harness` flag, the interactive installer shows Claude Code and Codex. Detected
26
+ With no `--harness` flag, the interactive installer shows Claude Code, Codex, and OpenCode. Detected
27
27
  tools start checked. The additional legacy integrations remain available through an explicit
28
28
  `--harness <id>` selection or `--all`.
29
29
 
@@ -34,15 +34,19 @@ OpenRouter key. PennyRouter-funded provider keys are never an installed-harness
34
34
 
35
35
  ## Explicit Penny Commands
36
36
 
37
- On macOS and Linux, a normal install adds a small `penny` launcher under `~/.local/bin`:
37
+ On macOS and Linux, a normal install adds a small `penny` launcher under `~/.local/bin`.
38
+ On Windows it installs `penny.cmd` under `%LOCALAPPDATA%\\PennyRouter\\bin` and adds that
39
+ directory to the user PATH:
38
40
 
39
41
  ```bash
40
42
  penny claude
41
43
  penny codex
44
+ penny opencode
42
45
  ```
43
46
 
44
- Arguments are passed through to the native harness, so commands such as `penny claude --resume`
45
- and `penny codex resume --last` work normally. By default, bare `claude` and `codex` remain
47
+ Arguments are passed through to the native harness, so commands such as `penny claude --resume`,
48
+ `penny codex resume --last`, and `penny opencode --continue` work normally. By default, bare
49
+ `claude`, `codex`, and `opencode` remain
46
50
  completely native; their normal configuration files are not redirected. Choose the installer's
47
51
  "make PennyRouter the default" option, or pass `--make-default`, to retain the original global
48
52
  routing behavior.
@@ -51,9 +55,10 @@ Existing PennyRouter installs preserve their current bare-command behavior durin
51
55
  the user explicitly changes it. Close running Claude Code or Codex sessions only when adding or
52
56
  removing global bare-command routing. A Penny-only install does not require closing native sessions.
53
57
 
54
- The launcher uses a private config at `~/.config/pennyrouter/config.json`, a Claude settings overlay,
55
- and a secret-free Codex profile. The installer adds one marked PATH block to zsh or bash startup
56
- files when needed; `--no-path-update` skips that edit.
58
+ The launcher uses a private config, a Claude settings overlay, and a secret-free Codex profile.
59
+ The installer adds marked PATH blocks to the interactive and login startup files for zsh or bash
60
+ on macOS/Linux, or a single user-PATH entry on Windows, when needed; `--no-path-update` skips that
61
+ edit. Open a new terminal after a PATH update.
57
62
 
58
63
  In Claude Code sessions launched with `penny claude`, `/penny help` is an alias for the existing
59
64
  `@penny help` syntax. Both forms remain supported. Codex continues to use `@penny` because Codex
@@ -107,8 +112,8 @@ forward. Use `install` instead when the intent is to change those choices.
107
112
 
108
113
  Because the managed tool config is rewritten only for tools whose bare command already routes
109
114
  through PennyRouter, a Penny-only install leaves files such as `~/.claude/settings.json`
110
- untouched and needs no session shutdown. Updating a tool that owns global routing requires
111
- closing its running sessions, or passing `--allow-running-harnesses`. Unrelated keys and user
115
+ untouched and needs no session shutdown. Updates do not inspect or require stopping running
116
+ harness processes. Unrelated keys and user
112
117
  settings inside managed config files are preserved, and re-running `update` is idempotent.
113
118
 
114
119
  Restart Claude Code or Codex afterwards to pick up the refreshed configuration.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pennyrouter",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Install and manage PennyRouter local coding-agent integrations.",
5
5
  "homepage": "https://pennyrouter.com",
6
6
  "bugs": {
@@ -24,7 +24,7 @@
24
24
  ],
25
25
  "scripts": {
26
26
  "start": "node ./bin/pennyrouter.js",
27
- "check": "node --check ./bin/pennyrouter.js && node --check ./bin/penny.js && find src -name '*.js' -print0 | xargs -0 -n1 node --check && node src/session.test.js && node src/statusline.test.js && node src/harnesses/claude-code.test.js && node src/harnesses/codex.test.js && node src/launch.test.js"
27
+ "check": "node --check ./bin/pennyrouter.js && node --check ./bin/penny.js && find src -name '*.js' -print0 | xargs -0 -n1 node --check && node src/session.test.js && node src/statusline.test.js && node src/harnesses/claude-code.test.js && node src/harnesses/codex.test.js && node src/harnesses/opencode.test.js && node src/launch.test.js && node src/thread-session.test.js && node src/thread-session-codex.test.js && node src/mcp-register.test.js && node src/mcp.test.js"
28
28
  },
29
29
  "license": "MIT"
30
30
  }