From scripts to video, images, voice, avatars, translation, and editing, Agents move the whole creative process forward in one workspace.
OpenCreator was formerly known as KrillinAI.
English | 简体中文 | 日本語 | 한국어 | Bahasa Indonesia | Español | Français | Deutsch | Português | Русский | العربية
Project Highlights · Creator Tools · Conversation & Workspace · Models Supported · Examples · Quick Start · Desktop · OpenCreator System Architecture · Development · Documentation · Contributors · Star History
OpenCreator is built for individuals and teams who want to keep creative and development work running locally. Instead of reimplementing an Agent loop, it uses Codex CLI as the execution engine and adds a stable local Runtime, a visual workspace, and a Desktop host around it.
The product brings together two connected workflows:
- AI content creation: use dedicated creator tools for video translation, video downloading, thumbnail generation, and image generation.
- General Agent workspace: organize conversations by project, keep Runs working in the background, and manage approvals, attachments, files, Skills, MCP, schedules, notifications, memory, and diagnostics from one place.
Web is the single frontend implementation. Desktop loads the same Web build and adds only capabilities that require the operating system, such as directory selection, window lifecycle, tray behavior, and native notifications. With the same data and content viewport, both platforms share the same general UI and Runtime behavior.
-
🤖 Codex Native: Reuse the Codex Agent loop, models, reasoning, tool calls, conversations, Skills, and MCP without maintaining a second execution engine.
-
🚀 Ready-to-Use Desktop App: Launch OpenCreator directly from the desktop app with Codex CLI included; the local Runtime starts on demand and prepares a default project automatically.
-
🔄 Managed Runtime Components: Inspect bundled, active, and latest yt-dlp versions, check for updates periodically, and update manually while keeping the current working version available if an update fails.
-
🎨 Multimodal Creation: Create and manage video, images, audio, subtitles, and documents through one connected workflow.
-
🔗 Dual-Mode Workflow: Work through either the visual workspace or Agent conversation while one shared state machine keeps steps, progress, and results synchronized.
-
🕘 Versioning: Every revision creates a new version while preserving earlier settings and outputs for review and comparison.
-
🧩 Skills and MCP: Browse, install, and invoke Skills while managing MCP through Codex-native configuration.
-
🧠 Memory: Keep global, project, and thread memory with summaries and reproducible Run input snapshots.
-
🔐 Local Security: Keep data, attachments, and logs local by default, with approvals and redacted diagnostics.
The current release includes six creator tools. Available models and services depend on your local Codex environment and AI service settings.
Open the Dashboard to translate or download videos, generate thumbnails or images, create voiceovers with Smart Dubbing, or generate videos with Seedance.
More creator tools are continuously being added.
| Workspace | Status | Capabilities |
|---|---|---|
| Video Translation | ✅ Available | Import local or public videos; transcribe with cloud or local Whisper services; use LLM context for subtitle segmentation, alignment, terminology, and translation; configure bilingual subtitles, dubbing or a custom voice sample, subtitle styles, landscape or portrait composition, and export SRT, audio, or video |
| Video Downloader | ✅ Available | Parse YouTube, Bilibili, and other supported public links, inspect available quality and format options, and download video or audio for later workflows |
| Thumbnail Generator | ✅ Available | Combine a topic, video link, and optional reference image to generate and compare multiple content-thumbnail variations |
| Image Generation | ✅ Available | Generate with GPT Image from a prompt and optional reference image, configure the aspect ratio and output count, then preview and download individual images |
| Stick Figure Animation | Coming soon | Develop characters, storyboards, voiceovers, and animation in a guided workflow |
| Auto Clips | In development | Analyze long videos, identify highlights, and turn selected moments into reusable short clips |
| Smart Dubbing | ✅ Available | Turn scripts into voiceovers with selectable voices, pacing, and emotion controls |
| Video Generation | ✅ Available | Generate videos with Seedance from prompts and reference images, then preview, regenerate, and download each version |
| Digital Avatar | In development | Combine scripts, voice, and avatar presentation to produce talking-head videos |
Describe tasks naturally, then step into visual tools whenever you need precise control.
Adjust subtitles, shots, audio, and generation settings precisely.
Tell the Agent what to change and refine the result in natural language.
Conversation and workspace share the current task state, so nothing needs repeating.
Each revision creates a separate version without overwriting earlier results or settings.
Language model availability follows the Codex model catalog or your OpenAI-compatible provider. Image, video, voice, and transcription models use the services configured in Settings → AI Services.
GPT |
DeepSeek |
Qwen |
Kimi |
GLM |
Grok |
Doubao |
ERNIE |
Hunyuan |
GPT Image |
Seedance |
Whisper |
OpenAI TTS |
MiniMax |
Edge TTS |
Aliyun Speech |
The public examples below were produced when OpenCreator was still named KrillinAI. They demonstrate the established subtitle alignment, translation, dubbing, and portrait-video workflow that OpenCreator's Video Translation workspace brings into a wider Agent workflow.
The project generated the subtitle file below from a 46-minute local video in one run, without manual subtitle adjustments. The published result shows complete coverage, no overlapping lines, natural segmentation, and high-quality translation.
subtitle_translation.mp4 |
tts.mp4 |
agi.mp4 |
These video examples and the subtitle alignment image were produced while OpenCreator still used the KrillinAI name.
Generate an AI video from a text prompt or reference image with Seedance. Configure the model, aspect ratio, resolution, and duration, then preview, regenerate, or download each version from the project workspace.
Analyze a public video link, compare the available formats, and download video or audio directly to the project.
Coming soon. Not yet integrated in the current release.
OpenCreator developed this original character collection in collaboration with artist Harbor Hsia, creator of Stickman on Behance. The preset cast is being prepared for a future story and animation workflow with consistent character identities.
The planned workflow will guide a character and story idea through storyboard generation, shot review, voiceover, music, and versioned animation output.
- Node.js 22 or later
- pnpm 9.15.0, pinned through the repository's
packageManagerfield - A Codex CLI executable available in your terminal
- A valid Codex CLI login for real model tasks
Check your local environment first:
node --version
pnpm --version
codex --versiongit clone https://github.com/krillinai/OpenCreator.git
cd OpenCreator
corepack enable
pnpm install
pnpm web:devOpen http://127.0.0.1:19861/. The development server starts the local daemon on demand and injects a temporary Runtime token through a same-origin proxy, so no connection token needs to be copied manually.
On first launch, the Runtime prepares a default project. The composer is ready as soon as the connection completes. To work on the daemon only:
pnpm daemon:devThe daemon listens only on a loopback address and prints its connection address and temporary token to stdout once.
Desktop and the browser use the same React frontend from apps/web. General project, conversation, task, and settings behavior calls the same Daemon/API. Electron adds only real system paths, window controls, tray behavior, and native notifications.
pnpm desktop:dev| Command | Output |
|---|---|
pnpm desktop:package |
A runnable directory for the current platform, intended for local verification |
pnpm desktop:dist |
An installer for the current platform |
pnpm desktop:release |
The formal release packaging entry point |
pnpm --filter @opencreator/desktop verify:package |
Verification for an existing Desktop package |
pnpm krillinai:package |
Separate KrillinAI Server and CLI archives for the selected platform |
Desktop packaging rebuilds Web from the current workspace, records the commit, dirty state, platform, architecture, and Web hash, and compares apps/web/dist with the resources embedded in the application. Packaging fails if they differ. See the Desktop release runbook for signing, notarization, Windows builds, and release requirements.
- Select a project or start a new conversation.
- Enter a task and choose the permission level, Profile, model, and reasoning effort.
- While a Run is active, queue follow-up tasks or interrupt it and continue immediately.
- Use the Timeline to inspect reasoning summaries, tool calls, file changes, approvals, and final results.
- Use the task center to track running, completed, failed, and approval-blocked tasks globally.
- Browse the Skill marketplace, installation history, and locally available Skills in the plugin center.
- Select a Skill from the composer with
/or the add menu so the next task follows its workflow. - MCP management passes through Codex-native commands and configuration instead of maintaining a second execution engine.
- OpenCreator uses the active
$CODEX_HOMEby default, so confirm the impact before changing global Skills or MCP configuration.
- Every schedule owns a persistent, dedicated OpenCreator conversation.
- Automatic triggers, manual runs, and user follow-ups reuse that conversation and run serially with the
queueorskippolicy. - Deleting a schedule archives its dedicated conversation while preserving existing Runs, results, and underlying Codex history.
- Rotating or recovering an underlying Codex thread does not change the OpenCreator task entry or page route.
OpenCreator treats the visual workspace and the Agent conversation as two interfaces to the same creative task, rather than two separate workflows. Each creator workflow is modeled as a state machine: source input, configuration, generation, review, revision, and export become explicit states and events. Workspace actions and conversational commands enter the same state machine, while the current step, configuration, progress, versions, and results are projected back into both interfaces. This keeps the workspace and conversation synchronized without introducing a second source of truth.
Creative work is iterative, so revisions do not overwrite the current result. Each correction or regeneration creates a new version from the existing workflow state, retaining the settings and outputs of earlier versions for review, comparison, and continued refinement.
+-----------------------------+ +------------------------------------+
| Browser Access | | Desktop Host |
| | | Shared Web build + Electron |
+--------------+--------------+ +------------------+-----------------+
| |
+-------------------+-------------------+
v
+----------------------------------------------------------------------------+
| Creator Experience / apps/web |
| Dashboard / Creator Tools / Agent Conversation / Settings / Files |
+-------------------------------------+--------------------------------------+
|
+-------------------------------------v--------------------------------------+
| Collaboration Core |
| Shared workflow state / Steps / Progress / Results / Versions |
+-------------------------------------+--------------------------------------+
| Runtime API + SSE
+-------------------------------------v--------------------------------------+
| Local Runtime / apps/daemon |
| Projects / Runs / Approvals / Schedules / Memory / Notifications |
| Component status / Update checks / Verified updates / Safe fallback |
+-------------+------------------------+------------------------+-------------+
| | |
v v v
+---------------------+ +---------------------+ +-------------------------+
| Local Data | | Codex Engine | | Media Toolchain |
| SQLite / Files | | CLI / app-server | | FFmpeg / yt-dlp |
| System credentials | | Skills / MCP | | Whisper / AI services |
+---------------------+ +---------------------+ +-------------------------+
| OpenCreator Component | Responsibility | Implementation |
|---|---|---|
| Creator Experience | Dashboard, creator tools, Agent conversation, settings, and files | apps/web · React 18 · Vite · TypeScript |
| Collaboration Core | Keeps workspace steps, conversation context, progress, results, and revisions synchronized | Shared workflow state · CreatorCollaborationPanel · version history |
| Local Runtime | Manages projects, Runs, approvals, schedules, memory, and notifications | apps/daemon · Fastify · Runtime API · SSE |
| Runtime Components | Tracks bundled, active, and latest versions; checks periodically and installs only user-requested updates | yt-dlp nightly · update verification · working-version fallback |
| Codex Engine | Provides the Agent loop, sessions, reasoning, tools, Skills, and MCP | Codex CLI · app-server |
| Media Toolchain | Downloads, transcribes, transforms, generates, and exports creative media | yt-dlp · Whisper · FFmpeg · configured AI services |
| Local Data | Stores project data, Runs, attachments, outputs, and credentials locally | SQLite · filesystem · system credential storage |
| Desktop Host | Loads the shared Web build and adds operating-system capabilities | apps/desktop · Electron · Preload Bridge |
Core principles:
- The workspace and Agent conversation are synchronized projections of one workflow state; both dispatch events to the same state machine instead of maintaining parallel task state.
- Revisions create new versions instead of replacing existing results, preserving the context and output of every creative iteration.
- The frontend does not launch Codex directly and does not depend on raw Codex JSONL event formats.
- The daemon owns process lifecycle, event normalization, persistence, approvals, schedules, and the notification outbox.
- Codex remains the execution source of truth for the Agent loop, Skills, and MCP.
- Browser Bridge and Desktop Bridge do not implement separate copies of general product logic.
OpenCreator/
├── apps/
│ ├── web/ # The single React frontend implementation
│ ├── daemon/ # Local Fastify Runtime and Codex adapter
│ ├── desktop/ # Electron Main, Preload, native capabilities, and packaging
│ └── harness/ # Runtime command-line verification tool
├── packages/
│ ├── protocol/ # Runtime contracts shared by Web, Daemon, and Desktop
│ └── skill-market/ # Skill marketplace models and shared logic
├── docs/ # Design docs, API references, runbooks, and test reports
├── scripts/ # Repository-level checks
└── .runtime/ # Local Runtime data, created on first launch
Open Settings → AI Services to configure the model, transcription, voice, and image providers used by the current workspaces. Additional service categories may appear in preparation for upcoming creator tools. Each category exposes only the fields required by its selected provider, including the Base URL, API Key, model, proxy, or provider-specific credentials.
Credentials are saved through the local Runtime's system credential storage and should never be committed to the repository. Some local or system-backed providers, such as Edge TTS, do not require an API Key.
Open Settings → Third-party Components to inspect the yt-dlp nightly version currently in use, the version bundled with OpenCreator, its source, and the latest available release. OpenCreator checks for updates every seven days but never installs them automatically. Updates require an explicit user action, and the current working version remains available if downloading, verification, or installation fails.
Most users do not need environment variables. Use these when you need isolated data, a specific Codex executable, or a custom managed-project directory:
| Environment variable | Default | Purpose |
|---|---|---|
OPENCREATOR_DATA_DIR |
.runtime |
OpenCreator database, Runs, attachments, and managed workspaces |
OPENCREATOR_CODEX_BIN |
codex |
Path to the Codex CLI executable |
CODEX_HOME |
~/.codex |
Source of truth for Codex sessions, configuration, Skills, MCP, and Profiles |
OPENCREATOR_DEFAULT_CWD |
Current working directory | Default daemon working directory |
OPENCREATOR_DEFAULT_PROJECT_ROOT |
Runtime default policy | Managed-project root; when set, OpenCreator uses its OpenCreator/ child directory |
OPENCREATOR_CODEX_THREAD_ROTATION_RUN_THRESHOLD |
50 |
Terminal Run threshold for rotating the Codex thread behind a long-running schedule; use 0 to disable proactive rotation |
For example, isolate both Runtime data and the Codex environment:
OPENCREATOR_DATA_DIR=/path/to/opencreator-data \
CODEX_HOME=/path/to/codex-home \
pnpm web:devRuntime data is stored under .runtime/ in the repository root by default:
| Path | Contents |
|---|---|
.runtime/app.sqlite |
Projects, threads, Runs, events, schedules, notifications, attachment metadata, approvals, memory, and summaries |
.runtime/runs/ |
Redacted logs, diagnostics, and metadata for individual Runs |
.runtime/attachments/ |
Controlled attachment files |
.runtime/workspaces/ |
Runtime-managed project workspaces |
Codex sessions and configuration remain in $CODEX_HOME and must be backed up separately from .runtime/.
Security boundaries include:
- The daemon listens only on
127.0.0.1; every API except the health check requires a Bearer token. - HTML preview disables scripts, navigation, and popups by default and allows only controlled same-workspace relative resources.
- Sensitive memory requires a second confirmation. OpenCreator never permanently stores unconfirmed suggestions automatically.
- Diagnostics and Run logs are redacted before they are returned or exported.
- Desktop packages enable ASAR integrity and cookie encryption while disabling RunAsNode,
NODE_OPTIONS, and the Node CLI Inspector.
See the user guide and troubleshooting reference for complete backup, restore, cleanup, and reset procedures.
| Command | Purpose |
|---|---|
pnpm web:dev |
Start Web and launch the local daemon on demand |
pnpm daemon:dev |
Start the daemon only |
pnpm desktop:dev |
Build dependencies and start Electron in development mode |
pnpm test |
Run workspace unit and integration tests |
pnpm typecheck |
Run TypeScript checks across the repository |
pnpm build |
Build every workspace |
pnpm e2e |
Run Web Playwright E2E tests |
pnpm smoke:ci |
Run the fake-Codex Runtime smoke test |
pnpm perf:check |
Check the recorded performance baseline |
Before submitting a change, run at least:
pnpm test
pnpm typecheck
pnpm buildChanges to Desktop, Host Bridge, the Runtime proxy, or shared frontend workflows also require Web/Desktop consistency tests, packaged application E2E, and Web build hash verification. Passing Web unit tests alone does not establish Desktop release readiness.
The real Codex smoke test is disabled by default. Enable it explicitly with:
OPENCREATOR_RUN_REAL_CODEX_SMOKE=1 \
pnpm --filter @opencreator/daemon test -- test/smoke/real-codex-smoke.test.ts- User guide and troubleshooting
- Runtime API v1
- Codex-native Runtime design
- Desktop release runbook
- Windows Desktop release guide
- Visual component guidelines
The root README.md is the canonical English document. Maintained translations live at docs/<locale>/README.md. Add a language to the switcher only after its full document has been translated and synchronized with the English structure.
- Describe the problem, use case, and expected behavior in Issues.
- Create a focused feature or fix branch from the latest development branch.
- Follow the existing architecture: implement general product capabilities once in Web and Daemon, and isolate native differences behind explicit capabilities.
- Add appropriate unit, integration, or E2E coverage for behavior changes, and list both completed and skipped verification in the Pull Request.
- Never commit
.runtime/, local credentials, Codex sessions, build caches, or other user data.
Thanks to everyone who has taken part through code, documentation, feedback, issue reports, Skills, designs, and ideas.
OpenCreator was formerly named KrillinAI. This chart covers the repository's full history across the rename.
| Project | Role |
|---|---|
| OpenAI Codex | The Agent execution engine behind model access, reasoning, tool calls, sessions, Skills, and MCP integration. |
| yt-dlp | Inspects supported public media links, lists available formats, and downloads video or audio for creator workflows. |
| FFmpeg | FFmpeg and ffprobe handle media conversion, composition, frame extraction, and output validation. |
| Whisper, whisper.cpp, faster-whisper, and WhisperKit | Cloud and platform-specific local speech-transcription options selected according to available Runtime capabilities. |
| React | The shared user interface foundation for the Web and Desktop experiences. |
| Fastify | The HTTP and API foundation of the local Runtime. |
| Electron | The Desktop host for native system capabilities, application lifecycle, and packaging. |
| SQLite | Local persistence for projects, conversations, Runs, schedules, memory, and other workspace data. |
| Model Context Protocol | The open protocol used to connect external tools and services to the Agent workspace. |
OpenCreator · Create locally, work continuously.









