Content
<div align="center">
<img src="packages/remotion/public/logos/socheli-mark-light.png" width="76" alt="Socheli" />
# Socheli
**The agentic content engine.** One idea in → a premium, faceless video at **any aspect ratio** —
vertical 9:16, square 1:1, wide 16:9, or a custom W×H canvas — end to end: researched, written,
storyboarded, fact-checked, QA-gated, **edited**, rendered, packaged, and published across YouTube,
Instagram, and TikTok.
[Quickstart](docs/quickstart.md) · [Architecture](docs/architecture.md) · [Editor](docs/WORLD-CLASS-EDITING.md) · [API](docs/api.md) · [SDK](docs/sdk.md) · [CLI](docs/cli.md) · [MCP](docs/mcp.md) · [Harness](docs/harness.md) · [Fleet](docs/fleet.md)
</div>
---
## What it is
Socheli turns a single prompt into a finished, on-brand video — a **vertical short** or a
**multi-chapter long-form** cut (`socheli longform "…"`). The pipeline is fully agentic:
trends → scored concept board → hook → script → storyboard → fact-check → QA council →
scene-synced voice + karaoke captions → ducked music bed → graded b-roll → frame-accurate edit →
branded outro → per-platform captions → thumbnail → publish.
It runs as a **distributed system**: an always-on control plane (dashboard + API + scheduler) and
a **fleet** of render devices that pick up jobs over MQTT, render locally, and sync results back.
Add a machine, it joins the pool.
## A real editor — not a template filler
Most "AI video" tools fill a template. Socheli **edits**. An editorial brain turns the brief into
an edit decision list, runs the craft passes a real team would, and **reviews its own cut**:
- **Frame-accurate control** — a frame-by-frame editor core: vision on sampled frames, structural
edits, and time control (trims, punch-ins, holds, beat-synced cuts). Every decision is data, not a preset.
- **DaVinci-grade craft** — a colorist (scopes → exposure / white-balance / scene-consistency grades),
an editor (pacing + cuts), a mixer (music ducked under VO), and a compositor — on a Remotion + ffmpeg stack.
- **Caption choreography** — multiple caption schools (karaoke, lower-third, behind-subject), kept
readable by a governor that keeps captions off faces and forces heavy outlines.
- **Beat sync + music bed** — cuts and punch-ins land on detected beats; the bed auto-ducks under voice.
- **A browser studio** — `/editor` + `/studio`: filmstrip, timeline, frame inspector, and
chat-to-edit. Ask for a change in plain language, see it on the real frame, undo anything.
See [docs/WORLD-CLASS-EDITING.md](docs/WORLD-CLASS-EDITING.md),
[docs/EDITOR-FRAME-CONTROL.md](docs/EDITOR-FRAME-CONTROL.md), and
[docs/editor-agent-tools.md](docs/editor-agent-tools.md).
## Surfaces
Socheli is built API-first. Every surface speaks to the same control plane.
| Surface | Package | What it's for |
|---|---|---|
| **HTTP API** | [`@socheli/api`](packages/api) | The backbone. REST, API-key auth. Everything else consumes it. |
| **SDK** | [`@socheli/sdk`](packages/sdk) | Typed TypeScript client. Zero deps. `createSocheli({ apiKey })`. |
| **CLI** | [`@socheli/cli`](packages/cli) | `socheli generate "…"`, `socheli fleet`, `socheli publish …`. |
| **MCP** | [`@socheli/mcp`](packages/mcp) | Model Context Protocol server — let Claude (or any agent) drive Socheli. |
| **Dashboard** | [`apps/dashboard`](apps/dashboard) | The web app (Next.js + Clerk) — War Room, Queue, Autopilot, Devices. |
| **Engine** | [`@os/engine`](packages/engine) | The generation/render pipeline + fleet agent + scheduler. |
## Try it now (no API key)
```bash
git clone https://github.com/Socheli/socheli && cd socheli && pnpm i
pnpm content demo "why we procrastinate"
```
Renders a vertical video locally and prints the path — no signup, no keys, no provider
credentials. The demo uses bundled placeholder media and offline fallbacks, so it works
with every provider key empty.
## 60-second quickstart
```bash
# install the CLI config (one-time)
socheli login --key <YOUR_API_KEY> --url https://api.socheli.com
socheli fleet # see your render devices
socheli generate "why we procrastinate" --channel concept_lab --auto
socheli jobs # watch it render on a device
socheli publish <id> --public # ship it
```
Or from code:
```ts
import { createSocheli } from "@socheli/sdk";
const socheli = createSocheli({ apiKey: process.env.SOCHELI_API_KEY });
const { job } = await socheli.generate({ seed: "the science of habit", channel: "concept_lab", type: "auto" });
const fleet = await socheli.fleet();
```
## Agent Harness
Socheli is agent-native in both directions. Point **any harness** (Claude Code, Codex, any MCP
client) at the full tool registry — 130+ tools over MCP stdio, REST, SDK, and CLI. And Socheli
**drives harnesses back**: channels carry a learned **Brand Genome** that evolves from performance,
a verified deep-**research** loop feeds strategy, and standing **missions** advance the whole
research → plan → create → publish → analyze loop autonomously — each step delegated to a
role-scoped worker on one of four **runtimes** (Claude Agent SDK, headless Claude Code, Codex,
or an OpenRouter tool loop), budgeted and logged. See [docs/harness.md](docs/harness.md).
## Architecture at a glance
```
┌─────────────── control plane (always-on server) ───────────────┐
you / agents ─► │ Dashboard (Clerk) @socheli/api Scheduler MQTT media host │
└─────────┬──────────────────┬──────────────────────┬────────────┘
SDK · CLI · MCP ──────────┘ dispatch job (MQTT) serve renders (https)
│ ▲
┌─────────▼─────────┐ rsync data │
│ render fleet │ ────────────────┘
│ M4 · device · … │ generate + render locally
└───────────────────┘
```
Control travels over MQTT (jobs, presence, progress — tiny). Heavy data (mp4s) is rendered on
devices and rsync'd to the server's public media host. See [docs/architecture.md](docs/architecture.md).
## Repo layout
```
packages/
engine/ @os/engine pipeline, fleet agent, scheduler, publisher
schemas/ @os/schemas zod single-source-of-truth
remotion/ @os/remotion cinematic render components
tokens/ @os/tokens design tokens
sdk/ @socheli/sdk typed API client (public)
api/ @socheli/api HTTP API server (public)
cli/ @socheli/cli `socheli` command-line (public)
mcp/ @socheli/mcp MCP server (public)
apps/
dashboard/ Next.js web app
docs/ architecture, quickstart, api, sdk, cli, mcp, fleet, deployment
```
## Develop
```bash
pnpm install
pnpm dev # dashboard at http://localhost:4040
pnpm typecheck # whole workspace
pnpm content # the engine CLI (local generation)
```
## License
**Open core.** The engine, dashboard, and Remotion compositions are
**AGPL-3.0** (see [LICENSE](LICENSE)); the client packages you build with —
`cli`, `sdk`, `mcp`, `api`, `schemas`, `tokens`, and the mobile app — are
**MIT**. Full breakdown in [LICENSING.md](LICENSING.md).
MCP Config
Below is the configuration for this MCP Server. You can copy it directly to Cursor or other MCP clients.
mcp.json
Connection Info
You Might Also Like
markitdown
Python tool for converting files and office documents to Markdown.
OpenAI Whisper
OpenAI Whisper MCP Server - 基于本地 Whisper CLI 的离线语音识别与翻译,无需 API Key,支持...
oh-my-opencode
Background agents · Curated agents like oracle, librarians, frontend...
boss-zhipin-mcp
BOSS Zhipin MCP Server - Automate Recruitment Process with AI: Batch...
OpenProphet
Autonomous AI trading agent with web dashboard, MCP tools, and Go trading backend
mem0-mcp-selfhosted
Self-hosted mem0 MCP server for Claude Code. Run a complete memory server...