Short-form video skill pack for Claude Code, Codex CLI, and similar coding-agent CLIs.
Content Machine is moving away from a monolithic "AI video agent" and
toward repo-local skills, 45ck/prompt-language flows, and deterministic
runtime scripts that coding-agent CLIs can call directly.
cat <<'JSON' | node --import tsx scripts/harness/brief-to-script.ts
{
"topic": "Redis vs PostgreSQL for caching",
"archetype": "versus",
"targetDuration": 35,
"outputPath": "output/content-machine/script/script.json"
}
JSONEarly development. Skills, flows, and runtime scripts are now the primary interface. The legacy CLI control plane has been moved into
archive/legacy-cli/; the remainingcmshell is intentionally thin.
Start with
skills/,scripts/harness/,flows/, andDIRECTION.md.
npm installNode.js 20.6+ is required.
Use these three surfaces together:
skills/: importable short-form video skillsflows/:45ck/prompt-languagedocs and manifestsscripts/harness/: repo-side JSON-stdio runtime entrypoints
If you are deciding where to start:
- Start with a skill when you want one capability.
- Start with a flow when you want a full multi-step path.
- Start with
scripts/harness/only when you need the exact repo-side executable entrypoint.
Discover what is shipped:
cat <<'JSON' | node --import tsx scripts/harness/skill-catalog.ts
{}
JSON
cat <<'JSON' | node --import tsx scripts/harness/flow-catalog.ts
{}
JSONCurrent repo-side entrypoints:
node --import tsx scripts/harness/doctor-report.ts
node --import tsx scripts/harness/flow-catalog.ts
node --import tsx scripts/harness/run-flow.ts
node --import tsx scripts/harness/skill-catalog.ts
node --import tsx scripts/harness/generate-short.ts
node --import tsx scripts/harness/brief-to-script.ts
node --import tsx scripts/harness/ingest.ts
node --import tsx scripts/harness/script-to-audio.ts
node --import tsx scripts/harness/timestamps-to-visuals.ts
node --import tsx scripts/harness/video-render.ts
node --import tsx scripts/harness/publish-prep.ts
node --import tsx scripts/harness/install-skill-pack.tsIf you want these skills inside another project, install the package there and materialize a local pack:
npm install @45ck/content-machine
cat <<'JSON' | node ./node_modules/@45ck/content-machine/agent/run-tool.mjs install-skill-pack
{
"targetDir": ".content-machine",
"includeFlows": true
}
JSONShipped starter skills:
- skills/doctor-report/SKILL.md
- skills/skill-catalog/SKILL.md
- skills/generate-short/SKILL.md
- skills/brief-to-script/SKILL.md
- skills/reverse-engineer-winner/SKILL.md
- skills/script-to-audio/SKILL.md
- skills/timestamps-to-visuals/SKILL.md
- skills/video-render/SKILL.md
- skills/publish-prep-review/SKILL.md
npm run cm -- --helpOnly config, doctor, mcp, and render remain live under cm.
Everything else now lives in archive/legacy-cli/.
See full installation guide for optional
setup such as Whisper and ffmpeg.
1. Run the main end-to-end flow
cat <<'JSON' | node --import tsx scripts/harness/run-flow.ts
{
"flow": "generate-short",
"runId": "demo-run",
"input": {
"topic": "Redis vs PostgreSQL for caching",
"audio": { "voice": "af_heart" },
"visuals": { "provider": "pexels", "orientation": "portrait" },
"render": { "fps": 30, "downloadAssets": true },
"publishPrep": { "enabled": true, "platform": "tiktok" }
}
}
JSON2. Reverse-engineer a reference short
cat skills/reverse-engineer-winner/examples/request.json | \
node --import tsx scripts/harness/ingest.ts3. Generate a script
cat skills/brief-to-script/examples/request.json | \
node --import tsx scripts/harness/brief-to-script.ts4. Review a render before upload
cat skills/publish-prep-review/examples/request.json | \
node --import tsx scripts/harness/publish-prep.ts5. Run structured environment diagnostics
cat skills/doctor-report/examples/request.json | \
node --import tsx scripts/harness/doctor-report.tsThe primary user guide is now docs/user/AGENT-QUICKSTART.md. The archived CLI notes live under archive/legacy-cli/.
skills/defines when to use a capability, what it expects, and what files it should return.flows/defines45ck/prompt-languageorchestration over one or more skills.scripts/harness/exposes deterministic JSON-stdio entrypoints that execute the work.src/still contains the media logic for captions, sync, reverse-engineering, render, and publish prep.docs/direction/is the source of truth for the migration plan and cut lines.
Typical output flow:
skill request
-> flow or direct runtime script
-> files on disk
-> optional render / review / evaluation outputs
Run-scoped flows write under runs/<run-id>/ by default. Direct skills
can also write to explicit output paths.
- Generate a short-form video from a topic.
- Reverse-engineer a winning reference short from a local file or URL.
- Generate only scripts, audio, visuals, or renders when needed.
- Run structured diagnostics before expensive generation work.
- Use the thin
cmshell only for config, diagnostics, MCP, or render compatibility.
- Agent Quickstart — primary user path for Claude Code, Codex CLI, and similar tools
- skills/ — agent-facing skill docs
- flows/ —
45ck/prompt-languagedocs and executable flows - scripts/harness/ — repo-side JSON-stdio entrypoints and execution model
- Direction — migration plan, cut lines, and archive policy
- User Guide — skill-pack docs
- Developer Docs — active architecture, registries, and legacy engineering docs
- Reference — generated references, environment variables, glossary, and CLI details
- Archive — frozen legacy control-plane code and notes
Contributions welcome! See CONTRIBUTING.md to get started.
git clone https://github.com/45ck/content-machine.git
cd content-machine && npm install && cp .env.example .env
node --import tsx scripts/harness/skill-catalog.tsMIT


