# matrix-bridge — room → repo mapping (EXAMPLE) # # Copy to config.toml (gitignored) and fill in real values during Phase 0. # The room you message in determines which repo the Claude Code session launches in — # routing is deterministic in v1 (decision D6). Adding a project is a config edit, not code. [homeserver] url = "https://" # existing StartOS Synapse, reached over WireGuard/LAN user = "@matrix-bridge-bot:" # a dedicated bot Matrix account (not your own user) # Credentials (access token or password) come from the environment or a gitignored secret — # never commit them. The bot reads the homeserver URL + bot creds at startup. # How the bot reaches the Mac (the proven Phase 0 seam). The bot runs on the Spark, # where `ssh_alias` resolves; `launcher` is the absolute path to gui-launch.sh on the Mac. [mac] ssh_alias = "mac-bridge" launcher = "/Users/macpro/Projects//scripts/gui-launch.sh" ask_launcher = "/Users/macpro/Projects//scripts/ask-claude.sh" # headless `?`-prefix ask mode # Container only: docker-entrypoint.sh generates ~/.ssh/config for `ssh_alias` from these. # (On a host with `ssh_alias` already in ~/.ssh/config these are ignored.) hostname = "10.0.0.0" # the Mac's address reachable from the Spark (e.g. WireGuard IP) user = "" # One [[room]] block per project. # room_id — the internal Matrix room ID (starts with '!'), NOT the human alias (#name:domain) # repo_dir — an absolute path on the Mac (note: ~/Projects uses a capital P) # label — human-readable name, for logs and error messages [[room]] room_id = "!exampleRoomId:your-domain" repo_dir = "/Users/macpro/Projects/" label = "" [[room]] room_id = "!anotherRoomId:your-domain" repo_dir = "/Users/macpro/Projects/" label = ""