Skip to content

Releases: sankalpgunturi/collab-claw

v0.2.0 — persistence, history, expose, reconnect UX, markdown TUI

Choose a tag to compare

@sankalpgunturi sankalpgunturi released this 23 May 16:52
v0.2.0
20aacd3

v0.2.0 — cross-network, persistence, history, and a friendlier TUI

The first feature release after the initial v1 ship. Four new
capabilities, all backward-compatible with v0.1.x.

✨ New features

Cross-network rooms — collab-claw expose

Wraps a Cloudflare quick tunnel so teammates on different networks can
join. Install cloudflared (brew install cloudflared on macOS), then:

collab-claw expose

You'll get a https://<random>.trycloudflare.com#secret=… URL to DM
out. Your LAN URL still works for local teammates in parallel. Ctrl-C
tears the tunnel down cleanly.

Transcript persistence

Every event is now appended to ~/.collab-claw/log/<roomId>.jsonl as
it flows through the relay — prompts, responses, tool calls, system
notices. Disable with COLLAB_CLAW_LOG=off; override the directory
with COLLAB_CLAW_LOG_DIR=....

collab-claw history

Replay or audit any past room:

collab-claw history                  # list rooms (or tail current)
collab-claw history <roomId>         # pretty-print all events
collab-claw history <roomId> --json  # raw jsonl for piping
collab-claw history <roomId> --limit=50

Reconnect UX in the joiner TUI

Status bar now surfaces connection state instead of silently retrying:

  • ● live — stream healthy
  • ● reconnecting… — between attempts (1–2 failures)
  • ● host offline (last seen Xm ago) — 3+ consecutive failures

Backoff is exponential (1s, 2s, 4s, 8s, capped at 10s). One inline
notice when the stream drops, one "● reconnected" when it comes back.

Markdown subset in prompts/responses

Prompts and Claude responses get a tasteful subset rendered in the TUI:

  • **bold**, *italic*
  • `inline code` (bold cyan)
  • Fenced code blocks (```-fenced, dim border)

No CommonMark, no heavy deps — ~80 lines of regex tokenisation.

🛠 Other improvements

  • fix(bin): bin/collab-claw now honors the exit code from
    command modules. Previously a command returning non-zero (e.g.
    expose with no cloudflared on PATH) exited 0.
  • chore: relay /info route bumped to version: 0.2.0.

📦 Install

# npm
npm install -g collab-claw

# Homebrew
brew tap sankalpgunturi/tap
brew install collab-claw

# Source
git clone https://github.com/sankalpgunturi/collab-claw.git
cd collab-claw && npm link

🧪 Tests

102/102 passing across six suites — 25 new cases cover the v0.2.0
additions (persistence, history, expose guards, reconnect, markdown,
log-off).

🦞 What's next

Roadmap-ish, no commitments:

  • A collab-claw history --tail mode that follows a live room.
  • Reconnection of the host (currently a host laptop sleep ends the
    room; joiners auto-reconnect when the relay returns, but the host's
    Claude has lost the session).
  • Optional E2E encryption of prompt/response payloads so a tunnel
    provider can't snoop on room contents.

Issues and PRs welcome — see CONTRIBUTING.md.

🙏 Thanks

To the v0.1.1 and v0.1.2 reviewers — every finding from those two
review rounds is locked in by regression tests
(test/regressions.mjs), and v0.2.0 builds directly on that
foundation.