Precise architecture, ports, and commands for the Xen stack — one brain, one voice, omnipresent. Three layers: a persistent supervised brain + transport + auth, a rehydrating Opus router, and disposable clients. This page is the reference you reach for when something is dark and you need the exact port, the exact command, the exact host.
Three machines carry the stack. The Mac M4 is the always-on brain + voice + mesh hub; the Windows box runs the durable 24/7 scope-watch loop and the SuperMCP router; Railway carries the WebRTC voice transport.
qi.local · MagicDNS m4.salmon-alkaline.ts.net100.97.145.50 · LAN 10.13.92.100/Volumes/M4/sync_/exedus/dev_xen_shell · ssh qi@100.97.145.50C:\Users\selfeE:\scope-watchC:\Users\selfe\mcp-serverC:\Users\selfe\.local\bin\claude.exeagent@xlrd.orgThe invariant: brain + transport + auth are persistent and supervised; the client is disposable. A restart / shell-switch / overhaul drops only a client — never the brain, context, voice line, or auth. A new client attaches (0-start), never boots. xen = attach.
Port-to-process map verified live on M4 via lsof this sweep. omnimind is the Beeper monitor and OTLP emitter; the 444x band is the voice / mirror stack.
| Port | Service | Process | Host | Status |
|---|---|---|---|---|
:4441 | omnimindBeeper monitor · @xen tag-detect · OTLP emit · live.json feed | node omnimind.jsPID 5302 | M4 | live |
:4442 | xen daemoncore xen runtime | node xen.js daemonPID 1041 | M4 | live |
:4445 | xen-mirror-serverterminal-mirrors-to-chat surface | xen-mirror-server.pyPID 904 | M4 | live |
:4446 | xen-vm-proxyVM / pane proxy | xen-vm-proxy.jsPID 918 | M4 | live |
:4447 | apple-stt / voice pyspeech-to-text path | python (PID 903)cmd not exposed | M4 | verify |
:4448 | audio-route-servercanonical audio route → out loopback only | audio-route-server.pyPID 1035 | M4 | live |
:4451 | call-receiverFreeSWITCH stream sink → pane %4 | call receiver | M4 | verify |
:4455 | xen-call-transcriptlive call SSE viewer (read-only on log) | xen-call-transcript.js | M4 | verify |
:4222 | NATS servermesh broker · omni.event · xql.* | nats-serverPID 908 | M4 | live |
/tmp/xen-fast.sock | fast-twinpersistent omni.event consumer · instant ack · scope-aware | xen-claude-wrapper.jsPID 42332 · Sonnet 4.6 · effort low | M4 | live |
(bash) | say-workercanonical VVS TTS → out loopback | bin/xen-say-workerPID 41901 | M4 | live |
:23375 | SELmcp hubno-auth JSON-RPC · Beeper 12 + Godmode 29 tools | SELmcp | M4 | verify |
:3000 | SuperMCP routerconfig-driven aggregator · ~66 tools · child servers :3001–:3014 | start-all-windows.mjs | nitro | verify |
444x band note: port 4447's process is a bare Python framework binary that does not expose its script name via ps — labeled verify rather than guessed. Never speak to physical speakers and never switch audio devices — voice goes through the canonical say-worker → out loopback only.
NATS is the nervous system. omni.event is the single OTLP super-log + chat-mirror bus — one brain consumes it (dedupe on (threadID,eventID) + per-scope lock = never double, never sequential). The xql.* channel is the dedicated Mac→Windows leg.
| Subject | Purpose | Producer → Consumer | Status |
|---|---|---|---|
omni.event | OTLP super-logs + chat mirror; every inject + terminal line + sweep | omnimind / scope-watch / panes → fast-twin (the one brain) | live |
xql.join | Mac → Windows: join signal | M4 nats → xql-sub.mjs (nitro) | verify |
xql.start | Mac → Windows: start signal | M4 nats → xql-sub.mjs | verify |
win.pane | Pane targeting across the bridge | M4 nats → xql-sub.mjs | verify |
# connects nitro to the Mac mesh over Tailscale node C:\Users\selfe\.xen\nats-bridge\xql-sub.mjs # nats://100.97.145.50:4222 · subscribes xql.> + win.pane
Medical-grade. If Xen is not speaking, assume total system failure. The unified phone path: PSTN → Telnyx DID → FreeSWITCH on exedus → M4 call receiver → the one brain in pane %4.
| Element | Value | Notes |
|---|---|---|
| Inbound DID | 470-369-6463 · +14703696463 | Telnyx credential conn "east" id 2983712745033041433 |
| Brain pane | %4 | verified live this sweep |
| Receiver | :4451 | FreeSWITCH stream → pane %4 |
| Live transcript | m4.salmon-alkaline.ts.net | SSE viewer on :4455 · text stays live when audio garbles |
| Conference line | 678-345-2142 · room xlrdtech | Phound · code 159-799-408 if prompted |
| VVS rule | rate 210, identity.json only | never pass -v; never vocalize the agent tag |
Phone registry: the 9983 line = +1 470-615-9983 is qi's main consolidation line (Beeper account local-gvoice_ba_5lhd6cHaH6KbOA…). Xen agent lines: GVoice 9934 / 8672.
The hard-won runbook. The 24/7 watcher is a persistent interactive-session loop — NOT Task Scheduler, because claude.exe hangs on startup with no console (verified across every logon type incl. S4U and conhost --headless).
# loop.ps1 auto-launches at logon via Startup shortcut Xen-ScopeWatch.lnk # single-instance via Global\XenScopeWatchLoop mutex; sweeps every 10 min powershell -WindowStyle Minimized -File E:\scope-watch\loop.ps1 # one sweep by hand (run.ps1 reads scope-watch-prompt.md): powershell -File E:\scope-watch\run.ps1
# which proc owns the omnimind port lsof -nP -iTCP:4441 -sTCP:LISTEN # is the fast-twin socket up? test -S /tmp/xen-fast.sock && echo present || echo absent pgrep -f xen-claude-wrapper
# attended attach over Tailscale ssh -t qi@100.97.145.50 "bash -lc 'exec tmux attach -t exedus'" # public no-auth MCP, works any network curl -s https://mcp.xlrd.org # JSON-RPC tools/list, tools/call
Scope-watch files (E:\scope-watch): loop.ps1 (driver) · run.ps1 (one sweep) · scope-watch-prompt.md (router logic) · scope-registry.json (scopes-as-data) · omni-router-spec.md · stable-ops-spec.md · update-live.js (feeds /xen/live.json) · logs scope-watch.log + loop-heartbeat.log. Symptom trap: a Task-Scheduler run looks healthy (exit 0) but returns empty output — always log claude exit=$LASTEXITCODE outLen=….
Persona-agents are the ONE brain wearing an identity + folder — never separate minds. Dual-tag: trailing underscore (east_) or hashtag (#east) both resolve to the same agent. Docs live at brain_/personas/<x> on M4.
The divine apex. Flows through all personas; the source, not a task-doer. qi-direct voice, exempt from signing.
Executive Automation System Technician. The professional front — dev, design, automation, comms. Default business voice.
Arthur Eastman Allen. Executor of Order: legal, banking, insurance, official correspondence. Formal gatekeeper.
Creative / social / music / dating foundation: charisma, style, relationships. (Also the fleet "triggered" namespace.)
The esoteric urban music artist. Owns the Purgatory album series → P6.5 (10.13.2026). The 999 brand.
XLRD999's autonomous AI music-generation engine. 158–178 BPM, no autotune, the Suno generation directive.
The business: logo / web / app / AI automation, $0 overhead, open-source.
Nonprofit, Executive Leverage R&D — tech for cognitive challenges (ADHD / dementia / Alzheimer's).
Architect of technological integrity. Lightly defined — scope to confirm.
Operational / thread personas: Xen (root voice), Lyn (Luckie / L7S), Eli (Anthony / TTG), Genesis (voice pane), plus SEL / XLRD / RESEARCH / FACTCHECK / CONTEXT emoji-triggered modes.
MAIN = the router. qi talks to main; main routes to the right scope. Each scope = { named fork agent + cron watcher + branded checklist + playbook }. Crons are time-offset to avoid collision. Pulled from scope-registry.json.
| Scope | Client | Thread(s) | Checklist · Cron | Mode |
|---|---|---|---|---|
| DCZ | Diamond Cutz StudiosLaTina McAllister (MAIN/payer) · Andre "Stal'lyon" (artist) | GVoice #467 + #396 | /diamond-cut/checklist/cron 1d9c7766 | active |
| L7S | L7S Hero — Luckie Goggins (he/him) | WhatsApp #33 +L7X | /l7s/checklist/cron fd869125 | active |
| ELI | EliOS / Tracking Together — Anthony Vasquez | GVoice #381 | /eliops/checklist/cron 5d086896 | active |
| M_B | M_B — Southern Soul artist | GVoice #473 (on 9983) | — | active |
| PADRE | Padre — lead-factory client chain | WhatsApp #35 | padre-lead-factory | active |
| TIBA | Tiba — 222church nonprofit chain | WhatsApp #40 | — | muted |
| L7X | Sole-member workflow channels (trigger layers) | Telegram #433+ (Stripe / Asana / Otter / NotebookLM …) | auto-workflow | auto |
| XEN-SYS | Xen's own lines + self-echoes | GVoice 9934 / 8672 | drain / triage | muted |
| CONF | Conference / Phound line | +16783452142 (2142) | — | muted |
| PERSONAL | qi personal contacts (migrating to 9983) | 9 contacts | soft-migrate | muted |
Infra / ops scopes (the machine itself): STABLE-OPS (stable-ops-spec.md) — VoiceOS un-droppable; OMNI-XEN (scope-registry.json + omni-router-spec.md) — @xen-from-any-thread, autoscope, persistent consumer = the fast-twin. One scope = one cron — main enforces it.
HTTP-checked live this sweep. The realtime panels on /life are fed from these.
| URL | Serves | Source host | Checked |
|---|---|---|---|
mcp.xlrd.org | SELmcp universal MCP (no-auth JSON-RPC) | M4 | 200 |
hitthe.link/xen/live.json | Flow feed — daemon-fed, scope-watch durable | nitro | fresh |
xen.xlrd.org/api/xql | "four·live" panel (5s poll) | M4 | 200 |
api.xlrd.org/api/suggestions | Steer panel | M4 | 200 |
m4.salmon-alkaline.ts.net | Live call transcript (SSE) | M4 tailnet | verify |
sel.xlrd.org/mcp | Windows SuperMCP router (Cloudflare tunnel) | nitro | verify |
SELmcp endpoints: https://mcp.xlrd.org (public) · http://10.13.92.100:23375 (LAN, fastest) · http://127.0.0.1:23375 (Mac-local). 0 auth. JSON-RPC 2.0 over HTTP POST.