video-db/claude-code · Archived

pair-programmer

AI pair programming with real-time screen and audio context. Use when the user wants to record their screen, start/stop recording, or get context from what they're doing.

First seen Feb 25, 2026

Installation

$ npx skills add video-db/claude-code --skill pair-programmer

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 116
Default branch main
Open issues 1
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,085 B
  • docs SUMMARY.md 193 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 15 installs

SKILL.md

VideoDB Pair Programmer

AI pair programming with real-time screen and audio context. Record your screen and audio, with AI-powered indexing that logs visual and audio events in real-time.

Commands

When user asks for a command, read the corresponding file for instructions:

Command Description Reference
/pair-programmer record Start screen/audio recording See [commands/record.md](commands/record.md)
/pair-programmer stop Stop the running recording See [commands/stop.md](commands/stop.md)
/pair-programmer search Search recording context (screen, mic, audio) See [commands/search.md](commands/search.md)
/pair-programmer act Act on a spoken instruction from the mic See [commands/act.md](commands/act.md)
/pair-programmer what-happened Summarize recent activity See [commands/what-happened.md](commands/what-happened.md)
/pair-programmer setup Install deps and configure API key See [commands/setup.md](commands/setup.md)
/pair-programmer config Change indexing and other settings See [commands/config.md](commands/config.md)

How It Works

  1. User runs /pair-programmer setup to install dependencies and set VIDEODBAPI_KEY environment variable
  2. User runs /pair-programmer record to start recording
  3. A picker UI appears to select screen and audio sources
  4. Recording starts and events are logged to /tmp/videodbppevents.jsonl
  5. User can stop recording from the tray icon (🔴 PP → Stop Recording)

Output Files

Path Content
/tmp/videodbpppid Process ID of the recorder
/tmp/videodbppevents.jsonl All WebSocket events (JSONL format)
/tmp/videodbppinfo.json Current session info (sessionid, rtstreamids)

Event File Format

Events are written as JSONL (one JSON object per line):

{"ts": "2026-03-05T10:15:30.123Z", "unix_ts": 1709374530.12, "channel": "visual_index", "data": {"text": "User is viewing VS Code with auth.ts open"}}
{"ts": "2026-03-05T10:15:31.456Z", "unix_ts": 1709374531.45, "channel": "transcript", "data": {"text": "Let me check the login flow", "is_final": true}}

Environment Variables

The recorder reads these from environment variables:

Variable Required Description
VIDEODBAPI_KEY Yes VideoDB API key
VIDEODBBASE_URL No API endpoint (default: https://api.videodb.io)

Reading Context

Events are in /tmp/videodbppevents.jsonl. Use CLI tools to filter — never read the whole file.

Channel Content Density
visual_index Screen descriptions Dense (~1 every 2s)
transcript Mic speech Sparse (sentences)
audio_index System audio summaries Sparse (sentences)

Channel filter — use grep to filter by channel, pipe to tail for recent events:

grep '"channel":"visual_index"' /tmp/videodb_pp_events.jsonl | tail -10

Keyword search — grep across all channels:

grep -i 'keyword' /tmp/videodb_pp_events.jsonl

Time-window filter — filter events from the last N minutes:

  1. Get current epoch: $(date +%s)
  2. Compute cutoff: epoch - N*60
  3. Filter lines where the unix_ts JSON field exceeds the cutoff
  4. Pipe through grep to narrow by channel

Generate the appropriate filtering command (grep, awk, python3, jq) based on complexity.

For semantic search across indexed content, use search-rtstream.js:

node search-rtstream.js --query="your query" --cwd=<PROJECT_ROOT>

<PROJECT_ROOT> is the absolute path to the user's project directory. This is NOT the skill directory — resolve it before running the command.

See [commands/search.md](commands/search.md) for the full search strategy and CLI patterns.