Reading the repo
Reading the repo
Saved setup from 4 h ago
Will it work on my device?
install.mdUse this file only for first-time install or reconnect. For daily editing, read SKILL.md. Always read helpers/ — that's where the scripts live.
You're setting up a conversation-driven video editor for the user. After install, the user drops raw footage into any folder, runs their agent (claude, codex, etc.) there, and says "edit these into a launch video." You do the rest by reading SKILL.md.
Three things must exist on this machine:
video-use repo cloned somewhere stable.ffmpeg on $PATH (plus optional yt-dlp for online sources)..env at the repo root (for Scribe transcription).And one thing must be true about the current agent:
SKILL.md — either via a global skills directory (~/.claude/skills/, ~/.codex/skills/) or via a CLAUDE.md / system-prompt import.brew install.~/Developer/video-use (not /tmp, not ~/Downloads).transcribe.py, render.py). That works because SKILL.md and helpers/ ship together — keep them as siblings when you register the skill.test -d ~/Developer/video-use || git clone https://github.com/browser-use/video-use ~/Developer/video-use
cd ~/Developer/video-use
If the repo is already there, git pull --ff-only and continue.
# Prefer uv if available; fall back to pip.
command -v uv >/dev/null && uv sync || pip install -e .
pyproject.toml lists requests, librosa, matplotlib, pillow, numpy. No console scripts — helpers are invoked directly as python helpers/<name>.py.
ffmpeg and ffprobe are hard requirements. yt-dlp is only needed if the user wants to pull sources from URLs. Animation engines such as HyperFrames, Remotion, and Manim are installed lazily the first time a project actually needs them.
# macOS
command -v ffmpeg >/dev/null || brew install ffmpeg
command -v yt-dlp >/dev/null || brew install yt-dlp # optional
# Debian / Ubuntu
# sudo apt-get update && sudo apt-get install -y ffmpeg
# pip install yt-dlp
# Arch
# sudo pacman -S ffmpeg yt-dlp
If brew / apt / pacman requires a sudo prompt, tell the user the exact command and wait. Do not invent a password.
Figure out which agent you are running under, and register once. A symlink of the whole repo directory is the right shape — helpers/ needs to sit next to SKILL.md.
Claude Code (~/.claude/ present):
mkdir -p ~/.claude/skills
ln -sfn ~/Developer/video-use ~/.claude/skills/video-use
Codex ($CODEX_HOME set, or ~/.codex/ present):
mkdir -p "${CODEX_HOME:-$HOME/.codex}/skills"
ln -sfn ~/Developer/video-use "${CODEX_HOME:-$HOME/.codex}/skills/video-use"
Hermes / Openclaw / another agent with a skills directory: symlink ~/Developer/video-use into that agent's skills directory under the name video-use. If the agent has no skills directory, add a line to its system prompt / config pointing at ~/Developer/video-use/SKILL.md (e.g. an @~/Developer/video-use/SKILL.md import in a CLAUDE.md-equivalent).
If you can't tell which agent you're in, ask the user once: "which agent am I running under — Claude Code, Codex, or something else?" Then pick the right target.
Scribe (ElevenLabs) does all transcription. Without a key, nothing transcribes.
Check existing state in this order and stop at the first hit:
# a) env var already exported
[ -n "$ELEVENLABS_API_KEY" ] && echo "env"
# b) .env at repo root already has it
grep -q '^ELEVENLABS_API_KEY=..' ~/Developer/video-use/.env 2>/dev/null && echo "dotenv"
If neither is set, ask the user exactly once:
I need an ElevenLabs API key for transcription (word-level timestamps, speaker diarization, filler tagging). Grab one at https://elevenlabs.io/app/settings/api-keys and paste it here — I'll write it to
~/Developer/video-use/.env. Or if you already have it exported asELEVENLABS_API_KEY, say "use env" and I'll skip.
When the user pastes a key, write it to ~/Developer/video-use/.env:
printf 'ELEVENLABS_API_KEY=%s\n' "$KEY" > ~/Developer/video-use/.env
chmod 600 ~/Developer/video-use/.env
Never echo the key back in tool output. Never commit .env.
Sanity check with a cheap, quota-free call:
curl -s -o /dev/null -w '%{http_code}\n' \
-H "xi-api-key: $(sed -n 's/^ELEVENLABS_API_KEY=//p' ~/Developer/video-use/.env)" \
https://api.elevenlabs.io/v1/user
200 means the key works. 401 means the user pasted a wrong/expired key — ask once more and stop. Anything else (network, 5xx), move on and verify during first real transcription.
Run one real thing. Prefer the lightest verification that still proves the pipeline is wired up:
python ~/Developer/video-use/helpers/timeline_view.py --help >/dev/null && echo "helpers OK"
ffprobe -version | head -1
Full transcription test is optional at install time — it burns Scribe credits. Better to wait until the user hands you their first clip.
Tell the user, in one short message:
~/Developer/video-use).cd into their footage folder and start their agent there (e.g. claude).<videos_dir>/edit/ — the repo stays clean.cd ~/Developer/video-use && git pull --ff-only pulls the latest code. The symlink auto-picks it up on the next run.pyproject.toml changed deps, re-run uv sync / pip install -e . after pulling.SKILL.md. The helpers need to sit next to it..env exists but the key is empty, treat it the same as missing — don't assume existence means validity.ffmpeg from static builds works fine. Any modern (≥ 4.x) build is enough.yt-dlp is optional. Don't block install on it; install lazily the first time a user asks to pull from a URL.SKILL.md. HyperFrames can run through npx --yes hyperframes ... in the slot directory. Remotion can be scaffolded with npx create-video@latest or installed inside the slot before rendering.ffmpeg install URL and wait rather than guessing.Then run bash setup.sh. It stops at the first error and is safe to run again. Servers and tests aren't started; it lists them at the end. Read it first.
Needs Git: xcode-select --install
git clone https://github.com/browser-use/video-use.git cd video-use
Python >=3.10
brew install python@3.10
Fill in secrets: ELEVENLABS_API_KEY
cp .env.example .env
python -m venv .venv source .venv/bin/activate pip install -e .
Paste into Claude Code, Codex, Hermes, Openclaw, or any agent with shell access:
Set up https://github.com/browser-use/video-use for me.
Read install.md first to install this repo, wire up ffmpeg, register the skill with whichever agent you're running under, and set up the ElevenLabs API key — ask me to paste it when you need it. Then read SKILL.md for daily usage, and always read helpers/ because that's where the editing scripts live. After install, don't transcribe anything on your own — just tell me it's ready and wait for me to drop footage into a folder.
The agent handles the clone, dependencies, skill registration, and prompts you once for your ElevenLabs API key (grab one at elevenlabs.io/app/settings/api-keys).
Then point your agent at a folder of raw takes:
cd /path/to/your/videos
claude # or codex, hermes, etc.
For always-on editing from your own VPS or Telegram, run the agent through Browser Use Box. Watch the 15-second demo.
And in the session:
edit these into a launch video
It inventories the sources, proposes a strategy, waits for your OK, then produces edit/final.mp4 next to your sources. All outputs live in <videos_dir>/edit/ — the skill directory stays clean.
No reports for macOS yet.
Opens a chat with this manual already filled in, for macOS. It uses your own account; gitmanual sends nothing.