
Company News
Free Business Plan Upgrades for Open Source Maintainers
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.
Make a video behave like a codebase: searchable, inspectable, citeable.
Video is opaque to most tools. `video-cli` turns it into local artifacts an agent can query with evidence.
Video is hard to work with programmatically. You can watch it, but you cannot grep it, cite it, diff it, or hand it to an agent and expect repeatable answers.
video-cli exists to make a video usable as a working surface: it extracts transcript spans, OCR text, frame descriptions, embeddings, timestamps, frames, and clips so an agent can search and answer with grounded evidence.
video-cli init
video-cli setup video.mp4
video-cli ask <id> "what is the main argument?"
That is the normal path: initialize credentials once, ingest a video once, then ask questions against the local artifacts.
Published package:
npm install -g video-cli
video-cli init
Repo checkout:
git clone https://github.com/Dexin-Huang/video-cli
cd video-cli
cp .env.example .env
node video-cli.js init
The published package is the normal user path. The repo-local node video-cli.js ... form is mainly for development and contributor workflows.
video-cli init.video-cli setup <video-file> to build the artifacts.video-cli ask <video-id> "<question>".video-cli search, context, chapters, frame, or clip when you need to inspect a specific moment.video-cli setup lecture.mp4
# { "id": "lec-abc123", "ready": true, ... }
video-cli ask lec-abc123 "what is the main argument?"
# { "answer": "...", "citations": [...], "suggestedFollowUps": [...] }
video-cli context lec-abc123 --at 198 --window 15
# { "utterances": [...], "ocrItems": [...], "frames": [...], "sceneChanges": [...] }
video-cli clip lec-abc123 --at 198 --pre 5 --post 10
# { "output": "data/videos/lec-abc123/clips/clip-198_000.mp4" }
| Area | Commands | Purpose |
|---|---|---|
| Intent | setup, ask | Ingest a video or answer a question with evidence |
| Navigate | search, context, chapters, next, grep | Find and inspect specific moments |
| Extract | frame, clip | Pull out a still image or short clip |
| Pipeline | ingest, transcribe, ocr, analyze, embed, describe | Run individual stages when you need control |
| Inspect | list, status, inspect, timeline, watchpoints, bundle, brief, config | Check readiness and inspect artifacts |
| Automation | eval:generate, eval:run | Measure retrieval quality |
video.mp4
-> ffmpeg scene detection
-> transcription
-> OCR + frame descriptions
-> embeddings
-> searchable JSON artifacts on disk
query
-> semantic + lexical + description search
-> grounded answer with citations and follow-ups
video-cli reads video-cli.config.json in the repo root and merges it with video-cli.config.example.json, plus environment overrides. The main knobs are provider selection, transcription chunking, OCR model choice, and embedding dimensions.
Use video-cli config to see the resolved runtime config. Use GEMINI_API_KEY for the default path, and override providers with --provider or env vars when needed.
ffmpeg and ffprobeGEMINI_API_KEY in .envSee SKILL.md for the agent-facing command reference and output shapes.
npm test # 20 tests, no API calls
npm run eval # retrieval quality eval
Zero npm dependencies. Pure Node.js + ffmpeg.
FAQs
Local-first video REPL for AI agents - search, ask, navigate, extract
The npm package video-cli receives a total of 4 weekly downloads. As such, video-cli popularity was classified as not popular.
We found that video-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.