{
  "schema": "fcs.skills/v2",
  "product": "fcs.ugrad.ai",
  "title": "fornevercollective skills · universal fcs CLI",
  "cli": "fcs",
  "install": "fcs install",
  "updated": "2026-08-10",
  "groups": [
    {
      "id": "media-wall",
      "label": "Media wall",
      "skills": [
        {
          "id": "watch",
          "cmd": "fcs watch",
          "slash": "/watch",
          "title": "Live demux · media wall",
          "blurb": "Live streams → half-block TTY or OS ffplay. News · trailers · VEVO · X media · any yt-dlp URL. Universal fcs watch.",
          "status": "shipped",
          "what": "/watch is the suite live video surface (fc-live-demux-v1). Resolve a channel name or URL → yt-dlp + ffmpeg demux → paint either half-block/Kitty in a Terminal or pop out to ffplay. Not a browser tab — a media-wall pipe any terminal or AI agent runs via fcs watch. Agents: prefer fcs watch (and popout when non-TTY); do not invent players.",
          "aliases": [
            "/gmux",
            "/tv",
            "/live",
            "fcs watch",
            "fcs gmux"
          ],
          "examples": [
            {
              "cmd": "fcs watch bloomberg",
              "note": "Live Bloomberg · TTY half-block demux"
            },
            {
              "cmd": "fcs watch popout bloomberg",
              "note": "Same feed → OS ffplay (agent-safe)"
            },
            {
              "cmd": "fcs watch cnn",
              "note": "CNN live when channel list resolves it"
            },
            {
              "cmd": "fcs watch news",
              "note": "News desk alias when mapped"
            },
            {
              "cmd": "fcs watch trailers",
              "note": "Movie trailer shuffle · s random · S toggle"
            },
            {
              "cmd": "fcs watch vevo",
              "note": "Music video desk when configured"
            },
            {
              "cmd": "fcs watch \"https://www.youtube.com/watch?v=…\"",
              "note": "Any yt-dlp / HLS / event URL"
            },
            {
              "cmd": "fcs watch \"https://x.com/user/media\"",
              "note": "X profile Media tab playlist"
            },
            {
              "cmd": "fcs watch popout \"https://x.com/user/media\"",
              "note": "X media → external ffplay"
            },
            {
              "cmd": "fcs watch optical",
              "note": "Optical light TX as main surface"
            },
            {
              "cmd": "fcs watch optical light sos",
              "note": "Optical pulse variant"
            },
            {
              "cmd": "fcs watch popout optical",
              "note": "Optical + OS browser display"
            },
            {
              "cmd": "fcs watch glyph",
              "note": "Nested glyph plant (prefer fcs glyph for full engine)"
            },
            {
              "cmd": "fcs watch popout glyph",
              "note": "Quantum-lift ffplay + arena Glyph form"
            },
            {
              "cmd": "fcs watch q-lift URL",
              "note": "Quantum-lift alias for popout glyph path"
            },
            {
              "cmd": "/watch bloomberg",
              "note": "Slash form after fcs install shell hook"
            }
          ],
          "sections": [
            {
              "id": "does",
              "title": "What /watch does",
              "kind": "prose",
              "body": "1) Resolve a channel name or URL (bloomberg, cnn, news, trailers, vevo, x.com/…/media, raw https/m3u8). 2) yt-dlp + ffmpeg demux audio/video. 3) Render path A: RGB frames → half-block glyphs in Grok/TTY (or Kitty). Path B: popout → external ffplay. Optional plant paths: optical blur TX, nested glyph peel, cam side pane (c). Universal entry: fcs watch … — any terminal, any AI agent. Non-TTY / FCS_AGENT=1 defaults to popout so agents never hang a TUI."
            },
            {
              "id": "run",
              "title": "Run it · real commands",
              "kind": "cli",
              "lines": [
                "fcs install",
                "fcs watch bloomberg",
                "fcs watch popout bloomberg",
                "fcs watch cnn",
                "fcs watch news",
                "fcs watch trailers",
                "fcs watch vevo",
                "fcs watch \"https://x.com/user/media\"",
                "fcs watch popout \"https://x.com/user/media\"",
                "fcs watch \"https://www.youtube.com/watch?v=…\"",
                "fcs watch \"https://example.com/stream.m3u8\"",
                "fcs watch optical",
                "fcs watch optical light sos",
                "fcs watch popout optical",
                "fcs watch glyph",
                "fcs watch popout glyph",
                "/watch bloomberg",
                "/watch popout cnn",
                "export YTDLP_COOKIES_FROM_BROWSER=safari   # logged-in X / YT"
              ]
            },
            {
              "id": "channels",
              "title": "Channels & sources",
              "kind": "cards",
              "items": [
                {
                  "title": "bloomberg · cnn · news",
                  "body": "Named live news desks when the channel list resolves them."
                },
                {
                  "title": "trailers",
                  "body": "Shuffle movie trailers · key s random · S toggle shuffle."
                },
                {
                  "title": "vevo",
                  "body": "Music video desk when configured in the channel map."
                },
                {
                  "title": "YouTube / HLS / URL",
                  "body": "Any yt-dlp-capable or direct m3u8/event URL as the arg."
                },
                {
                  "title": "X /user/media",
                  "body": "Profile Media tab expands to a video playlist (cookies help)."
                },
                {
                  "title": "optical",
                  "body": "Light pulse / fountain path as main surface — see also /optical."
                },
                {
                  "title": "glyph (nested)",
                  "body": "Plant control plane under /watch; prefer first-class /glyph for arena·peel·broadcast."
                }
              ]
            },
            {
              "id": "modes",
              "title": "Modes · surface",
              "kind": "cards",
              "items": [
                {
                  "title": "TTY / half-block",
                  "body": "Default in a real Terminal + FC binary: live demux as block characters (or Kitty). Best for ops desks next to agents."
                },
                {
                  "title": "popout",
                  "body": "fcs watch popout … or key o → OS ffplay. Agent-safe default when non-TTY or FCS_AGENT=1."
                },
                {
                  "title": "FCS_MODE",
                  "body": "auto | tui | popout — or flags --tui / popout / --popout / -o."
                },
                {
                  "title": "cam side",
                  "body": "Key c while playing → self-view side pane (pair with /cam for full desk)."
                },
                {
                  "title": "optical plant",
                  "body": "/watch optical · light SOS · popout optical opens OS browser display path."
                },
                {
                  "title": "glyph plant",
                  "body": "/watch glyph · popout glyph → quantum-lift + arena form; prefer fcs glyph for full engine."
                }
              ]
            },
            {
              "id": "keys",
              "title": "Keys (in player)",
              "kind": "table",
              "rows": [
                [
                  "Space",
                  "pause / resume"
                ],
                [
                  "n / p",
                  "next / previous item"
                ],
                [
                  "s / S",
                  "shuffle once · toggle shuffle"
                ],
                [
                  "g",
                  "guide / channel guide"
                ],
                [
                  "/",
                  "search"
                ],
                [
                  "c",
                  "cam side pane"
                ],
                [
                  "o",
                  "pop-out (optical → OS browser · glyph → quantum-lift + arena)"
                ],
                [
                  "U",
                  "X go-live when supported"
                ],
                [
                  "Esc",
                  "quit"
                ]
              ]
            },
            {
              "id": "agents",
              "title": "Agent rules",
              "kind": "prose",
              "body": "Always use fcs watch (universal) — never reimplement a player. Non-TTY or FCS_AGENT=1 → popout / standalone (no hung TUI). Prefer fcs watch popout <channel> from scripts and CI. Soft Path ports 8765/8766 — do not bind. For edit/render of files after capture, use fcs compose (not /watch). Glyph work: prefer fcs glyph over nested /watch glyph."
            },
            {
              "id": "deps",
              "title": "Deps & cookies",
              "kind": "prose",
              "body": "Required: yt-dlp, ffmpeg. Pop-out needs ffplay. Logged-in YouTube/X feeds: export YTDLP_COOKIES_FROM_BROWSER=safari (or chrome). X /user/media may use scripts/live-demux/x-media-feed.py with login cookies. Install surface: fcs install · fcs doctor."
            },
            {
              "id": "not",
              "title": "Not /watch",
              "kind": "prose",
              "body": "Offline WebGrid chase → /webgrid. Full glyph arena/peel/broadcast/translate → /glyph. Pure optical TX → /optical. Self-view → /cam. Phone Continuity → /phone. Agent file edit/render → /compose. Models/MT → /models."
            },
            {
              "id": "pair",
              "title": "Pair with",
              "kind": "cards",
              "items": [
                {
                  "title": "/cam · /phone",
                  "body": "Self-view and Continuity dual desk beside the wall."
                },
                {
                  "title": "/cast · /tiles",
                  "body": "Chromecast wall · independent ffplay tile plane."
                },
                {
                  "title": "/glyph · /optical",
                  "body": "Plant engines; prefer first-class slash over nested /watch paths."
                },
                {
                  "title": "/compose",
                  "body": "After grab/fetch: project graph · cut · render (fc.compose/v2)."
                },
                {
                  "title": "/clock · /map",
                  "body": "Zulu/timesync and traceroute map next to live feeds."
                }
              ]
            }
          ]
        },
        {
          "id": "cam",
          "cmd": "fcs cam",
          "slash": "/cam",
          "title": "Self-view cam",
          "blurb": "Large self-view + stream desk — laptop webcam, styles, pop-out, dual with phone.",
          "status": "shipped",
          "what": "/cam opens the self-view camera desk: you on cam, optional side stream, GPU optic styles (star/glass/bubble), and pop-out to an OS window. Pair with /phone for Continuity dual desk.",
          "sections": [
            {
              "id": "does",
              "title": "What /cam does",
              "kind": "prose",
              "body": "Starts a large self-view surface (and optional default stream). Dropdown modes: phone · dual · large · xl · pip · optic styles · popout. Use when you need face/presence next to media wall tools."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs cam",
                "fcs cam popout",
                "fcs cam phone",
                "fcs cam dual",
                "/cam star",
                "/cam glass"
              ]
            },
            {
              "id": "modes",
              "title": "Modes",
              "kind": "cards",
              "items": [
                {
                  "title": "phone / dual",
                  "body": "Desk split laptop | Continuity phone (see /phone)."
                },
                {
                  "title": "popout",
                  "body": "Primary webcam → OS ffplay window."
                },
                {
                  "title": "star · glass · bubble",
                  "body": "GPU optic styles on the self-view rim."
                },
                {
                  "title": "xl · pip",
                  "body": "Size / picture-in-picture layouts."
                }
              ]
            }
          ]
        },
        {
          "id": "phone",
          "cmd": "fcs phone",
          "slash": "/phone",
          "title": "Phone camera",
          "blurb": "iPhone Continuity Camera (preferred) or still-pipe JPEG into the desk.",
          "status": "shipped",
          "what": "/phone brings a phone camera into the suite desk. Preferred path: Continuity Camera (iPhone appears as a Mac webcam). Fallback: still-pipe JPEGs to ~/.panda/vision/live.jpg.",
          "sections": [
            {
              "id": "does",
              "title": "What /phone does",
              "kind": "prose",
              "body": "Wires phone video into /cam dual-desk. Continuity = live AVFoundation device. Still-pipe = optional HTTP/JPEG hub for headless Mini setups. Not desktop capture."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs phone start",
                "/phone",
                "/cam phone",
                "/cam dual"
              ]
            }
          ]
        },
        {
          "id": "clock",
          "cmd": "fcs clock",
          "slash": "/clock",
          "title": "World clock",
          "blurb": "Zulu · markets · NTP tier · unix/epoch drift — timesync HUD.",
          "status": "shipped",
          "what": "/clock (aliases /timesync /zulu) is the suite time plane: world clocks, market hours, NTP tier, and epoch drift. Writes timesync.jsonl for other HUDs (e.g. /map).",
          "aliases": [
            "/timesync",
            "/zulu",
            "fcs clock"
          ],
          "sections": [
            {
              "id": "does",
              "title": "What /clock does",
              "kind": "prose",
              "body": "Shows synchronized time surfaces and drift. Agent-safe one-shot: fcs clock --once (JSON-friendly). Interactive: layout toggle, NTP force, reset drift."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs clock",
                "fcs clock --once",
                "fcs clock --standalone",
                "/timesync",
                "/zulu"
              ]
            },
            {
              "id": "keys",
              "title": "Keys",
              "kind": "table",
              "rows": [
                [
                  "Esc",
                  "quit"
                ],
                [
                  "m",
                  "layout"
                ],
                [
                  "r",
                  "reset drift"
                ],
                [
                  "n",
                  "force NTP"
                ]
              ]
            }
          ]
        },
        {
          "id": "map",
          "cmd": "fcs map",
          "slash": "/map",
          "title": "Maptrace",
          "blurb": "World map + traceroute with Starbase honesty pin (CDN ≠ Boca Chica).",
          "status": "shipped",
          "what": "/map runs maptrace: hop geometry on a world map, traceroute to a target, optional pop-out. Starbase pin is honest lat/lon — CDN edges are not Starbase.",
          "sections": [
            {
              "id": "does",
              "title": "What /map does",
              "kind": "prose",
              "body": "Trace a host, plot hops, stamp timesync. Pop-out for dedicated map TUI/web. Use for ops honesty (where traffic really goes) not marketing maps."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs map",
                "fcs map starbase",
                "fcs map popout 1.1.1.1",
                "/map web example.com"
              ]
            }
          ]
        },
        {
          "id": "cast",
          "cmd": "fcs cast",
          "slash": "/cast",
          "title": "Cast wall",
          "blurb": "Explicit Chromecast / TCL Google TV cast — never auto-casts.",
          "status": "shipped",
          "what": "/cast pushes a URL or desk surface to Chromecast-built-in TVs (TCL Google TV wall). Explicit only — you choose device and content. Not macOS Screen Sharing.",
          "aliases": [
            "/mirror",
            "/chromecast"
          ],
          "sections": [
            {
              "id": "does",
              "title": "What /cast does",
              "kind": "prose",
              "body": "Discover LAN cast targets, list devices, cast a URL or share a chosen surface to the TV wall. Optical air-gap TX is /optical, not cast."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs cast list",
                "fcs cast url 'https://…'",
                "/cast list"
              ]
            }
          ]
        },
        {
          "id": "tiles",
          "cmd": "fcs tiles",
          "slash": "/tiles",
          "title": "Tile plane",
          "blurb": "Independent ffplay tiles — load, place, close, crash-isolate mosaics.",
          "status": "shipped",
          "what": "/tiles manages a plane of independent pop-out players. Each tile can die without taking the desk down — mosaic wall for multi-stream ops.",
          "sections": [
            {
              "id": "does",
              "title": "What /tiles does",
              "kind": "prose",
              "body": "Load URLs into numbered tiles, rearrange, close. Crash isolation so one bad stream does not kill the suite."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs tiles list",
                "fcs tiles load 12 URL",
                "/tiles list"
              ]
            }
          ]
        },
        {
          "id": "lens",
          "cmd": "fcs lens",
          "slash": "/lens",
          "title": "Live lens",
          "blurb": "Bug-world · HDRI anamorphic · 360 compound-eye from webcam / Continuity.",
          "status": "shipped",
          "what": "/lens is the experimental vision optic: insect/bug FOV, HDRI anamorphic, 360 fisheye — fed from laptop cam or Continuity phone.",
          "sections": [
            {
              "id": "does",
              "title": "What /lens does",
              "kind": "prose",
              "body": "Transforms live camera into stylized compound-eye / anamorphic views for training and show surfaces. Can pair with /watch L key."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs lens bug",
                "fcs lens 360 dual",
                "/lens bug"
              ]
            }
          ]
        },
        {
          "id": "optical",
          "cmd": "fcs optical",
          "slash": "/optical",
          "title": "Optical transfer",
          "blurb": "Screen→camera air-gap data: light pulse, fountain QR, glyph embed — no network.",
          "status": "shipped",
          "what": "/optical moves data without a network: light pulses / fountain QR / blur patterns on screen read by a camera. Air-gap TX/RX path (jawta light family).",
          "sections": [
            {
              "id": "does",
              "title": "What /optical does",
              "kind": "prose",
              "body": "Encode bits into visible light patterns; decode via camera. Use for demos, isolated lab hops, glyph embed tests. Related: /watch optical for the same path as a main surface."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs optical",
                "/optical",
                "/watch optical",
                "/watch optical light sos"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "train-lab",
      "label": "Train · lab · language",
      "skills": [
        {
          "id": "webgrid",
          "cmd": "fcs webgrid",
          "slash": "/webgrid",
          "title": "WebGrid chase",
          "blurb": "Offline ugrad chase on TTY half-block — training BPS, not live demux.",
          "status": "shipped",
          "what": "/webgrid is the offline grid chase trainer (ugrad). Separate from /watch. Measures session BPS; pop-out for browser chase surfaces.",
          "sections": [
            {
              "id": "does",
              "title": "What /webgrid does",
              "kind": "prose",
              "body": "Runs the webgrid-ugrad chase loop for human/agent training scores. Drone HUD is /drone, not nested under webgrid."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs webgrid",
                "fcs webgrid popout",
                "/webgrid"
              ]
            }
          ]
        },
        {
          "id": "glyph",
          "cmd": "fcs glyph",
          "slash": "/glyph",
          "title": "Glyph engine",
          "blurb": "Dense peel · quantum-lift · broadcast TX/RX · live translation · arena.",
          "status": "shipped",
          "what": "/glyph is the first-class glyph engine: dense peel seats, quantum-lift pop-out, layered broadcast, encode/decode, live translation desk, webgrid plant.",
          "sections": [
            {
              "id": "does",
              "title": "What /glyph does",
              "kind": "prose",
              "body": "Opens the glyph control plane and arena. Prefer this over nested /watch glyph. Translate fans to lang-chat-desk; broadcast layers optical TX budgets."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs glyph",
                "fcs glyph popout",
                "fcs glyph peel",
                "fcs glyph broadcast bloomberg",
                "fcs glyph translate from en to es,fr,ja",
                "fcs glyph webgrid",
                "fcs glyph stack"
              ]
            }
          ]
        },
        {
          "id": "language",
          "cmd": "fcs language",
          "slash": "/language",
          "title": "Language desk",
          "blurb": "Multi-lang keyboard streams · captions · construct desks on lang.ugrad.ai.",
          "status": "shipped",
          "what": "/language drives multi-language stream desks: layout, translate, codec, live captions. Product hub: https://lang.ugrad.ai — offline models page for Ollama zen.",
          "href": "https://lang.ugrad.ai/",
          "sections": [
            {
              "id": "does",
              "title": "What /language does",
              "kind": "prose",
              "body": "Starts language hotpipe / desk surfaces for simultaneous streams. Offline: Ollama qwen3 via lang models-offline. Not a pop-out of the lang sitemap — a working desk."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs language",
                "/language"
              ]
            },
            {
              "id": "links",
              "title": "Related hosts",
              "kind": "cards",
              "items": [
                {
                  "title": "lang.ugrad.ai",
                  "body": "Language // One Construct hub"
                },
                {
                  "title": "Offline models",
                  "body": "https://lang.ugrad.ai/data/language/models-offline.html"
                }
              ]
            }
          ]
        },
        {
          "id": "drone",
          "cmd": "fcs drone",
          "slash": "/drone",
          "title": "Drone HUD",
          "blurb": "Standalone multi-unit FPV ops HUD — not nested under /watch or /webgrid.",
          "status": "shipped",
          "what": "/drone is the fleet FPV HUD (SAM/DINO/SLAM/GSPLAT hooks, tiles, timesync). First-class slash — do not bury under webgrid.",
          "sections": [
            {
              "id": "does",
              "title": "What /drone does",
              "kind": "prose",
              "body": "Ops HUD for multi-unit FPV: tracking hooks, map tiles, clock, hotpipe cal. Standalone skill."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs drone",
                "/drone",
                "/hud"
              ]
            }
          ]
        },
        {
          "id": "models",
          "cmd": "fcs models",
          "slash": "/models",
          "title": "Models · offline + edge",
          "blurb": "Ollama offline (qwen3) + Cloudflare edge (m2m100) + whisper STT — one doctor. P0 NLLB/m2m100 local.",
          "status": "shipped",
          "what": "/models is the suite AI model plane. Offline: Ollama (default qwen3:8b for MT + desk). Edge: lang.ugrad.ai routes to Cloudflare Workers AI (m2m100 NMT, llama instruct). Voice STT: local whisper for fcs mic. One board: https://lang.ugrad.ai/models.html + mt-models.json. Goal: ours better = dual-path always (offline first, edge fanout, voice STT local).",
          "href": "https://lang.ugrad.ai/models.html",
          "aliases": [
            "fcs models",
            "/ollama"
          ],
          "examples": [
            {
              "cmd": "fcs models",
              "note": "Status offline + edge"
            },
            {
              "cmd": "fcs models doctor",
              "note": "Health check"
            },
            {
              "cmd": "fcs models offline",
              "note": "List Ollama + whisper paths"
            },
            {
              "cmd": "fcs models edge",
              "note": "Probe lang.ugrad.ai/api/models"
            },
            {
              "cmd": "fcs models pull qwen3:8b",
              "note": "Pull default offline MT"
            },
            {
              "cmd": "fcs models matrix",
              "note": "Open lang models board"
            },
            {
              "cmd": "fcs models p0",
              "note": "Pull NLLB + m2m100 offline weights"
            },
            {
              "cmd": "fcs models p0 status",
              "note": "Offline pack status"
            }
          ],
          "sections": [
            {
              "id": "does",
              "title": "What /models does",
              "kind": "prose",
              "body": "Unifies the dual AI path: offline Ollama for local MT/chat when the network is gone or quota-free; edge via lang.ugrad.ai for bulk fanout (m2m100) and cloud instruct. Surfaces the same board as lang models.html inside the fcs skill tree so agents pick engines by language strength (H/M/L), not by vibes."
            },
            {
              "id": "offline",
              "title": "Offline pack (have / need)",
              "kind": "cards",
              "items": [
                {
                  "title": "Have · qwen3:8b",
                  "body": "Default offline MT · Ollama"
                },
                {
                  "title": "Have · mistral",
                  "body": "EU alt offline"
                },
                {
                  "title": "P0 · nllb-200",
                  "body": "P0 dedicated offline NMT for ar/he/fa/el/hi · fcs models p0"
                },
                {
                  "title": "P0 · m2m100 local",
                  "body": "P0 edge-parity bulk offline · fcs models p0"
                },
                {
                  "title": "Voice · whisper ggml",
                  "body": "fcs mic STT local"
                }
              ]
            },
            {
              "id": "edge",
              "title": "Edge / Cloudflare live",
              "kind": "cards",
              "items": [
                {
                  "title": "m2m100-1.2b",
                  "body": "Default edge NMT · bulk fanout"
                },
                {
                  "title": "llama-3.1-8b",
                  "body": "LLM-MT / classical / honor"
                },
                {
                  "title": "API",
                  "body": "GET /api/models · POST /api/ai on lang.ugrad.ai"
                }
              ]
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs models doctor",
                "fcs models offline",
                "fcs models edge",
                "fcs models pull qwen3:8b",
                "fcs models p0",
                "fcs models p0 status",
                "open https://fcs.ugrad.ai/#/models",
                "open https://lang.ugrad.ai/models.html",
                "curl -sS https://lang.ugrad.ai/api/models | head"
              ]
            },
            {
              "id": "better",
              "title": "How we stay better",
              "kind": "prose",
              "body": "1) Always dual-path: offline first when present, edge when bulk/fanout. 2) Language×engine matrix lives on lang.ugrad.ai so seats pick H engines. 3) Voice STT stays local (whisper) so mic never depends on a third-party dictation brand. 4) fcs models doctor is the one green light for lab + agents."
            }
          ]
        },
        {
          "id": "compose",
          "cmd": "fcs compose",
          "slash": "/compose",
          "title": "Compose · agent media edit",
          "blurb": "fc.compose/v2 — probe · project graph · node timeline · ffmpeg render. Code-as-timeline for agents.",
          "status": "shipped",
          "what": "/compose is the suite agent media plane (schema fc.compose/v2). Media ops: probe, grab frames, filmstrip, waveform, cut, fetch, transcribe/listen. Project graph: project new → asset add → node add/patch → render out via ffmpeg. Complements /watch (live demux wall) and /glyph. Not a GUI NLE — JSON projects under ~/.panda/compose for any terminal or AI agent.",
          "aliases": [
            "fcs compose",
            "/editor",
            "media-edit",
            "filmstrip"
          ],
          "examples": [
            {
              "cmd": "fcs compose doctor",
              "note": "ffmpeg · ffprobe · yt-dlp · whisper"
            },
            {
              "cmd": "fcs compose probe clip.mp4",
              "note": "ffprobe JSON"
            },
            {
              "cmd": "fcs compose grab clip.mp4 --times 0,12,45",
              "note": "PNG frames"
            },
            {
              "cmd": "fcs compose filmstrip clip.mp4",
              "note": "contact sheet"
            },
            {
              "cmd": "fcs compose waveform track.wav",
              "note": "waveform PNG"
            },
            {
              "cmd": "fcs compose cut clip.mp4 --start 0 --end 10",
              "note": "time-range extract"
            },
            {
              "cmd": "fcs compose fetch 'https://…'",
              "note": "yt-dlp into ~/.panda/compose"
            },
            {
              "cmd": "fcs compose project new demo",
              "note": "new JSON project"
            },
            {
              "cmd": "fcs compose asset add clip.mp4 --id clip",
              "note": "mount media"
            },
            {
              "cmd": "fcs compose node add --asset clip --start 0 --end 10",
              "note": "timeline node"
            },
            {
              "cmd": "fcs compose node tree",
              "note": "graph dump"
            },
            {
              "cmd": "fcs compose render -o /tmp/out.mp4",
              "note": "concat nodes → mp4"
            },
            {
              "cmd": "fcs compose listen interview.wav -p 'summary?'",
              "note": "whisper + extract"
            },
            {
              "cmd": "fcs compose context",
              "note": "current project + tools"
            }
          ],
          "sections": [
            {
              "id": "does",
              "title": "What /compose does",
              "kind": "prose",
              "body": "Extended agent media plane. (1) Media understanding when agents cannot watch like a human: probe, grab, filmstrip, waveform, transcribe/listen. (2) Project graph: assets + ordered nodes with start/end/track. (3) Render: ffmpeg cut each node then concat. Work dir ~/.panda/compose (FC_COMPOSE_OUT). Schema fc.compose/v2 · project fc.compose/project/v1."
            },
            {
              "id": "media",
              "title": "Media ops",
              "kind": "cards",
              "items": [
                {
                  "title": "probe",
                  "body": "ffprobe full JSON for any file"
                },
                {
                  "title": "grab",
                  "body": "PNG frames at --times 0,12,45"
                },
                {
                  "title": "filmstrip",
                  "body": "contact sheet PNG · --cols N"
                },
                {
                  "title": "waveform",
                  "body": "mono showwavespic PNG"
                },
                {
                  "title": "cut",
                  "body": "extract --start/--end or --duration"
                },
                {
                  "title": "fetch",
                  "body": "yt-dlp → mp4 under compose media/"
                },
                {
                  "title": "transcribe",
                  "body": "whisper-cli → text (local ggml)"
                },
                {
                  "title": "listen",
                  "body": "transcribe + prompt-tagged extract"
                }
              ]
            },
            {
              "id": "graph",
              "title": "Project · asset · node · render",
              "kind": "cards",
              "items": [
                {
                  "title": "project",
                  "body": "new · list · open · status · save — JSON under projects/"
                },
                {
                  "title": "asset add",
                  "body": "copy/mount file into project media · probe meta"
                },
                {
                  "title": "node add",
                  "body": "--asset ID --start --end --track · patch/rm/clear"
                },
                {
                  "title": "node tree",
                  "body": "full graph dump for agents"
                },
                {
                  "title": "render",
                  "body": "clip each node → concat → out.mp4"
                },
                {
                  "title": "context",
                  "body": "current project + tool availability"
                }
              ]
            },
            {
              "id": "run",
              "title": "Run it · full loop",
              "kind": "cli",
              "lines": [
                "fcs compose doctor",
                "fcs compose project new demo --force",
                "fcs compose asset add clip.mp4 --id clip",
                "fcs compose node add --asset clip --start 0 --end 8 --track 0",
                "fcs compose node tree",
                "fcs compose render -o /tmp/demo.mp4",
                "fcs compose probe /tmp/demo.mp4",
                "fcs compose grab clip.mp4 --times 0,2,5",
                "fcs compose filmstrip clip.mp4 --cols 6",
                "fcs compose cut clip.mp4 --start 1 --end 4 -o /tmp/bit.mp4"
              ]
            },
            {
              "id": "out",
              "title": "Outputs & deps",
              "kind": "prose",
              "body": "JSON stdout for agents; errors JSON on stderr. Artifacts: ~/.panda/compose/{media,grabs,renders,projects}. Needs ffmpeg + ffprobe; yt-dlp for fetch; whisper-cli + ggml for transcribe/listen. Pair captions/MT with fcs models offline or lang.ugrad.ai edge."
            },
            {
              "id": "not",
              "title": "Not /compose",
              "kind": "prose",
              "body": "Live demux wall is /watch. Glyph plant is /glyph. Mic inbox is /mic. Offline+edge AI is /models. This is agent edit/render, not a broadcast player."
            }
          ]
        }
      ]
    },
    {
      "id": "browser-dev",
      "label": "Browser · inspect · hygiene",
      "skills": [
        {
          "id": "web",
          "cmd": "fcs web",
          "slash": "/web",
          "title": "/web inspect",
          "blurb": "Multi-browser DevTools onramp · field triggers · job hygiene.",
          "status": "shipped",
          "what": "/web opens the suite inspect + hygiene plane: peer browser DevTools matrix, Memory Glass job hygiene (no zombie downloads), field-trigger loop from real browser bugs.",
          "aliases": [
            "fcs inspect",
            "fcs hygiene",
            "/inspect",
            "/hygiene"
          ],
          "sections": [
            {
              "id": "does",
              "title": "What /web does",
              "kind": "prose",
              "body": "Universal onramp from any terminal: queue Memory Glass inspect panel, arm job hygiene, list Safari/Chrome/Firefox DevTools keys, export packs for agents. Fixes the Safari * Preparing forever class inside MG."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs web",
                "fcs web browsers --json",
                "fcs web hygiene",
                "fcs web open safari",
                "fcs web onramps",
                "/web",
                "/hygiene"
              ]
            }
          ]
        },
        {
          "id": "memory-glass",
          "cmd": "open Memory Glass",
          "slash": "/memory-glass",
          "title": "Memory Glass",
          "blurb": "Rust + hotpipe operator browser — download home on this site.",
          "status": "lab",
          "what": "Memory Glass is the suite browser shell: WKWebView + hotpipe inject, IronLine budgets, dual inspect, job hygiene. Public DMG will ship from fcs.ugrad.ai/download/.",
          "href": "/download/#browser",
          "sections": [
            {
              "id": "does",
              "title": "What Memory Glass does",
              "kind": "prose",
              "body": "Native macOS droplet browser for train loops and media wall — not Electron. Hot-reload JS in ~1s. Hosts /web inspect UI and fcs skill onramps."
            },
            {
              "id": "run",
              "title": "Lab install",
              "kind": "cli",
              "lines": [
                "bash plugins/fc-media-suite/scripts/fcs install",
                "cd experiments/memory-glass && bash build-mac-app.sh",
                "bash scripts/mg-hotpipe-sync.sh",
                "fcs web"
              ]
            }
          ]
        },
        {
          "id": "media-suite",
          "cmd": "fcs doctor",
          "slash": "/media",
          "title": "Suite doctor",
          "blurb": "Binary stamps · tools present · multi-CLI skill install health.",
          "status": "shipped",
          "what": "fcs doctor checks that the suite CLI, launch scripts, and agent skill packs are installed and ready.",
          "sections": [
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs doctor",
                "fcs install",
                "fcs agents status",
                "fcs update"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "immersive-xr",
      "label": "XR · VR · MR",
      "skills": [
        {
          "id": "xr",
          "cmd": "fcs xr",
          "slash": "/xr",
          "title": "XR · multi-seat glasses",
          "blurb": "Memory Glass XR lab v2 — room API :8787 · WebXR · registry · for-ai. fcs xr = mg-xr-dev auto.",
          "status": "shipped",
          "what": "/xr is the Memory Glass XR multi-seat plane (lab v2 · mg-xr-dev). Host Mac serves PWA + /api/xr/* on :8787; glasses join via browser (WebXR / LAN / adb). AI agents use for-ai JSON + hotpipe edit + fcs xr hot. Seat flavor: Umbrella XR plane for any glass kit + AI co-work. Same engine for /xr · /vr · /mr.",
          "aliases": [
            "fcs xr",
            "/xr",
            "mg-xr-dev",
            "WebXR"
          ],
          "examples": [
            {
              "cmd": "fcs xr quest",
              "note": "Quest adb reverse + headset URLs"
            },
            {
              "cmd": "fcs xr open quest-3",
              "note": "open desk with device profile"
            },
            {
              "cmd": "fcs xr",
              "note": "auto · sync + room serve + status"
            },
            {
              "cmd": "fcs xr doctor",
              "note": "green/red XR checklist"
            },
            {
              "cmd": "fcs xr for-ai",
              "note": "agent JSON snapshot"
            },
            {
              "cmd": "fcs xr room lab",
              "note": "multi-seat peers"
            },
            {
              "cmd": "fcs xr hot",
              "note": "hotpipe reload · never pkill MG"
            },
            {
              "cmd": "fcs xr onboard",
              "note": "human + AI guide"
            },
            {
              "cmd": "fcs xr list",
              "note": "glasses registry"
            }
          ],
          "sections": [
            {
              "id": "does",
              "title": "What /xr does",
              "kind": "prose",
              "body": "Memory Glass XR multi-seat lab pipe (shipped with hygiene//web/fcs). sync hotpipe → serve room API → join room=lab → WebXR / SBS / adb. Umbrella XR plane for any glass kit + AI co-work. Not a native HMD app — browser + host shell. Port 8787 only; never 8765/8766."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs xr",
                "fcs xr doctor",
                "fcs xr auto",
                "fcs xr serve",
                "fcs xr hot",
                "fcs xr list",
                "fcs xr detect",
                "fcs xr onboard",
                "fcs xr quest",
                "fcs xr room lab",
                "fcs xr for-ai",
                "curl -s http://127.0.0.1:8787/api/xr/for-ai | jq .",
                "open http://127.0.0.1:8787/xr-onboard.html",
                "bash experiments/memory-glass/scripts/mg-xr-dev.sh auto"
              ]
            },
            {
              "id": "surfaces",
              "title": "Surfaces · :8787",
              "kind": "cards",
              "items": [
                {
                  "title": "xr-dev.html",
                  "body": "?mg_xr=1 · device=quest-3 · room=lab&join=1"
                },
                {
                  "title": "xr-onboard.html",
                  "body": "Human + AI onboarding desk"
                },
                {
                  "title": "/api/xr/for-ai",
                  "body": "Agent snapshot JSON"
                },
                {
                  "title": "/api/xr/room",
                  "body": "Multi-seat peers · POST handoff"
                },
                {
                  "title": "console __mgXr",
                  "body": "auto · apply · room.join · enterWebXR · forAi"
                }
              ]
            },
            {
              "id": "devices",
              "title": "Device classes",
              "kind": "cards",
              "items": [
                {
                  "title": "standalone-vr",
                  "body": "Quest · Pico · Vision Pro — WebXR · adb · browser"
                },
                {
                  "title": "tethered-ar",
                  "body": "XREAL · VITURE · Rokid — host browser / USB-C"
                },
                {
                  "title": "smart-glasses",
                  "body": "Ray-Ban Meta · Even — host MG / companion"
                },
                {
                  "title": "optical-rx",
                  "body": "Warby · Zenni — Rx import in MG"
                },
                {
                  "title": "desktop-proxy",
                  "body": "Mac SBS / anaglyph without a headset"
                }
              ]
            },
            {
              "id": "agents",
              "title": "Agent loop",
              "kind": "prose",
              "body": "fcs xr doctor → curl …/api/xr/for-ai → edit hotpipe → fcs xr hot. Never pkill Memory Glass. Prefer hotpipe JS. Soft Path owns 8765/8766. Quest: adb reverse so HMD hits http://127.0.0.1:8787."
            },
            {
              "id": "not",
              "title": "Not this plane",
              "kind": "prose",
              "body": "Live news demux wall is /watch. Glyph plant is /glyph. Job hygiene / multi-browser inspect is /web. Agent GUI is /hands. This is glasses multi-seat XR only."
            }
          ]
        },
        {
          "id": "vr",
          "cmd": "fcs vr",
          "slash": "/vr",
          "title": "VR · standalone headset",
          "blurb": "Standalone VR seat (Quest · Pico · Vision) on the same MG XR multi-seat pipe as /xr.",
          "status": "shipped",
          "what": "/vr is the Memory Glass XR multi-seat plane (lab v2 · mg-xr-dev). Host Mac serves PWA + /api/xr/* on :8787; glasses join via browser (WebXR / LAN / adb). AI agents use for-ai JSON + hotpipe edit + fcs xr hot. Seat flavor: Standalone VR focus — prefer fcs vr quest for Meta Quest. Same engine for /xr · /vr · /mr.",
          "aliases": [
            "fcs vr",
            "/vr"
          ],
          "examples": [
            {
              "cmd": "fcs vr quest",
              "note": "adb reverse + Quest URLs"
            },
            {
              "cmd": "fcs vr",
              "note": "auto · sync + room serve + status"
            },
            {
              "cmd": "fcs vr doctor",
              "note": "green/red XR checklist"
            },
            {
              "cmd": "fcs vr for-ai",
              "note": "agent JSON snapshot"
            },
            {
              "cmd": "fcs vr room lab",
              "note": "multi-seat peers"
            },
            {
              "cmd": "fcs vr hot",
              "note": "hotpipe reload · never pkill MG"
            },
            {
              "cmd": "fcs vr onboard",
              "note": "human + AI guide"
            },
            {
              "cmd": "fcs vr list",
              "note": "glasses registry"
            }
          ],
          "sections": [
            {
              "id": "does",
              "title": "What /vr does",
              "kind": "prose",
              "body": "Memory Glass XR multi-seat lab pipe (shipped with hygiene//web/fcs). sync hotpipe → serve room API → join room=lab → WebXR / SBS / adb. Standalone VR focus — prefer fcs vr quest for Meta Quest. Not a native HMD app — browser + host shell. Port 8787 only; never 8765/8766."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs vr",
                "fcs vr doctor",
                "fcs vr auto",
                "fcs vr serve",
                "fcs vr hot",
                "fcs vr list",
                "fcs vr detect",
                "fcs vr onboard",
                "fcs vr quest",
                "fcs vr room lab",
                "fcs vr for-ai",
                "curl -s http://127.0.0.1:8787/api/xr/for-ai | jq .",
                "open http://127.0.0.1:8787/xr-onboard.html",
                "bash experiments/memory-glass/scripts/mg-xr-dev.sh auto"
              ]
            },
            {
              "id": "surfaces",
              "title": "Surfaces · :8787",
              "kind": "cards",
              "items": [
                {
                  "title": "xr-dev.html",
                  "body": "?mg_xr=1 · device=quest-3 · room=lab&join=1"
                },
                {
                  "title": "xr-onboard.html",
                  "body": "Human + AI onboarding desk"
                },
                {
                  "title": "/api/xr/for-ai",
                  "body": "Agent snapshot JSON"
                },
                {
                  "title": "/api/xr/room",
                  "body": "Multi-seat peers · POST handoff"
                },
                {
                  "title": "console __mgXr",
                  "body": "auto · apply · room.join · enterWebXR · forAi"
                }
              ]
            },
            {
              "id": "devices",
              "title": "Device classes",
              "kind": "cards",
              "items": [
                {
                  "title": "standalone-vr",
                  "body": "Quest · Pico · Vision Pro — WebXR · adb · browser"
                },
                {
                  "title": "tethered-ar",
                  "body": "XREAL · VITURE · Rokid — host browser / USB-C"
                },
                {
                  "title": "smart-glasses",
                  "body": "Ray-Ban Meta · Even — host MG / companion"
                },
                {
                  "title": "optical-rx",
                  "body": "Warby · Zenni — Rx import in MG"
                },
                {
                  "title": "desktop-proxy",
                  "body": "Mac SBS / anaglyph without a headset"
                }
              ]
            },
            {
              "id": "agents",
              "title": "Agent loop",
              "kind": "prose",
              "body": "fcs xr doctor → curl …/api/xr/for-ai → edit hotpipe → fcs xr hot. Never pkill Memory Glass. Prefer hotpipe JS. Soft Path owns 8765/8766. Quest: adb reverse so HMD hits http://127.0.0.1:8787."
            },
            {
              "id": "not",
              "title": "Not this plane",
              "kind": "prose",
              "body": "Live news demux wall is /watch. Glyph plant is /glyph. Job hygiene / multi-browser inspect is /web. Agent GUI is /hands. This is glasses multi-seat XR only."
            }
          ]
        },
        {
          "id": "mr",
          "cmd": "fcs mr",
          "slash": "/mr",
          "title": "MR · mixed reality / AR",
          "blurb": "Mixed reality / tethered AR seat (XREAL · VITURE · host MG) on the same XR multi-seat pipe.",
          "status": "shipped",
          "what": "/mr is the Memory Glass XR multi-seat plane (lab v2 · mg-xr-dev). Host Mac serves PWA + /api/xr/* on :8787; glasses join via browser (WebXR / LAN / adb). AI agents use for-ai JSON + hotpipe edit + fcs xr hot. Seat flavor: MR/AR focus — tethered AR glasses + desktop-proxy SBS. Same engine for /xr · /vr · /mr.",
          "aliases": [
            "fcs mr",
            "/mr"
          ],
          "examples": [
            {
              "cmd": "fcs mr",
              "note": "auto · sync + room serve + status"
            },
            {
              "cmd": "fcs mr doctor",
              "note": "green/red XR checklist"
            },
            {
              "cmd": "fcs mr for-ai",
              "note": "agent JSON snapshot"
            },
            {
              "cmd": "fcs mr room lab",
              "note": "multi-seat peers"
            },
            {
              "cmd": "fcs mr hot",
              "note": "hotpipe reload · never pkill MG"
            },
            {
              "cmd": "fcs mr onboard",
              "note": "human + AI guide"
            },
            {
              "cmd": "fcs mr list",
              "note": "glasses registry"
            }
          ],
          "sections": [
            {
              "id": "does",
              "title": "What /mr does",
              "kind": "prose",
              "body": "Memory Glass XR multi-seat lab pipe (shipped with hygiene//web/fcs). sync hotpipe → serve room API → join room=lab → WebXR / SBS / adb. MR/AR focus — tethered AR glasses + desktop-proxy SBS. Not a native HMD app — browser + host shell. Port 8787 only; never 8765/8766."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "fcs mr",
                "fcs mr doctor",
                "fcs mr auto",
                "fcs mr serve",
                "fcs mr hot",
                "fcs mr list",
                "fcs mr detect",
                "fcs mr onboard",
                "fcs mr open",
                "fcs mr room lab",
                "fcs mr for-ai",
                "curl -s http://127.0.0.1:8787/api/xr/for-ai | jq .",
                "open http://127.0.0.1:8787/xr-onboard.html",
                "bash experiments/memory-glass/scripts/mg-xr-dev.sh auto"
              ]
            },
            {
              "id": "surfaces",
              "title": "Surfaces · :8787",
              "kind": "cards",
              "items": [
                {
                  "title": "xr-dev.html",
                  "body": "?mg_xr=1 · device=quest-3 · room=lab&join=1"
                },
                {
                  "title": "xr-onboard.html",
                  "body": "Human + AI onboarding desk"
                },
                {
                  "title": "/api/xr/for-ai",
                  "body": "Agent snapshot JSON"
                },
                {
                  "title": "/api/xr/room",
                  "body": "Multi-seat peers · POST handoff"
                },
                {
                  "title": "console __mgXr",
                  "body": "auto · apply · room.join · enterWebXR · forAi"
                }
              ]
            },
            {
              "id": "devices",
              "title": "Device classes",
              "kind": "cards",
              "items": [
                {
                  "title": "standalone-vr",
                  "body": "Quest · Pico · Vision Pro — WebXR · adb · browser"
                },
                {
                  "title": "tethered-ar",
                  "body": "XREAL · VITURE · Rokid — host browser / USB-C"
                },
                {
                  "title": "smart-glasses",
                  "body": "Ray-Ban Meta · Even — host MG / companion"
                },
                {
                  "title": "optical-rx",
                  "body": "Warby · Zenni — Rx import in MG"
                },
                {
                  "title": "desktop-proxy",
                  "body": "Mac SBS / anaglyph without a headset"
                }
              ]
            },
            {
              "id": "agents",
              "title": "Agent loop",
              "kind": "prose",
              "body": "fcs xr doctor → curl …/api/xr/for-ai → edit hotpipe → fcs xr hot. Never pkill Memory Glass. Prefer hotpipe JS. Soft Path owns 8765/8766. Quest: adb reverse so HMD hits http://127.0.0.1:8787."
            },
            {
              "id": "not",
              "title": "Not this plane",
              "kind": "prose",
              "body": "Live news demux wall is /watch. Glyph plant is /glyph. Job hygiene / multi-browser inspect is /web. Agent GUI is /hands. This is glasses multi-seat XR only."
            }
          ]
        }
      ]
    },
    {
      "id": "agent-desktop",
      "label": "Voice · hands",
      "skills": [
        {
          "id": "mic",
          "cmd": "fcs mic",
          "slash": "/mic",
          "title": "Mic · suite voice-bridge",
          "blurb": "Mic → whisper → inbox.jsonl. Suite voice pack.",
          "status": "shipped",
          "what": "/mic is the fornevercollective microphone skill. Runs voice-bridge: short clips, local whisper STT, lines into ~/.panda/voice/inbox.jsonl. Pair with /chat for hands-free agent conversation.",
          "aliases": [
            "fcs mic",
            "/talk",
            "/ptt"
          ],
          "examples": [
            {
              "cmd": "fcs mic",
              "note": "Start voice-bridge"
            },
            {
              "cmd": "fcs mic mute",
              "note": "Mute while typing"
            },
            {
              "cmd": "fcs mic unmute",
              "note": "Resume capture"
            },
            {
              "cmd": "fcs chat",
              "note": "Pair chat loop"
            }
          ],
          "sections": [
            {
              "id": "does",
              "title": "What /mic does",
              "kind": "prose",
              "body": "Captures audio clips, runs whisper-cli against a local ggml model, filters noise, appends text to the suite inbox. Mute while typing to avoid false STT."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "bash scripts/install-voice.sh",
                "fcs mic",
                "fcs mic mute",
                "fcs mic unmute",
                "fcs mic status",
                "fcs chat"
              ]
            },
            {
              "id": "stack",
              "title": "Stack",
              "kind": "cards",
              "items": [
                {
                  "title": "voice-bridge.sh",
                  "body": "mic → whisper → inbox"
                },
                {
                  "title": "mute.sh",
                  "body": "pause capture while typing"
                },
                {
                  "title": "fcs chat",
                  "body": "next hop conversation"
                }
              ]
            }
          ]
        },
        {
          "id": "chat",
          "cmd": "fcs chat",
          "slash": "/chat",
          "title": "Chat · suite chat-voice",
          "blurb": "Inbox → Grok → speak. Suite conversation loop.",
          "status": "shipped",
          "what": "/chat runs chat-voice: consume ~/.panda/voice/inbox.jsonl (from fcs mic), call Grok, speak replies. Two-pane lab: mic + chat.",
          "aliases": [
            "fcs chat",
            "/convo"
          ],
          "examples": [
            {
              "cmd": "fcs mic",
              "note": "Pane A — fill inbox"
            },
            {
              "cmd": "fcs chat",
              "note": "Pane B — reply + speak"
            }
          ],
          "sections": [
            {
              "id": "does",
              "title": "What /chat does",
              "kind": "prose",
              "body": "Reads new inbox lines, calls the model with history, speaks on default audio output. Suite voice pack under ~/.panda/voice."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "bash scripts/install-voice.sh",
                "fcs mic",
                "fcs chat",
                "fcs chat status"
              ]
            }
          ]
        },
        {
          "id": "hands",
          "cmd": "fcs hands",
          "slash": "/hands",
          "title": "Hands · suite agent GUI",
          "blurb": "AX-first Mac agent hands for lab desks — suite-owned install path.",
          "status": "lab",
          "what": "/hands is our agent GUI control plane for Mac lab desks: inspect UI tree, focus, click, type — so agents can operate Memory Glass and apps without a separate consumer brand. Install: bash scripts/install-hands.sh (optional FC_HANDS_SRC for private binary builds). Compete by: suite branding, fcs onramps, doctor integration, and pairing with /mic+/chat for voice+hands loops.",
          "aliases": [
            "fcs hands"
          ],
          "examples": [
            {
              "cmd": "bash scripts/install-hands.sh",
              "note": "Install suite hands binary + skill"
            },
            {
              "cmd": "fcs hands",
              "note": "Run hands CLI"
            },
            {
              "cmd": "fcs hands doctor",
              "note": "Health when binary supports it"
            },
            {
              "cmd": "fcs mic && fcs hands",
              "note": "Voice + hands desk loop"
            }
          ],
          "sections": [
            {
              "id": "does",
              "title": "What /hands does",
              "kind": "prose",
              "body": "Gives agents Accessibility-level control of Mac UI for lab work: find nodes, click, type, focus. Goal is suite-native hands better than a standalone tool: one doctor, one fcs entry, same lab-env as MG/web/xr/voice."
            },
            {
              "id": "better",
              "title": "How we make it better",
              "kind": "cards",
              "items": [
                {
                  "title": "One doctor",
                  "body": "mg-lab-env.sh checks hands with mic/web/xr"
                },
                {
                  "title": "fcs hands",
                  "body": "Universal CLI from any agent terminal"
                },
                {
                  "title": "Voice pair",
                  "body": "fcs mic → intent · fcs hands → act"
                },
                {
                  "title": "MG aware",
                  "body": "Target Memory Glass + hotpipe desks first"
                },
                {
                  "title": "Private build",
                  "body": "FC_HANDS_SRC for our binary — no foreign brand in UX"
                }
              ]
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "bash scripts/install-hands.sh",
                "fcs hands",
                "bash scripts/mg-lab-env.sh doctor"
              ]
            }
          ]
        }
      ]
    }
  ],
  "links": {
    "fcs_hub": "https://fcs.ugrad.ai/",
    "download": "https://fcs.ugrad.ai/download/",
    "cli_help": "fcs help",
    "install": "fcs install"
  },
  "deploy_stamp": "compose-p0-v1",
  "hub_version": "0.3.3"
}
