Skip to content
Local-first · MCP-ready · Apache-2.0

A video is the richestspec you can hand an agent.Framesleuth makes itactionable.

Record a bug, a feature demo, or a design walkthrough. Framesleuth reads every frame, the console, the network and your narration — then hands any coding agent a structured, evidence-cited Context Bundle over MCP. It fixes the bug, builds the feature, or ships the new screen. Everything runs on your machine.

pipeline stages
0
MCP tools
0
bytes sent to the cloud
0
REC · walkthrough.webm00:14 · 720p
Explainer: Framesleuth scores any video deterministically and assembles an evidence-cited Context Bundle for a coding agent
console
TypeError: undefined
step
4 repro steps
code
Cart.tsx:142
framesleuth bundle ready
Open source · Apache-2.0

Free forever, self-hosted, bring your own model. Sidekick is our paid, hosted product — different product, different terms.

Plugs into the agents and local models you already run

VS Code CopilotClaude CodeClaude DesktopAny MCP clientOllamallama.cppvLLMfaster-whisperQwen2.5-VLVS Code CopilotClaude CodeClaude DesktopAny MCP clientOllamallama.cppvLLMfaster-whisperQwen2.5-VL
The investigation · one local pass

From a raw recording to a fix-ready case file — in nine stages.

A single linear pass with one bounded resample. Every stage degrades gracefully — if a model or input is missing, the run still produces a valid bundle and tells you exactly what was thin.

  1. Preprocess

    Probe & sample
    containerframes

    Reads the container, recovering duration even from header-less browser WebM, then samples frames against a bounded budget.

  2. Transcribe

    Narration → text
    audiotranscript

    Local faster-whisper turns your spoken narration into a timestamped transcript and drops silence hallucinations.

  3. Keyframes

    Pick what matters
    frameskeyframes

    Frame-to-frame visual-delta change scoring selects the keyframes worth reading, instead of every frame.

  4. Understand

    Read the screen
    keyframescaptions

    A local vision model captions each keyframe — OCR, UI action, error-state and reasoning — running concurrently. Sparse error frames are re-OCR'd at full resolution.

  5. Classify

    Bug, feature, or other
    signalslabel

    Deterministic, auditable scoring labels the recording bug / feature / tutorial / demo / feedback / other — build intent comes from your request and narration. Ambiguous results trigger a bounded resample and an optional model tie-breaker. Feature videos also get a buildable spec: screens, components, and a screen-to-screen user flow.

  6. Extract

    Assemble the bundle
    evidencebundle

    Builds the canonical Context Bundle — repro steps, error evidence, environment — each line carrying an evidence citation and a trust signal.

  7. Redact

    Scrub secrets & PII
    textsafe text

    Strips secrets — tokens, keys, passwords — and PII — emails, Luhn-valid cards, SSNs, phones, cloud keys — from every text field before anything is persisted. Optionally paints over the same text on the keyframe pixels, so an image can't leak what the text scrubbed.

  8. Summarize

    Tell the story
    bundlenarrative

    Produces a skill-shaped narrative from both the video and the audio, plus a timeline of distilled, timestamped key_moments — the deliverable when the recording isn't a bug.

  9. Ground

    Point at the code
    error textfile:line

    Read-only workspace search maps the error text to ranked candidate file:line locations for the downstream agent.

The contract

One bundle. The same shape, every time.

Every run produces the same versioned Context Bundle — stable JSON that any agent can depend on. Triage headline, behavioral story, numbered repro steps, timestamped error evidence, and ranked code candidates — each line carrying a citation back to the frame or log it came from.

Read analysis_quality first: a trust signal that says how complete the evidence was, and which stages degraded. No silent guessing.

provenancetriageevidencenarrativetrust signal
bundle.jsonschema_version: 1
1id · schema_version · source_video · duration_s
2classification · confidence · alt_labels
3title · severity · priority · suspected_component
4environment (os / app / browser / version)
5preconditions · expected · actual_behavior (bug-only — null for a general video)
6repro_steps[] — numbered, evidence-cited
7key_moments[] — timestamped scene · action · speech · error (any video)
8error_evidence[] — console / OCR / network / UI
9keyframe_refs[] — the frames the model read
10code_candidates[] — ranked file:line
11build_context — screens · components · user_flow · design · where to build
12summary · skill · action · suggested_actions[]
13analysis_quality — level · degraded_stages · warnings · actionability
14field_confidence — per-field trust 0-1
15stage_timings — per-stage wall-clock seconds
16redactions[] — secrets & PII scrubbed
+ transcript.json · timeline.json · keyframes/*.png · sidecars.json
Why teams trust the evidence

Built for real work from video — bugs, features, whole builds — privately, predictably, in your own stack.

Frame-by-frame understanding

A local vision model reads each keyframe for OCR text, UI action and error state — so the evidence comes from what was actually on screen.

Nothing leaves your machine

Fully local pipeline. No telemetry, no cloud APIs, no upload. Your videos and source code stay on your disk.

Engine-agnostic models

Swap Ollama, llama.cpp or vLLM by changing config only. Bring the local model you already run; no vendor lock-in.

Degrades gracefully

No vision model or ffmpeg? You still get a valid bundle from the browser sidecars — and an honest analysis_quality signal saying what was missing.

Redaction-first

Secrets — tokens, keys, passwords — and PII — emails, Luhn-valid cards, SSNs, phones, cloud keys — are scrubbed before models see them and before anything is written to disk. Optional pixel-level redaction paints over the same text on the frame itself.

One structured contract

Every run yields the same versioned Context Bundle JSON, with evidence citations — a stable contract any agent can depend on.

MCP-ready, agent-driven

A 14-tool MCP server lets VS Code Copilot, Claude Code or any client drive the analysis and consume the result — all read-only over your workspace.

Grounded in your repo

Read-only, .gitignore-aware search turns on-screen text, errors and feature nouns into ranked file:line candidates — definitions preferred, distinctive symbols weighted, with optional embedding fusion that finds code sharing no literal token.

Auditable by design

Deterministic classification, per-field confidence with cross-modal corroboration, a task-aware actionability signal and a trust level you read first — so you can see why the agent concluded what it did, and error frames are re-read to reconcile a hallucinated read.

Agent-native · MCP server

Your coding agent drives the whole thing.

The framesleuth server exposes 14 read-only tools, four resources and a fix_from_videoprompt. Edits only ever happen through your agent's own reviewed apply flow — Framesleuth never touches your code.

VS Code Copilot
Claude Code
Claude Desktop
Any MCP client

One-click setup · MCP

Connect your coding agent

Install the framesleuth MCP server so your agent can drive the analysis and act on the bundle.

VS Code prompts once for the absolute path to framesleuth-mcp (run `which framesleuth-mcp`), then asks you to trust the server. (Copy mcp.json is the ${workspaceFolder} variant for the repo's own .vscode/mcp.json only.) Prerequisite: clone the repo and uv pip install -e ".[dev]" so framesleuth-mcp resolves.

Full setup guide ↗
framesleuth-mcp · stdio connected

$ tools/list → 14 available

analyze_video
get_report
get_repro_steps
get_error_evidence
get_timeline
get_keyframe_image
get_video_gif
locate_in_code
get_suggested_actions
render
list_skills
list_actions
list_reports
render_html_video

$ resources/list → 4 available

summaryfix-promptmarkdownissue

$ prompts/list → 1 available

fix_from_video

$

Configurable response

Pick how it reads — and what it does next.

Choose a summary skill for how the report reads, and an action for what the downstream agent should do. Leave them blank and Framesleuth auto-picks from the classification.

Summary skills

5

How the narrative reads

  • summaryNarrative + ordered steps + issues (default)
  • bug_reportQA report: repro, expected/actual, severity
  • tutorialStep-by-step how-to of what was shown
  • action_itemsDecisions + follow-ups, owners when shown
  • release_notesShort, user-facing change notes

Action modes

9

What the agent is told to do

  • fixDiagnose the root cause and propose a minimal fix
  • implementBuild/extend the feature shown from the spec
  • designPropose a UI/component/data design — no code yet
  • summarizeOverview, key moments, takeaways — default for a general video
  • explainExplain what happened — no code changes
  • triageAssess severity/priority and route it
  • testWrite a failing regression test that reproduces it
  • reportProduce ready-to-paste issue/PR text
  • reproduceMinimal exact steps or a repro script
Local-first by architecture

Your most sensitive recordings never leave your laptop.

Videos capture everything on screen — customer data, internal tools, tokens in a URL. Framesleuth is built so none of that is ever uploaded. Privacy isn't a setting; it's the architecture.

0 bytes to the cloud
  • No telemetry, no analytics, no phone-home
  • No cloud APIs — inference runs on your local model
  • HTTP API binds to 127.0.0.1 (loopback) only
  • Secrets redacted before persistence to disk
  • Read-only over your workspace — edits go through your agent
  • Your recordings and source never leave the machine
Case questions

Frequently asked

No. The whole pipeline runs locally against a local vision model — no telemetry and no cloud APIs. Your recordings and source code never leave your disk. The HTTP API binds to loopback (127.0.0.1) only. Before anything is persisted, secrets (tokens, keys, passwords) and PII (emails, Luhn-valid cards, SSNs, phones, cloud keys) are scrubbed from every text field, with optional pixel-level redaction on the frames themselves.

Stop re-typing tickets. Record it once.

Free and open source under Apache-2.0. Clone it, fork it, self-host it — and give your agent the full picture of every bug, feature, and build.

git clone github.com/thestackhub1/framesleuth-agent.git