AICW Video is an AI-powered editor for turning video recordings into short, captioned social clips.
Features
- Create projects from assorted video and audiot Just drop multiple video files and their separately recorded audio tracks if any.
- Auto-matches audio tracks Auto detects, matches and syncs audio to parent video.
- Auto-suggestes clips moments with AI Analyzes videos to find key moments for short ranges to cut.
- Generates captions Creates speech captions, previews them and renders to final video
- Caption silent videos Uses AI scene analysis to describe videos without usable audio.
- Preview before rendering Review each clip before rendering
- Export social formats TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Instagram feed, and YouTube landscape MP4s.
- Privacy tools Blur or replace faces, replace original audio with generated voice-over.
Screenshots and demo
Screenshots
Video Demo:
aicw-video-video-to-clips.mov
Requirements
| Requirement | Notes |
|---|---|
| macOS / Mac OS X | Primary supported platform today. Windows support is planned. |
| 8 GB RAM or more | More RAM helps with longer source videos and parallel renders. |
| Node.js 20+ | Runtime for the CLI, MCP server, and web hub. |
ffmpeg-full / ffprobe |
Used for local audio extraction, frame sampling, video probing, and rendering. Caption rendering requires ffmpeg's libass/subtitles filter. |
whisper-cpp |
Used for local speech transcription. |
tensorflow |
(auto-installed as library) used for local faces detections |
| AI: Claude Code, Codex CLI or Ollama (can use local LLM), or an MCP-capable AI host (ChatGPT, Claude, Codex) | Optional. Needed when AI scene analysis is enabled. Claude Code is the recommended/tested standalone path today. |
Install AICW Video
From Homebrew
brew install aicw-io/tap/aicw-video
Homebrew pulls Node.js, ffmpeg-full, and whisper-cpp as dependencies. Release runbook:
docs/release/HOMEBREW.md.
To install the development build from the upstream main branch:
brew install --HEAD aicw-io/tap/aicw-video
From Source
git clone https://github.com/aicw-io/aicw-video
cd aicw-video
./scripts/setup.sh
npm linkscripts/setup.sh is the recommended source install path. On macOS it installs
missing system dependencies with Homebrew, installs npm dependencies, builds the
app, and runs the preflight:
aicw-video doctor
The whisper model (ggml-base.en.bin, about 140 MB) downloads itself on first
use into ~/.cache/aicw-video/.
If you do not want to link the command globally, run it from the clone:
node dist/cli.js doctor node dist/cli.js home
For source development, these scripts build and start the browser hub:
bin/dev bin/start
Start The App
aicw-video
The browser hub opens at http://127.0.0.1:8764/. From there you can create a
project, add videos and audio tracks, analyze sources, open each video plan, and
render clips.
From a source checkout, npm start runs bin/start, which builds the app and
starts the same browser hub.
Typical Workflow
Files are stored in the AICW Video projects folder:
~/aicw-video/projects/<project>/<video>/shorts/render-<timestamp>/
Troubleshooting
aicw-video doctorshows a missingwhisper-cli: install whisper.cpp withbrew install whisper-cpp.- Hub says "error: Load failed" when opening a project: first plan builds can take a short while because AICW Video generates frame and caption-style previews. Reopen after the build finishes.
- Port 8764 is busy: the hub scans nearby ports. Check terminal output for the actual URL.
Caveats
- macOS is the supported platform today; Windows support is planned.
- Per-clip voice-over is alpha, macOS-only today, and uses the system text-to-speech engine.
- Caption preview in the plan UI is approximate; the final ffmpeg/libass render is authoritative.
How AI Is Used
AICW Video is processing locally the following:
- audio and video extraction
- audio to text (via whisper local mode)
- face detection (via local tensorflow, used for privacy features)
Uses cloud but can also use local LLM: When you enable AI scene analysis, AICW Video can use the AI tools you already have installed:
- Claude Code / Claude CLI: used through CLI
- Codex CLI: can be used through CLI
- Ollama: can be configured as a local AI fallback in
config.json. The current built-in Ollama adapter is text-only, so visual frame descriptions still require Claude Code, Codex, or MCP host sampling. - MCP host sampling: you can add AICW Video to ChatGPT or Claude and call AICW Video from them.
AI scene analysis is used for: suggested clip ranges, keyframe labels, silent-video visual captions, and optional caption proofreading. When it is off, the app skips visual descriptions and uses local Whisper plus local face detection.
Privacy note: local face region detection never needs cloud AI. But note that when you use Claude Code, Codex, or another cloud-connected AI host for describing a video, sampled frames, transcript snippets, and caption text may be sent to that provider by the host tool.
If you need full local AI only, then configure Ollama with local LLM like Qwen or Gemma (see below)
Use AICW Video As MCP
AICW Video exposes a local stdio MCP server. Claude Code and Codex can use it to create projects from video/audio files, analyze them, and return a local review link. ChatGPT custom apps currently require a remote MCP server URL, so the local stdio server is not directly usable from ChatGPT yet.
Print host-specific setup snippets at any time:
aicw-video setup-mcp
Claude Code
From a source checkout:
cd /absolute/path/to/aicw-video
./scripts/setup.sh
claude mcp add aicw-video -- node /absolute/path/to/aicw-video/dist/cli.js mcp
claude mcp listIf you installed with npm link, you can register the global command instead:
claude mcp add aicw-video -- aicw-video mcp
Try it in Claude Code:
Use aicw-video. Call ping_host with includeImage=true.
Then process a video:
Use aicw-video to create a project from /path/to/video.mov, analyze it, then call review_project and give me the review link.
Codex CLI
From a source checkout, first run:
cd /absolute/path/to/aicw-video
./scripts/setup.shThen edit ~/.codex/config.toml and add:
[mcp_servers.aicw-video] command = "node" args = ["/absolute/path/to/aicw-video/dist/cli.js", "mcp"]
If you installed with npm link, this also works:
[mcp_servers.aicw-video] command = "aicw-video" args = ["mcp"]
Restart Codex, then try:
Use aicw-video MCP. Call list_projects.
Then:
Use aicw-video MCP to create a project from /path/to/video.mov, analyze it, then call review_project.
ChatGPT Desktop / ChatGPT Developer Mode
ChatGPT custom MCP apps currently expect a remote MCP server URL using SSE or streaming HTTP. AICW Video currently ships a local stdio MCP server:
aicw-video mcp
That means the ChatGPT Desktop custom connector screen cannot use the current
AICW Video MCP server directly. Do not paste aicw-video mcp,
node dist/cli.js mcp, or a 127.0.0.1 URL into ChatGPT's "Remote MCP server
URL" field.
For ChatGPT/OpenAI workflows today, use AICW Video through Codex CLI. Once AICW Video adds a remote HTTP MCP mode, the ChatGPT setup will be:
-
Start or deploy the remote MCP server and get an HTTPS URL, for example:
https://your-domain.example.com/mcp -
In ChatGPT, enable Developer Mode:
Settings -> Apps -> Advanced settings -> Developer mode -
Open Apps settings, create a custom app from MCP, and use:
Name: AICW Video Remote MCP server URL: https://your-domain.example.com/mcp Authentication: No authentication or OAuth, depending on your deployment -
In a chat, choose Developer Mode and select the AICW Video app. Then try:
Use AICW Video to create a project from /path/to/video.mov, analyze it, then call review_project.
OpenAI's current MCP docs describe ChatGPT custom apps as remote MCP servers using SSE or streaming HTTP: https://platform.openai.com/docs/guides/developer-mode.
You can also open the setup hub, which shows copy-paste snippets:
aicw-video home
Advanced: Local Ollama
Ollama is useful if you want a local AI fallback for text-only steps today, and it is the intended path for future local visual scene descriptions once the AICW Video Ollama adapter accepts image frames.
brew install ollama ollama serve ollama pull qwen3-vl:8b
qwen3-vl is a vision-language model in Ollama:
https://ollama.com/library/qwen3-vl. For smaller machines, use a smaller tag
such as qwen3-vl:4b or qwen3-vl:2b. Then edit config.json if you want
Ollama to be the local text fallback:
{
"ai_cli_tools": [
{ "name": "ollama", "command": "ollama", "model": "qwen3-vl:8b", "supports_images": false }
]
}Keep supports_images as false until image-capable Ollama support is added
to AICW Video. Use Claude Code, Codex, or MCP host sampling for visual scene
descriptions in the current release.
Contributing & License
PRs welcome. See CONTRIBUTING.md.
AICW Video is licensed under AGPL-3.0. See LICENSE.





















