Lingji Cut review: a local-first AI video workbench built on Electron and Remotion
Open-source video creation tool
At a glance
- What is it?
- Lingji Cut (灵剪) chains topic capture, script writing, TTS, subtitle analysis, card generation, timeline editing and Remotion export into one desktop app. It is aimed at Chinese-language content creators who want the pipeline on their own disk, and the README is candid about what is not finished yet.
- Who is it for?
- Adopt Lingji Cut if you already produce Chinese-language talking-head or commentary video and you are comfortable running an Electron app from source, because the file-first project layout means your script, audio, subtitles and cards stay as plain files you can back up and diff.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 43 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Lingji Cut actually replaces in a creator's workflow
Most desktop video editors assume you already have footage and a script. Lingji Cut starts one step earlier. The README describes it as an "AI 视频创作工作台" and lays out a pipeline that begins with topic collection through a Chrome extension called 灵机采风, which monitors Douyin accounts and pushes captured public videos into a pending-creation inbox. From there you get original.md, then script.md, then TTS audio, subtitles, content analysis, cover candidates, information cards, a timeline, and finally a Remotion export to H.264 MP4.
The intended user is a solo Chinese-language creator working on talking-head or commentary content, where the bottleneck is the script and the b-roll cards rather than frame-accurate cutting. The README states the app can also be entered mid-pipeline: import an existing audio file plus an SRT, skip the writing stage, and edit the timeline directly. That second entry point matters, because it means the tool does not force you through its AI features to be useful.
What it is not: a replacement for Premiere or DaVinci Resolve on colour, multicam or audio mixing. The feature list mentions drag, snap, split, trim, copy and paste, track locking, and multiple visual and audio tracks. That is a competent editing surface, not a finishing suite.
How the pipeline is wired: file-first projects over an MCP server
The architectural decision that shapes everything else is that a project is a directory of ordinary files. The README lists project.json as the unified engineering file holding timeline, aiAnalysis and script sections, alongside original.md, script.md, podcast-audio.mp3, podcast-subtitles.srt, a covers directory and an ai-cards directory. Nothing here requires a proprietary database, so a project can be copied, version-controlled or inspected with a text editor.
The second mechanism is the MCP server. Lingji Cut exposes a local lingji-editor MCP Server with lingji_* tools, which the README says can be registered with Claude Code, Codex or Gemini so an external agent can edit project files directly under what it calls a file-first contract. There is also a built-in Pi agent inside the app that reuses the application's LLM provider credentials and hot-reloads the editor as it makes changes, so you watch the timeline update while the agent works.
The rendering path runs through Remotion 4, which the README says bundles Chrome Headless Shell and ffmpeg. Motion Cards are generated as free-form Remotion TSX, and the README claims preview and export share the same compiled artifact, which is a meaningful detail: it reduces the class of bug where a card looks right in the editor and wrong in the MP4.
Installing Lingji Cut and running the first TTS-to-subtitle pass
The README gives a four-step Quick Start. Install dependencies first. The repository ships a project-level .npmrc that points npm, Electron and Node native module downloads at npmmirror mirrors, which the README says suits networks in mainland China. It also warns that npm 11 may print warnings such as Unknown project config "electron_mirror" and that these usually do not mean the install failed.
npm installIf the Electron binary download is ignored by local npm configuration, the README gives explicit environment variables to set before retrying on macOS or Linux:
export ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
export npm_config_disturl="https://npmmirror.com/mirrors/node/"
npm installThe Windows PowerShell equivalent uses $env: prefixes for the same two variables. Once dependencies resolve, start the development build:
npm run devThat runs the ensure-electron-binary script and then the dev launcher, opening the Electron shell with the Vite dev server. On first launch the README's typical workflow says to create or open a local project directory from the welcome page, import a raw manuscript or a video link for transcription, then work in the writing workbench to produce script.md.
For a first real pass, trigger the automated pipeline rather than the GUI. The CLI is a separate global install that bundles cli/src/index.ts into dist-cli/lingji.mjs and links it with npm link:
npm run install:cli
lingji audio gen [--project <p>] --wait
lingji subtitle analyze --waitThe README states the CLI communicates with a running Lingji Cut desktop instance through an MCP service address, so the desktop app must be open, or you pass --server to point at a different address. The first command generates the TTS narration; the second runs subtitle analysis and card generation. Both accept --wait, and the README documents a global --json switch for machine-readable output. Expect podcast-audio.mp3 and podcast-subtitles.srt to appear in the project directory.
The packaging gap is the biggest practical limitation
The README is unusually direct about this. It states that the current packaging output is a local .app and that formal signing, notarization and DMG or PKG distribution are not yet connected. The default artifacts land under release/ as release/灵机剪影-darwin-arm64/灵机剪影.app and release/灵机剪影-darwin-x64/灵机剪影.app.
The consequence is concrete. A macOS .app that is not signed and notarized will be blocked by Gatekeeper on another machine, and the README does not document a workaround. There is also no stated distribution path for Windows beyond the package:win and dist:win scripts, which the README describes as packaging a Windows app directory. If your plan is to download a binary and hand it to a colleague, this project is not there yet.
The CLI has its own sharp edge. Because install:cli uses npm link, the command is a symlink into this repository's build output. The README notes that after changing CLI source you only need npm run build:cli, not a re-link. But it also notes that the link lives under the global bin of the current Node version, so switching Node with nvm means running npm run install:cli again in the new version. On a machine with several Node versions, lingji will simply be missing from some shells.
A third constraint is language. The interface, the documentation and the pipeline are built around Chinese-language production, with TTS providers listed as MiniMax and Xiaomi MiMo including cloned voices. Nothing in the README suggests the writing or review stages are tuned for English scripts.
How it differs from a general-purpose editor with an AI plugin
The obvious comparison is a conventional NLE such as DaVinci Resolve or Premiere Pro with a transcription or AI plugin bolted on. The difference is where the AI sits. In a plugin model, AI is a helper invoked inside a timeline you assembled by hand, and the transcript is an artifact inside a proprietary project file. In Lingji Cut, the script is the origin of the timeline: script.md drives TTS, TTS drives the subtitle file, and subtitle analysis drives card placement. The README describes cards as streaming in incrementally and landing on tracks automatically.
A second comparison is a browser-based AI video service. Those typically render on the vendor's machines and hold your media. Lingji Cut's stated position is local-first: project files go in a directory you choose, and the README instructs users not to commit real API keys, session IDs, cookies or access tokens to the repository, which implies credentials are stored in application settings rather than a checked-in .env. The .env.example in the repository contains only MAIN_VITE_DEBUG_MODE and MAIN_VITE_LOG_LEVEL, which is consistent with that.
The trade-off is that local-first means you own the setup. There is no hosted render farm, and the Remotion export runs on your machine with its bundled Chrome Headless Shell and ffmpeg.
Maintenance cadence, licence and upgrade cost
The repository is not archived, and the last push was on 2026-08-19. Releases are tagged: v1.3.1 on 2026-06-27, v1.3.0 on 2026-06-22 and v1.2.0 on 2026-06-13, and package.json carries version 1.3.1. That is a steady release rhythm over the visible window, though the README does not describe a support policy or a deprecation process for project file format changes.
Upgrade cost is mostly dependency churn. The stack pins Electron 41, React 19, TypeScript 6, Remotion 4, TailwindCSS 4, CodeMirror 6, Zustand and Vitest, and the install path depends on mirror configuration in .npmrc. A major Electron or Remotion bump is the kind of change that touches the render pipeline, because the README says preview and export share one compiled artifact.
Licensing is Apache-2.0, declared in package.json and present as a LICENSE file at the repository root. Apache-2.0 is permissive and includes an explicit patent grant, which matters if you plan to build on the code commercially. It also requires that you preserve notices and state significant changes. This is a description of the licence text, not legal advice; if you intend to redistribute a modified build, read the LICENSE file and consult your own counsel. One practical note the README raises itself: the project files can contain your API credentials and session cookies, so a fork that commits a project directory could leak them.
Editorial conclusion
Adopt Lingji Cut if you already produce Chinese-language talking-head or commentary video and you are comfortable running an Electron app from source, because the file-first project layout means your script, audio, subtitles and cards stay as plain files you can back up and diff. Do not adopt it if you need a signed, notarized installer or a Windows distribution you can hand to a non-technical editor, since the README states packaging produces a local .app and that signing, notarization and DMG or PKG distribution are not wired up. Before committing, verify two things yourself: that npm install completes behind the npmmirror mirrors configured in the project .npmrc, and that the lingji CLI can reach a running desktop instance, because the CLI talks to the app over an MCP server address rather than working standalone.
Frequently asked questions
What is Lingji Cut and what does it do?
Lingji Cut (灵剪) is a local-first open source AI video creation workbench, described in the README as a desktop environment that chains topic collection, script writing, AI review, TTS, subtitle handling, content analysis, card and cover generation, timeline editing, Remotion export and multi-platform publishing. It is aimed at content creators rather than being a single-purpose player or subtitle tool.
How do I install and run Lingji Cut locally?
Run npm install, then npm run dev to start the Electron and Vite development build. If the Electron download is ignored by local npm configuration, the README gives ELECTRON_MIRROR and npm_config_disturl environment variables pointing at npmmirror mirrors to set before reinstalling.
Does Lingji Cut work without the desktop app open?
No. The README states that the headless lingji CLI communicates with a running Lingji Cut desktop instance through an MCP service address, so the desktop app must be running, or you pass --server to override the address. The CLI is installed with npm run install:cli, which bundles the CLI and links it globally.
What licence is Lingji Cut released under?
Apache-2.0, declared in package.json and included as a LICENSE file at the repository root. That is a permissive licence with an explicit patent grant, and it requires preserving notices and stating significant changes if you redistribute a modified version.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/yoqu-lingji-cut)