@freibergergarcia/phone-a-friend 2.2.0 → 2.2.1

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "phone-a-friend",
3
3
  "description": "CLI relay that lets AI coding agents collaborate by sending prompts and repository context to backend agents.",
4
- "version": "2.2.0",
4
+ "version": "2.2.1",
5
5
  "author": {
6
6
  "name": "Bruno Freiberger"
7
7
  }
package/README.md CHANGED
@@ -24,17 +24,18 @@ Relay tasks to any backend, spin up multi-model teams, or run persistent multi-a
24
24
  | **Team** | Iterative multi-backend refinement over N rounds | Collaborative review, converging on a solution |
25
25
  | **Agentic** | Persistent multi-agent sessions with @mention routing | Autonomous collaboration, adversarial review, deep analysis |
26
26
 
27
- <div align="center">
28
-
29
- ### TUI Dashboard
30
-
31
- <img src="https://raw.githubusercontent.com/freibergergarcia/phone-a-friend/main/assets/tui-dashboard.gif" alt="TUI dashboard" width="600">
32
-
33
- ### Web Dashboard
27
+ ### Host parity
34
28
 
35
- <img src="https://raw.githubusercontent.com/freibergergarcia/phone-a-friend/main/assets/web-dashboard.gif" alt="Web dashboard" width="700">
29
+ | Feature | Claude Code | OpenCode |
30
+ |---|:---:|:---:|
31
+ | `/phone-a-friend` (single-backend relay) | ✓ | ✓ |
32
+ | `/curiosity-engine` (Q&A rally) | ✓ | ✓ |
33
+ | `/phone-a-team` (iterative multi-model team) | ✓ | — |
34
+ | Plugin marketplace install | ✓ | — |
35
+ | CLI plugin install (`phone-a-friend plugin install --<host>`) | ✓ | ✓ |
36
+ | Skill auto-discovery | ✓ | ✓ |
36
37
 
37
- </div>
38
+ OpenCode users can replicate `/phone-a-team` by running repeated `/phone-a-friend` calls and synthesizing manually.
38
39
 
39
40
  ## Quick Start
40
41
 
@@ -57,26 +58,15 @@ The setup wizard detects your backends, offers to install detected host integrat
57
58
 
58
59
  **Claude Code marketplace (commands and skills only):**
59
60
 
60
- If you use [Claude Code](https://docs.anthropic.com/en/docs/claude-code/setup),
61
- you can install directly from the marketplace:
62
-
63
61
  ```
64
62
  /plugin marketplace add freibergergarcia/phone-a-friend
65
63
  /plugin install phone-a-friend@phone-a-friend-marketplace
66
64
  ```
67
65
 
68
- This fetches the latest version from npm automatically. To update later:
69
-
70
- ```
71
- /plugin marketplace update phone-a-friend-marketplace
72
- /plugin update phone-a-friend@phone-a-friend-marketplace
73
- ```
66
+ To update: `/plugin marketplace update phone-a-friend-marketplace` then `/plugin update phone-a-friend@phone-a-friend-marketplace`.
74
67
 
75
68
  > [!NOTE]
76
- > Marketplace install gives you Claude Code integration (slash commands
77
- > and skills). For the full CLI including agentic mode, the TUI dashboard, and
78
- > the web dashboard on localhost, install globally with
79
- > `npm install -g @freibergergarcia/phone-a-friend`.
69
+ > Marketplace install ships only the slash commands and skills. For the full CLI (agentic mode, TUI, web dashboard), install via `npm install -g @freibergergarcia/phone-a-friend`.
80
70
 
81
71
  **OpenCode commands and skills:**
82
72
 
@@ -113,10 +103,10 @@ Build a team with Claude and Ollama. Have them review the website copy,
113
103
  loop through 3 rounds, and converge on final suggestions.
114
104
  ```
115
105
 
116
- No slash commands needed. Once the host integration is installed (the setup wizard offers to do this), the host can route single-backend tasks through `/phone-a-friend`. In Claude Code, mention multiple backends and Claude can use `/phone-a-team` for iterative multi-agent refinement; `/phone-a-team` is Claude-only because it depends on Claude Agent Teams primitives. In OpenCode, use repeated `/phone-a-friend` calls and synthesize the results manually. You can explicitly invoke `/phone-a-friend` in both hosts, and `/phone-a-team` in Claude Code only.
106
+ No slash commands needed once the host integration is installed (see [Host parity](#host-parity) for which slash commands work in which host).
117
107
 
118
108
  > [!TIP]
119
- > **Power-user setup:** Run Claude Code in [**tmux**](https://formulae.brew.sh/formula/tmux) and enable [**bypass permissions**](https://docs.anthropic.com/en/docs/claude-code/security) (`⏵⏵`) for trusted repos. [**Agent teams**](https://docs.anthropic.com/en/docs/claude-code/agent-teams) show up in split panes, so you can watch agents work in parallel without approval pauses. Pair it with **phone-a-friend agentic mode** for fully autonomous multi-agent sessions.
109
+ > **Claude Code power-user setup:** Run in [**tmux**](https://formulae.brew.sh/formula/tmux) with [**bypass permissions**](https://docs.anthropic.com/en/docs/claude-code/security) (`⏵⏵`) and [**Agent Teams**](https://docs.anthropic.com/en/docs/claude-code/agent-teams) to watch agents work in parallel split panes. Pair with **phone-a-friend agentic mode** for fully autonomous sessions.
120
110
 
121
111
  ## CLI Usage
122
112
 
@@ -213,21 +203,21 @@ phone-a-friend config edit # Open in $EDITOR
213
203
 
214
204
  ## Backends
215
205
 
216
- | Backend | Type | Streaming | How it works |
217
- |---------|------|-----------|-------------|
218
- | **Codex** | CLI subprocess | No | Runs `codex exec` with sandbox and repo context |
219
- | **Gemini** | CLI subprocess | No | Runs `gemini --prompt` with `--yolo` auto-approve |
220
- | **Ollama** | HTTP API | Yes (NDJSON) | POSTs to `localhost:11434/api/chat` via native fetch |
221
- | **Claude** | CLI subprocess | Yes (JSON) | Runs `claude` with sandbox-to-tool mapping |
222
- | **OpenCode** | CLI subprocess | Yes (NDJSON) | Runs `opencode run` with repo-local tool access |
206
+ | Backend | Type | Streaming |
207
+ |---------|------|-----------|
208
+ | **Codex** | CLI subprocess | No |
209
+ | **Gemini** | CLI subprocess | No |
210
+ | **Ollama** | HTTP API | Yes (NDJSON) |
211
+ | **Claude** | CLI subprocess | Yes (JSON) |
212
+ | **OpenCode** | CLI subprocess | Yes (NDJSON) |
223
213
 
224
214
  Ollama configuration via environment variables:
225
215
  - `OLLAMA_HOST` -- custom host (default: `http://localhost:11434`)
226
216
  - `OLLAMA_MODEL` -- default model (overridden by `--model` flag)
227
217
 
228
218
  Phone-a-friend environment variables:
229
- - `PHONE_A_FRIEND_INCLUDE_DIFF=false` -- disable diff inclusion across every relay; equivalent to passing `--no-include-diff` on every command. Useful when `defaults.include_diff = true` in your config but you want a session without the diff. Also the canonical mechanism used by OpenCode shims for stale-binary compatibility (the `--no-include-diff` flag was added in v2.2.0+; older binaries reject it but accept this env var since v1.7.2).
230
- - `PHONE_A_FRIEND_HOST=opencode` -- mark the calling process as OpenCode for the recursion guard. Set automatically by the OpenCode shims; only relevant if you're invoking PaF programmatically from inside an OpenCode session.
219
+ - `PHONE_A_FRIEND_INCLUDE_DIFF=false` -- disable diff inclusion globally (equivalent to `--no-include-diff` on every call).
220
+ - `PHONE_A_FRIEND_HOST=opencode` -- mark the calling process as OpenCode for the recursion guard (set automatically by the OpenCode shims).
231
221
 
232
222
  OpenCode configuration via TOML:
233
223
  ```toml
@@ -272,14 +262,6 @@ phone-a-friend agentic dashboard # default: localhost:7777
272
262
  phone-a-friend agentic dashboard --port 8080
273
263
  ```
274
264
 
275
- **How it works:**
276
-
277
- 1. The orchestrator spawns each agent with the initial prompt and a unique name (e.g., `ada.reviewer`, `fern.critic`)
278
- 2. Agents respond and `@mention` other agents (or `@all` / `@user`)
279
- 3. The orchestrator routes messages to the targeted agents
280
- 4. Agents reply in subsequent turns, building on accumulated context
281
- 5. The session ends when agents converge (no new messages), hit the turn limit, or time out
282
-
283
265
  **What you get:**
284
266
 
285
267
  - **Live web dashboard** -- watch agents collaborate in real time at `localhost:7777` (SSE-powered)
@@ -297,11 +279,20 @@ Full usage guide, examples, CLI reference, and configuration details:
297
279
 
298
280
  ## Uninstall
299
281
 
282
+ **npm install:**
283
+
300
284
  ```bash
301
285
  npm uninstall -g @freibergergarcia/phone-a-friend
302
286
  ```
303
287
 
304
- The Claude Code plugin and OpenCode commands/skills are removed automatically when installed through the CLI.
288
+ Automatically removes the Claude Code plugin (CLI-installed), OpenCode commands and skills, and the `~/.config/phone-a-friend` directory (config, sessions, jobs).
289
+
290
+ **Claude Code marketplace:**
291
+
292
+ ```
293
+ /plugin uninstall phone-a-friend@phone-a-friend-marketplace
294
+ /plugin marketplace remove phone-a-friend-marketplace
295
+ ```
305
296
 
306
297
  ## Contributing
307
298
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@freibergergarcia/phone-a-friend",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "description": "CLI relay that lets AI coding agents collaborate",
5
5
  "keywords": [
6
6
  "ai-agent",