Keysat 2bae2f3571 Add capture mode: /capture + per-room capture threads → cross-project inbox
A capture-thread message (or /capture <text> in any room) logs to standards/
INBOX.md via capture-note.sh — deterministic, no claude call — and confirms
in-thread; /triage stays the gate into each repo (D13). Thread roots seeded by
seed-capture-threads.py.
2026-06-16 14:59:38 -05:00

matrix-bridge

A single-user Matrix → Claude Code bridge. Send a message in a project's Matrix room and a Claude Code session launches on the Mac in that project's repo, then surfaces to your phone via Claude Code Remote Control. The point: make the trigger for a coding session portable without moving execution off the Mac.

Runs as a small matrix-nio bot in a Docker container on a DGX Spark; a zsh wrapper on the Mac (scripts/launch-claude.sh) is the only piece that knows the Mac's environment. Routing is deterministic in v1 — the room you message in decides the repo (an explicit config map).

Status: live on the Spark — Phases 03 + headless "ask" mode shipped. The bot runs in 11 project rooms + an all-projects room, and is managed from the Spark Control dashboard. See AGENTS.md## Current state for details and ROADMAP.md for the phase plan.

How it works (v1)

Matrix message in a project room
  → bot on the Spark maps room → repo
  → SSHes to the Mac, runs scripts/launch-claude.sh <repo_dir> <message>
  → wrapper cd's into the repo and launches `claude`
  → Remote Control notifies the phone; you drive the session there

Setup

The bot is live; this is the shape of a fresh install: Matrix onboarding (Element + the existing Synapse homeserver, a bot user), the Mac wrapper, passwordless SSH from the Spark to the Mac, and the room→repo mapping. Copy config.example.toml to config.toml (gitignored) and fill in real room IDs and repo paths. Deploy and day-2 ops (status / update / restart) run from the Spark Control dashboard — see docs/spark-control-integration.md for the command contract.

S
Description
No description provided
Readme 201 KiB
Languages
Python 60.5%
Shell 35.4%
Dockerfile 4.1%