🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

video-cli

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

video-cli - npm Package Compare versions

Comparing version
0.2.2
to
0.2.6
assets/logo.png

Sorry, the diff of this file is not supported yet

+4
-10
{
"name": "video-cli",
"version": "0.2.2",
"version": "0.2.6",
"description": "Local-first video REPL for AI agents — search, ask, navigate, extract",

@@ -17,2 +17,3 @@ "license": "MIT",

"skills/",
"assets/",
"SKILL.md",

@@ -32,3 +33,2 @@ "README.md",

"gemini",
"elevenlabs",
"repl"

@@ -38,15 +38,9 @@ ],

"type": "git",
"url": "https://github.com/Dexin-Huang/video-cli"
"url": "git+https://github.com/Dexin-Huang/video-cli.git"
},
"scripts": {
"test": "node --test --experimental-test-isolation=none",
"skills:sync": "node scripts/sync-skill-docs.js",
"skills:check": "node scripts/sync-skill-docs.js --check",
"eval": "node evals/run.js",
"eval:json": "node evals/run.js --json",
"goldens:check": "node goldens/validate.js",
"goldens:check:json": "node goldens/validate.js --json",
"goldens:eval": "node goldens/run.js",
"goldens:eval:json": "node goldens/run.js --json"
"eval:json": "node evals/run.js --json"
}
}

@@ -1,2 +0,2 @@

<p align="center">
<p align="center">
<img src="assets/logo.png" alt="video-cli" width="120">

@@ -8,7 +8,7 @@ </p>

<p align="center">
<strong>Make a video behave like a codebase: searchable, inspectable, citeable.</strong>
<strong>Make a video behave like a codebase: searchable, inspectable, citable.</strong>
</p>
<p align="center">
Video is opaque to most tools. `video-cli` turns it into local artifacts an agent can query with evidence.
Video is opaque to most tools. <code>video-cli</code> turns it into local artifacts an agent can query with evidence.
</p>

@@ -110,6 +110,63 @@

`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.
`video-cli` starts from a built-in preset, then resolves runtime config in this order:
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.
1. Built-in preset defaults
2. `video-cli.config.json` in the repo root
3. Environment variable overrides
4. Command flags for commands that expose them
Use `video-cli config` to inspect the final merged config that the CLI will actually use.
A typical `video-cli.config.json` looks like this:
```json
{
"preset": "balanced",
"ocr": {
"provider": "gemini",
"model": "gemini-3.1-flash-lite-preview",
"watchpointLimit": 8
},
"transcribe": {
"provider": "gemini-transcribe",
"model": "gemini-3.1-flash-lite-preview",
"chunkSeconds": 480,
"trimSilence": false,
"minSilenceSec": 1.5,
"padSec": 0.25,
"silenceNoiseDb": -35,
"diarize": true,
"utterances": true,
"smartFormat": true,
"punctuate": true,
"detectLanguage": false,
"language": null
},
"embed": {
"provider": "gemini",
"model": "gemini-embedding-2-preview",
"dimensions": 768,
"sources": {
"transcript": true,
"ocr": true,
"frames": false
}
}
}
```
Common environment overrides:
- `VIDEO_CLI_PRESET`: choose the base preset before file/env overrides are merged
- `VIDEO_CLI_OCR_PROVIDER`, `VIDEO_CLI_OCR_MODEL`: change OCR provider/model
- `VIDEO_CLI_TRANSCRIBE_PROVIDER`, `VIDEO_CLI_TRANSCRIBE_MODEL`: change transcription provider/model
- `VIDEO_CLI_TRANSCRIBE_CHUNK_SECONDS`: change transcription chunk size
- `VIDEO_CLI_TRANSCRIBE_TRIM_SILENCE`, `VIDEO_CLI_TRANSCRIBE_MIN_SILENCE_SEC`, `VIDEO_CLI_TRANSCRIBE_PAD_SEC`: control silence trimming
- `VIDEO_CLI_EMBED_PROVIDER`, `VIDEO_CLI_EMBED_MODEL`, `VIDEO_CLI_EMBED_DIMENSIONS`: change embedding provider/model/dimensions
- `VIDEO_CLI_EMBED_TRANSCRIPT`, `VIDEO_CLI_EMBED_OCR`, `VIDEO_CLI_EMBED_FRAMES`: turn embedding sources on or off
- `VIDEO_CLI_DATA_ROOT`: move the artifact store away from the default `data/videos`
- `VIDEO_CLI_ID`: provide a default `<video-id>` for commands that normally take one as the first positional argument
Provider-specific model aliases are also accepted where relevant, including `GEMINI_OCR_MODEL`, `GEMINI_TRANSCRIBE_MODEL`, and `DEEPGRAM_TRANSCRIBE_MODEL`.
## Requirements

@@ -119,4 +176,17 @@

- `ffmpeg` and `ffprobe`
- `GEMINI_API_KEY` in `.env`
- `GEMINI_API_KEY` in `.env` for the default path
## Troubleshooting
- `ffmpeg not found` or `ffprobe not found`
Install `ffmpeg` and make sure both binaries are on `PATH`. The CLI shells out to them directly for probing, frame extraction, clip extraction, and silence detection.
- `No embeddings found` or `No transcript/ocr found`
Run `video-cli setup <file>` for the normal path, or run the missing pipeline stage directly and re-check with `video-cli status <video-id>`.
- `Unknown video id`
Run `video-cli list` to see available artifacts, or set `VIDEO_CLI_ID` if you want a default active video.
- PowerShell blocks `npm`
On some Windows setups, PowerShell execution policy blocks `npm.ps1`. Use `npm.cmd ...` instead.
- Restricted sandboxes fail on child processes
The CLI depends on subprocesses for `ffmpeg` and `ffprobe`. Some sandboxes block nested process execution; that is an environment limit, not a `video-cli` bug.
## For AI Agents

@@ -129,7 +199,7 @@

```bash
npm test # 20 tests, no API calls
npm run eval # retrieval quality eval
npm test # test suite
npm run eval # retrieval quality eval
```
Zero npm dependencies. Pure Node.js + ffmpeg.
Zero npm dependencies. Pure Node.js plus `ffmpeg`.

@@ -136,0 +206,0 @@ ## License

@@ -1,2 +0,2 @@

{
{
"preset": "balanced",

@@ -19,3 +19,5 @@ "ocr": {

"smartFormat": true,
"punctuate": true
"punctuate": true,
"detectLanguage": false,
"language": null
},

@@ -22,0 +24,0 @@ "embed": {