Download · launch terminal · run:
cd '/path/to/blank' && exec ./start.shBuilt for live develop-and-iterate workflows while a terminal AI CLI is running.
Phrase search across queued video captions; scene-linked intel and keyboard shadow paths in the feed.
Multi-layout spiral and key-position coverage in phrase search.
Waveforms, scrubbing, IK pose estimates, and camera-axis telemetry on scene cards.
Double-click Launch Blank.app or Launch.command in this folder to open Terminal, start the server, and open your browser. For the cursor-habitat agent (same Terminal pattern), double-click Launch-Habitat.command.
- Keep
Launch Blank.apphere (next tostart.sh). It uses your favicon as the Finder/Dock icon after you run./support/macos/refresh-launcher-icon.sh(see support/README.md). - Server, HTML, and package manifest are in
support/. See support/README.md fornpm, per-request logging, network/tuning env vars, rebuilding the app, and video ingest (queue, embeds, yt-dlp/mustream commands — same pattern asmueee-kbatch/video-ingest-hub).
While it’s running, the Terminal shows a startup banner plus one line per HTTP hit. Send SIGUSR1 to that process (e.g. kill -USR1 <pid>) to print rolling stats.
Stop the server: Ctrl+C in the Terminal window that opened.
support/cursor-habitat/ is a small @cursor/sdk script: Blank’s “habitat / recipes” persona for terminal agents (mustream, yt-dlp, ffmpeg)—see support/cursor-habitat/README.md.
Finder: Launch-Habitat.command (repo root) opens Terminal.app and starts habitat (same ergonomics as Launch.command for the static server).
Launch Blank.app / server first launch: if macOS blocks the app, right-click → Open once, or allow it under System Settings → Privacy & Security.
Static UI is deployed from support/ on every push to main via .github/workflows/pages.yml.
- In github.com/fornevercollective/blank/settings/pages, set Build and deployment → Source to GitHub Actions.
- After the workflow succeeds, the site is at https://fornevercollective.github.io/blank/
Note: Pages serves the front end plus a committed pre-cache under support/pages-cache/SKia5QUiGkE/ (scenes, captions, thumbnails). CI does not call YouTube (runners get bot-blocked); refresh the bundle locally and commit:
node support/scripts/build-pages-cache.mjs "https://www.youtube.com/watch?v=SKia5QUiGkE"
# optional: --force to rebuild an existing cache
# if blocked: YTDLP_COOKIES=/path/to/cookies.txt node support/scripts/build-pages-cache.mjs --forceOther ingest APIs (/api/ingest/*, live yt-dlp preview, gsplat PLY export) need the local server (./start.sh or node support/server.mjs). See support/README.md → Scene intel → gsplat export.