{
  "schema": "fcs.skills/v2",
  "product": "fcs.ugrad.ai",
  "title": "fornevercollective skills \u00b7 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",
          "blurb": "Turn a live stream or URL into half-block TTY video \u2014 or pop it out to a real player window.",
          "status": "shipped",
          "what": "/watch is the live video surface of the suite. It pulls news, VEVO, movie trailers, X broadcasts, or any yt-dlp URL, demuxes with ffmpeg, and paints either inside a Terminal (half-block / Kitty) or in an OS pop-out (ffplay). It is not a browser tab \u2014 it is a media wall pipe you run from any terminal or AI agent via fcs watch.",
          "aliases": [
            "/gmux",
            "/tv",
            "/live",
            "fcs watch"
          ],
          "sections": [
            {
              "id": "run",
              "title": "Run it \u00b7 real commands",
              "kind": "cli",
              "lines": [
                "fcs watch bloomberg",
                "fcs watch popout bloomberg",
                "fcs watch cnn",
                "fcs watch news",
                "fcs watch \"https://x.com/user/media\"",
                "fcs watch \"https://www.youtube.com/watch?v=\u2026\"",
                "/watch trailers",
                "/watch vevo",
                "/watch optical"
              ]
            },
            {
              "id": "does",
              "title": "What /watch does",
              "kind": "prose",
              "body": "1) Resolve a channel name or URL (bloomberg, cnn, trailers, x.com/\u2026/media, raw https). 2) yt-dlp + ffmpeg demux audio/video. 3) Render path A: RGB frames \u2192 half-block glyphs in Grok/TTY. Path B: popout \u2192 external ffplay window. Optional plant paths: optical blur TX, nested glyph peel, cam side pane. Agents should always prefer fcs watch (universal) over reimplementing a player."
            },
            {
              "id": "modes",
              "title": "Modes \u00b7 at a glance",
              "kind": "cards",
              "items": [
                {
                  "title": "TTY / half-block",
                  "body": "Default in a real Terminal + FC binary: live demux painted as block characters (or Kitty). Best for ops desks next to agents."
                },
                {
                  "title": "popout",
                  "body": "fcs watch popout \u2026 or key o \u2192 OS ffplay window. Agent-safe default when non-TTY."
                },
                {
                  "title": "trailers",
                  "body": "Shuffle movie trailers \u00b7 s random \u00b7 S toggle shuffle."
                },
                {
                  "title": "X media",
                  "body": "Profile /user/media tabs expand to a video playlist (cookies help)."
                },
                {
                  "title": "optical",
                  "body": "/watch optical \u00b7 light pulse / fountain path (see /optical)."
                },
                {
                  "title": "glyph (nested)",
                  "body": "/watch glyph still works; prefer first-class /glyph for the full engine."
                }
              ]
            },
            {
              "id": "keys",
              "title": "Keys (in player)",
              "kind": "table",
              "rows": [
                [
                  "Space",
                  "pause"
                ],
                [
                  "n / p",
                  "next / prev"
                ],
                [
                  "s / S",
                  "shuffle \u00b7 toggle"
                ],
                [
                  "g",
                  "guide"
                ],
                [
                  "/",
                  "search"
                ],
                [
                  "c",
                  "cam side"
                ],
                [
                  "o",
                  "pop-out"
                ],
                [
                  "U",
                  "X go-live"
                ],
                [
                  "Esc",
                  "quit"
                ]
              ]
            },
            {
              "id": "not",
              "title": "Not /watch",
              "kind": "prose",
              "body": "Offline WebGrid chase is /webgrid (own skill). Glyph arena prefer /glyph. Pure optical TX prefer /optical. Self-view camera is /cam. Phone Continuity is /phone."
            },
            {
              "id": "deps",
              "title": "Deps",
              "kind": "prose",
              "body": "yt-dlp, ffmpeg (+ ffplay for pop-out). Optional: YTDLP_COOKIES_FROM_BROWSER=safari for logged-in feeds."
            }
          ],
          "examples": [
            {
              "cmd": "fcs watch bloomberg",
              "note": "Live Bloomberg \u00b7 TTY half-block demux"
            },
            {
              "cmd": "fcs watch popout bloomberg",
              "note": "Same feed \u2192 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 \"https://example.com/stream.m3u8\"",
              "note": "Any yt-dlp / HLS / event URL"
            },
            {
              "cmd": "fcs watch \"https://x.com/user/media\"",
              "note": "X profile Media tab playlist"
            },
            {
              "cmd": "/watch trailers",
              "note": "Movie trailer shuffle \u00b7 s random"
            },
            {
              "cmd": "/watch vevo",
              "note": "Music video desk when configured"
            },
            {
              "cmd": "/watch optical",
              "note": "Optical light TX as main surface"
            },
            {
              "cmd": "/watch popout 'https://\u2026'",
              "note": "URL straight to pop-out player"
            }
          ]
        },
        {
          "id": "cam",
          "cmd": "fcs cam",
          "slash": "/cam",
          "title": "Self-view cam",
          "blurb": "Large self-view + stream desk \u2014 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 \u00b7 dual \u00b7 large \u00b7 xl \u00b7 pip \u00b7 optic styles \u00b7 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 \u2192 OS ffplay window."
                },
                {
                  "title": "star \u00b7 glass \u00b7 bubble",
                  "body": "GPU optic styles on the self-view rim."
                },
                {
                  "title": "xl \u00b7 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 \u00b7 markets \u00b7 NTP tier \u00b7 unix/epoch drift \u2014 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 \u2260 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 \u2014 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 \u2014 never auto-casts.",
          "status": "shipped",
          "what": "/cast pushes a URL or desk surface to Chromecast-built-in TVs (TCL Google TV wall). Explicit only \u2014 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://\u2026'",
                "/cast list"
              ]
            }
          ]
        },
        {
          "id": "tiles",
          "cmd": "fcs tiles",
          "slash": "/tiles",
          "title": "Tile plane",
          "blurb": "Independent ffplay tiles \u2014 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 \u2014 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 \u00b7 HDRI anamorphic \u00b7 360 compound-eye from webcam / Continuity.",
          "status": "shipped",
          "what": "/lens is the experimental vision optic: insect/bug FOV, HDRI anamorphic, 360 fisheye \u2014 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\u2192camera air-gap data: light pulse, fountain QR, glyph embed \u2014 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 \u00b7 lab \u00b7 language",
      "skills": [
        {
          "id": "webgrid",
          "cmd": "fcs webgrid",
          "slash": "/webgrid",
          "title": "WebGrid chase",
          "blurb": "Offline ugrad chase on TTY half-block \u2014 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 \u00b7 quantum-lift \u00b7 broadcast TX/RX \u00b7 live translation \u00b7 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 \u00b7 captions \u00b7 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 \u2014 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 \u2014 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 \u2014 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 \u2014 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": "browser-dev",
      "label": "Browser \u00b7 inspect \u00b7 hygiene",
      "skills": [
        {
          "id": "web",
          "cmd": "fcs web",
          "slash": "/web",
          "title": "/web inspect",
          "blurb": "Multi-browser DevTools onramp \u00b7 field triggers \u00b7 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 \u2014 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 \u2014 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 \u00b7 tools present \u00b7 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": "agent-desktop",
      "label": "Voice \u00b7 hands",
      "skills": [
        {
          "id": "mic",
          "cmd": "fcs mic",
          "slash": "/mic",
          "title": "Mic \u00b7 suite voice-bridge",
          "blurb": "Mic \u2192 whisper \u2192 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 \u2192 whisper \u2192 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 \u00b7 suite chat-voice",
          "blurb": "Inbox \u2192 Grok \u2192 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 \u2014 fill inbox"
            },
            {
              "cmd": "fcs chat",
              "note": "Pane B \u2014 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 \u00b7 suite agent GUI",
          "blurb": "Agent Mac GUI control for lab desks.",
          "status": "lab",
          "what": "/hands is the fornevercollective agent hands plane for Mac GUI control in the lab. Install with scripts/install-hands.sh. Use from agents as fcs hands.",
          "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 check when binary supports it"
            }
          ],
          "sections": [
            {
              "id": "does",
              "title": "What /hands does",
              "kind": "prose",
              "body": "Gives agents controlled Mac GUI actions for lab workflows (click, type, focus) without shipping a separate consumer dictation brand. Optional binary via install-hands.sh (FC_HANDS_SRC for private builds)."
            },
            {
              "id": "run",
              "title": "Run it",
              "kind": "cli",
              "lines": [
                "bash scripts/install-hands.sh",
                "fcs hands",
                "fcs hands doctor"
              ]
            }
          ]
        }
      ]
    }
  ],
  "links": {
    "fcs_hub": "https://fcs.ugrad.ai/",
    "download": "https://fcs.ugrad.ai/download/",
    "cli_help": "fcs help",
    "install": "fcs install"
  },
  "deploy_stamp": "suite-voice-hands-v1"
}
