Repository navigation
Shortforge v0.1.0
First public release of Shortforge: a self-hosted studio that turns a topic into a faceless Short/Reel and publishes it — script → voice → images → motion → sound → package → review → publish — with a review Desk in your browser and an MCP server so Claude can drive it.
Highlights
- Config-driven pipelines. Add your own channel/account with
npm run pipeline:new(no code). Two engines:story(narrated cinematic Shorts) andtech(one-concept explainer reels). Ships with EpicAstra and Tech Reels as examples. - Runway or Wan for scene video. Hosted Runway needs only an API key (≈ $0.25 per 5 s clip on
gen4_turbo); self-hosted Wan on a GPU is still supported. No video provider = pan/zoom on stills. - Connect AI. Desk button +
.mcp.jsongive Claude Code, Claude Desktop and Cursor the exact setup, with a test button. 16 MCP tools cover scripts, image prompts, production, connections, publishing and analytics. Real publishing needs an explicit confirm. - Hardened Desk login. No default password (a random one is printed on first start), hashed storage, login throttling, every write requires a session, Host-header checks, owner-only token files.
- Approval gates at every step; published episodes lock.
npm run doctorchecks your setup. CI runs the tests and the UI build.
Get started
See the README.
Known limits
- Windows is untested. macOS is the primary platform; Linux should work.
- Runway is tested against a mocked API only; ratios and durations vary by model and are settable (
RUNWAY_RATIO,RUNWAY_DURATIONS). Please report real-API problems. - Claude Desktop / Cursor setup is generated for your machine but has not been verified in those apps; Claude Code is the primary path.
storypipelines run on the mythology engine (claims review, heritage look). A new niche with its own editorial rules needs a new engine in code.tsc --noEmitcurrently reports 27 type errors (strict optional-property typing); runtime and tests are unaffected, and typecheck is not part of CI yet.- The SFX/BGM library is not included (licensing) — see
assets/audio/DOWNLOAD.md. Instagram publishing needs a publicly reachable video URL (seedocs/publish-setup.md). - Not published to npm; clone the repo or use it as a template.