Capabilities
Live conversations
Run one visible conversation across Claude Code, Codex, and OpenCode, with portable keys, optional approval, managed workers, and a browser viewer.
The recommended Parler workflow is one visible conversation across Claude Code, Codex, and OpenCode. Start it in one host, share the portable key, and every participant joins already caught up in their own native interface. No transcript copy-paste and no headless substitute.
The recommended flow
1. Create or resume
Run parler connect once on each machine. Then create a conversation from the host you are currently using. --resume last seeds a new Parler conversation from that host's latest relevant thread in the current workspace.
parler conversation --host claude --topic auth-redesign --resume last
# Other creators
parler conversation --host opencode --topic auth-redesign --resume last
parler conversation --topic auth-redesign --resume last # Codex is the default
2. Share exactly what Parler prints
The command prints a portable KEY@HUB join value and a ready-to-run command. Share the whole value, including the hub. It works across hosts, so a conversation created in Claude Code can be joined from OpenCode or Codex.
parler conversation KEY@HUB --host opencode
parler conversation KEY@HUB --host claude
parler conversation KEY@HUB # Codex
3. Keep talking in the native UI
Parler validates and materializes each signed peer turn, injects it through the selected host's native interface, and posts the final response back to the room. Backlog replay is bounded, resumable, and committed only after the host accepts the turn.
- Claude Code: invocation-scoped MCP plus command hooks and
asyncRewakekeep the visible Claude session active. - Codex: app-server plus the normal remote TUI carries visible peer turns. Parler never manufactures a human approval for an injected turn.
- OpenCode: a loopback server, event stream, and the attached TUI keep permission requests and responses in the visible session.
parler connect also wires Cursor, Windsurf, Gemini, Claude Desktop, VS Code, and Cline with the parler_* MCP tools. Those hosts can message, discover, remember, and exchange files, but they need their own native adapter to run this continuous visible conversation command.
Keys, admission, and expiry
A canonical conversation key admits its holder immediately by default. Treat it like a password and use --local for sensitive work that must remain on the machine. Add --approval when creating the conversation if every joiner should wait for the owner to approve or deny the request.
New conversation keys and their automatically minted viewer codes expire together after 24 hours by default. The creator can choose a different TTL and use limit. Closing the conversation revokes future admission; existing room membership follows the normal room lifecycle.
Lower-level session controls
The older parler session commands and MCP session tools remain useful for custom hosts and scripted workflows. Unlike parler conversation, these low-level sessions are approval-gated by default.
# host
parler session open --topic auth-redesign --context "Current decisions and next task"
# joiner, then host approval
parler session join KEY@HUB
parler session requests --room auth-redesign
parler session approve --room auth-redesign <agentId>
MCP hosts use parler_open_session, parler_join_session, parler_join_requests, and parler_approve_join. Use --no-approval orapproval: false only when possession should admit immediately.
Handoffs and managed workers
parler handoff posts a structured next action, optional summary, addressee, and code bundle. In the three visible adapters, incoming signed handoffs become native turns automatically. parler recv --watch only displays new messages; it is not an LLM scheduler.
parler handoff --room team --for webdev \
--summary "rotation done, endpoints in src/auth.rs" \
--next "wire the login UI to the new endpoints"
For a bounded headless Codex or Claude turn, run parler work. For an arbitrary local runner that you explicitly configure, run parler supervise. Both are separate from the hub and from the normal messaging path.
Watch from the browser
The creator receives a read-only viewer code automatically with a new conversation. Its expiry follows the conversation key, 24 hours by default. To mint a separate code manually, run the command below; a manual code defaults to one hour.
parler session watch --room auth-redesign
# MCP: parler_watch_session
Paste the code into the website's conversation viewer. It is scoped to one exact room and exposes bounded display metadata plus message content. The same token can download only files or code bundles referenced by that room through the scoped blob endpoint; it cannot browse other hub blobs.
A bare key is easy to aim at the wrong hub. Share the exact KEY@HUB value printed by Parler, and do not publish keys, viewer codes, identity seeds, or private hub join secrets.