How to Let Claude Watch a Video (crv)
claude-real-video (crv) is a free, MIT-licensed tool that closes a specific gap: Claude has no way to ingest a video file, ChatGPT mostly reads the transcript, and Gemini samples frames at a fixed rate that misses fast cuts. crv extracts the frames that actually change, drops the near-duplicates, transcribes the audio, and hands the result to whichever LLM you want — all processing runs on your own machine. This guide covers the pipeline, the CLI, the new crv-web GUI, the Claude Code skill, and where frame-based understanding still falls short.

On this page · 21 sections▾
- TL;DR + what you need
- Why Claude can't just watch
- The pipeline, five pieces
- Smallest end-to-end example
- Scene-change vs fixed sampling
- Sliding-window dedup
- Transcript: subtitles then Whisper
- Three ways to run it
- · As an agent skill
- · crv-web (no terminal)
- What we got wrong
- Real-world workflows
- Common mistakes
- Limits, cost, privacy
- Who it's for / not
- Community signal
- The verdict
- Generating vs understanding
- FAQ
- Glossary
- Sources
TL;DR + what you need
claude-real-video (crv) is an open-source, MIT-licensed CLI — plus a local web UI — that converts a video URL or file into scene-aware keyframes and a transcript, so an LLM that can only read images and text — every current LLM, Claude included — can actually reason about what happened in the video.
- One command:
pip install claude-real-video, thencrv <url-or-file>. - One system dependency:
ffmpeg, not pip-installable, required for extraction and audio. - One output folder:
crv-out/frames/*.jpg+crv-out/transcript.txt+crv-out/MANIFEST.txt. - Three ways to run it: the
crvCLI, an agent skill (Claude Code and others), orcrv-webwith zero terminal.
The project’s own worked example is the number to anchor on: a 58-second clip sampled at a fixed 1 fps produces 58 frames. crv’s scene-change detection plus dedup keeps the 26 that actually differ, and --grid packs those into 3 contact sheets. Fewer tokens into whichever LLM you use, nothing visually distinct left out.
The tool moved fast in its first ten days — a Hacker News front-page thread, a community pull request merged the same day it landed, and a full rewrite of the install story. The maintainer, HUANGCHIHHUNG (@LeoAidoAI), summed up one week of it like this:
Solo founder + an AI team. This is what one week looked like:
— HUANGCHIHHUNG (@LeoAidoAI) July 7, 2026
- My open-source video tool crossed 1.2k GitHub stars
- A stranger sent a PR — merged it the same day
- Another user filed a feature request — shipped in v0.6.0 within hours
- Built a full web UI (3 languages) in one evening
- Launched on Product Hunt today
The tool lets Claude, GPT or any LLM actually watch a video: keyframes + transcript, running 100% locally.
Building all of it in public, from Taiwan. Follow along.
Why Claude can’t just watch a video
Precision matters here, because the gap is easy to overstate. Claude can read images — that part already works fine. What it can’t do, on any current surface, is accept a video file or a video URL and step through it frame by frame the way a person would. Ask it to summarize a YouTube link directly and it either declines or free-associates from the title and any cached knowledge of the video, not from the footage itself. crv doesn’t teach Claude to understand video; it converts the video into the image-and-text format Claude already understands.
Three status-quo failure modes, as the project frames them:
- ChatGPT reads the transcript when you paste a YouTube link — not the picture.
- Claude won’t take a video file at all.
- Gemini does ingest video natively, but has to send it to Google’s servers and samples at a fixed interval (1 fps by default), so fast cuts slip past and static screens get oversampled.
If all you actually need is words, MCP.Directory already catalogs transcript-only tooling — our YouTube Transcript server entry fetches and analyzes a video’s transcript specifically “for video content analysis without watching,” by its own listed description. That is precisely the failure mode crv is built to go beyond: a transcript tells you what was said, not what was on screen.
Takeaway: crv is not a smarter model. It is a translation layer — video in, images and text out — aimed at the one input format none of today’s mainstream chat LLMs accept directly.
The pipeline: five pieces, one folder
Everything crv does is one chronological pass through six named stages, run locally, ending in a folder any LLM can read:
Video — URL or local file
YouTube, Instagram Reels, TikTok, or a file on disk
Extract
every scene change + a density floor (--fps-floor)
Sliding-window dedup
real pixel diff against the last N kept frames
Transcript
subtitles if present, else Whisper
Audio (optional)
full soundtrack via --keep-audio
MANIFEST.txt
frames + timestamps + transcript, one folder
Any LLM
Claude, ChatGPT, Gemini, or a local VLM
“Extract” is a single ffmpeg select filter pass, deliberately — the tool’s own source notes that keeping frames in strict time order in one pass matters, because dedup needs to compare true chronological neighbours, and two separate passes used to interleave frames out of order. “Dedup” compares real pixel difference on downscaled RGB, not a perceptual hash — hashes go blind on flat colours and equal-luma hue changes, per the project’s own comments in the code.
Takeaway: nothing here is a black box of ML models. It is classical video processing — ffmpeg, pixel diffing, optional Whisper — chained in a fixed order, which is also why the whole thing installs in seconds and needs no GPU.
Smallest end-to-end example
pip install claude-real-video # core: frames + dedup
pip install "claude-real-video[whisper]" # + audio transcription
# ffmpeg is required and NOT pip-installable
brew install ffmpeg # macOS
sudo apt install ffmpeg # Linux
winget install Gyan.FFmpeg # WindowsThen point it at a link or a local file:
crv "https://www.youtube.com/watch?v=..." --gridA run against that same 58-second worked example, following the CLI’s own reporting format, looks like this:
✓ Done → crv-out
26 frames (deduped from 58 extracted) in crv-out/frames
manifest: crv-out/MANIFEST.txt
transcript: crv-out/transcript.txt
grids: 3 contact sheet(s) in crv-out/gridsDrop the frames (or the contact sheets, which read as a sequence instead of scattered stills) plus MANIFEST.txt into Claude, ChatGPT, or Gemini, and ask your question. It also works as a plain Python call, no CLI involved:
from claude_real_video import process
r = process("https://youtu.be/...", "out", lang="en")
print(r.frame_count, r.transcript_path)Takeaway: the entire surface is one positional argument (source) and a handful of optional flags. There is no config file, no account, no API key — the only thing gating a first run is having ffmpeg on your PATH.
Deep dive: scene-change detection vs fixed sampling
Most “let an LLM watch a video” scripts — and Gemini’s own pipeline — grab a frame every N seconds. That over-samples a static screencast and under-samples a fast-cut reel. crv instead fires on ffmpeg’s scene-change score, with a --fps-floor (default 1.0s) guaranteeing at least one frame even during a scene that never technically “changes.”
| Fixed-interval sampling | claude-real-video | |
|---|---|---|
| Frame selection | every N seconds | scene-change detection + density floor |
| Static slide (10 min) | ~600 near-identical frames | collapses to 1 (dedup) |
| Fast-cut reel | misses frames between samples | catches each visual change |
| Where it runs | often in someone’s cloud | on your machine |
| Input | usually local file only | URL (yt-dlp) or local file |
Two flags exist because “scene change” is a fuzzier signal than it sounds: --adaptive compares each frame to its rolling neighbourhood instead of a fixed constant, catching a 2–3 second squash-and-stretch that never spikes hard enough to trip a static threshold; --text-anchors forces extra frames at subtitle-cue timestamps, for content where the meaning changes faster than the pixels do (slides, burned-in captions). Both shipped in direct response to real user reports — more on that in Common Mistakes.
Takeaway: scene-aware extraction beats fixed sampling for anything with cuts, and the two extra modes exist precisely because “scene change” alone doesn’t cover slow motion or static-but-changing content. Default to plain --scene; reach for --adaptive or --text-anchors only when a first pass visibly misses something.
Deep dive: sliding-window dedup
Extraction alone would still resend a shot every time an A-B-A cutaway returns to it — two people talking, cut back and forth, is the classic case. crv’s dedup step compares each newly extracted frame against the last --dedup-window frames it already kept (default 4), not just the single previous frame, so a shot the model has already seen doesn’t reappear after a brief cutaway. Set it to 1 for classic consecutive-only comparison.
--dedup-threshold (default 8) sets what percentage of pixels must change for a frame to count as new — raise it and you keep fewer, more different frames. If you want to see the tool’s reasoning rather than trust it blindly, --report keeps every dropped frame in ./dropped and writes a report.html showing each keep/drop decision with its diff percentage — genuinely useful for tuning the threshold on footage that behaves unusually.
Takeaway: dedup, not extraction, is what makes the headline number (58 frames → 26 kept) work. Extraction alone over-collects on purpose; dedup is the step actually doing the token-saving.
Deep dive: transcript — subtitles first, Whisper as fallback
If a video already has subtitles — a sidecar .srt/.vtt next to a local file, or an embedded subtitle track — crv uses those directly. That’s both faster and more accurate than re-transcribing audio that already has an authoritative text version. Only when there are no subtitles does it fall back to Whisper, skipped cleanly if the video has no audio track at all.
--lang controls Whisper’s language (default auto-detect); --whisper-model picks the model size (tiny/base/small/medium/large, default base). The bundled Claude Code skill is explicit about the cost of the default: the first transcription downloads an openai-whisper base model, about 139 MB, automatically, once. Bigger models trade a larger download and a slower run for better accuracy on tricky audio.
Takeaway: the subtitles-first order is the detail worth remembering — if you’re debugging a transcript that looks wrong, check whether the source actually shipped a (possibly bad) subtitle track before assuming Whisper mis-heard the audio.
Three ways to run it
crv ships three interfaces, and picking the right one matters more than any individual flag.
As an agent skill
The README’s own path installs the bundled skill straight into Claude Code:
pip install claude-real-video
mkdir -p ~/.claude/skills && cp -r skills/claude-real-video ~/.claude/skills/After that, paste a video link into Claude Code and ask about it — no manual crv invocation. The skill’s own instructions define a tight four-step loop for the agent: run the extractor with --grid, read MANIFEST.txt first, read the contact sheets in grids/ before falling back to individual frames, then answer citing timestamps from the manifest.
A second, community-contributed path goes wider: a merged pull request added a separate skills/claude-real-video-for-agents bundle plus an install-skill.sh script that auto-detects and symlinks the skill into seven agent platforms at once — Claude Code, Codex, Gemini CLI, OpenCode, Pi, MiMoCode, and a generic .agents convention. It was opened and merged the same day, one of several PRs the maintainer folded in within hours of a report landing.
crv-web — no terminal
Running crv-web starts a local page — stdlib-only Python, no extra dependencies — at http://127.0.0.1:8642 and opens it in your browser automatically. Paste a YouTube or Reels link (or a local file path), tick --adaptive/--text-anchors/--grid as checkboxes instead of flags, click Analyze, and open the result viewer when the background job finishes. The interface ships in three languages — Traditional Chinese, Simplified Chinese, and English — toggled in the corner and persisted in localStorage.
Shipped a web UI for my open-source video tool last night — no terminal needed anymore.
— HUANGCHIHHUNG (@LeoAidoAI) July 8, 2026
Paste a YouTube or Reels link → your LLM actually watches it: scene-change keyframes + transcript, 100% local.
Built the whole thing in one evening, in 3 languages.
Free & open source 👇
Takeaway: the skill path is for standing, repeatable use inside an agent loop; crv-web is for a one-off “what’s in this clip” without opening a terminal at all. Both call the exact same extraction pipeline underneath.
What we got wrong
Researching this from the outside, in the order reality corrected us:
- We assumed “runs locally” meant fully private end to end. It means the extraction, dedup, and transcription pipeline runs on your machine — nothing is uploaded by the tool itself. The moment you paste the resulting frames into Claude, ChatGPT, or Gemini, that provider’s ordinary data handling applies, same as pasting any screenshot. A Hacker News commenter made exactly this point at launch, and a reply narrowed it correctly: pair crv with a model that also runs on your machine if you need the whole chain to stay local.
- We assumed the project was a CLI, full stop. It shipped three interfaces — CLI, a portable agent skill across seven platforms, and a three-language local web UI — within roughly its first ten days.
- We assumed “Claude can’t watch video” meant Claude has no vision. It has vision; it reads images fine. What it lacks is a way to ingest a raw video file or stream directly. That precision is the whole reason crv exists as a translation layer rather than a model upgrade — exactly this confusion surfaced on the launch thread, where one commenter’s video-analysis experience with Claude prompted another to ask what “can’t view video” even meant.
Real-world workflows
Paste the link, hope for the best
Dropping a YouTube URL straight into Claude and asking it to summarize the video. Claude has no way to fetch or ingest the file, so it either declines or answers from the title and cached knowledge — not the footage.
Extract first, then ask
Run crv <url> --grid --why "what you want to know", then paste the manifest and grids into Claude with your question. The model reasons over real frames it actually received.
Sample every second, dump it all in
A fixed 1 fps pass over a long video burns tokens on near-duplicate static frames and can hit an LLM’s attachment or context limits before the interesting parts even load.
Let dedup and --grid do the cutting
The 58-frame → 26-frame → 3-contact-sheet example is the intended shape: scene detection picks the candidates, dedup drops the repeats, --grid tiles what’s left into a sequence the model reads at a glance.
Takeaway: crv is a preprocessing step, not a chat feature. The workflow that works is always “extract locally, then paste,” never “paste the raw link and hope.”
Common mistakes
- Assuming ffmpeg comes bundled. Root cause:
pip installsucceeds fine because it only installs the Python package;ffmpeg/ffprobeare native binaries pip can’t install. The firstcrvrun then fails until youbrew install ffmpeg(macOS) or your distro’s equivalent. - Expecting scene detection to catch slow, gradual motion. Root cause: a user’s bug report showed a 2–3 second squash-and-stretch animation technique slipping past detection — a gradual change never spikes any single frame’s score high enough. Fixed by
--adaptive, which compares each frame to its rolling neighbourhood instead of a fixed threshold. - Losing sync on burned-in captions or slide decks. Root cause: a feature request pointed out that scene detection watches pixels, not meaning — a slide whose bullet points change without the background changing doesn’t register as a new scene.
--text-anchorsnow forces a frame at each subtitle-cue timestamp instead, capped at one forced frame per second so it can’t flood the output. - Treating ffmpeg’s scene filter as gospel. Root cause: ffmpeg’s built-in scene-change heuristic isn’t perfectly reliable on every kind of footage, a limitation raised directly on the launch thread — exactly why
--report,--dedup-threshold,--dedup-window, and--adaptiveall exist as tuning knobs rather than a black box you have to trust blindly. - Expecting the free tier to explain camera work. Root cause: a stack of keyframes literally cannot show pans, zooms, or gesture timing between frames. That is the exact gap the paid crv Pro add-on targets with a separate motion-analysis pass; the free tool only ever promises what is on screen, never how it moves.
Limits, cost, and privacy
- ffmpeg is a hard requirement, not bundled. Budget one manual install step per machine before the first run.
- First transcription downloads a model. The default Whisper
basemodel is roughly 139 MB, fetched automatically once; larger--whisper-modelchoices download more and run slower in exchange for accuracy. - Token cost is downstream, not crv’s to set. The tool doesn’t call any LLM API itself, so there is no single “cost per video” figure — it depends entirely on which LLM you paste the output into and how many frames you send.
--max-frames(default 150),--grid, and--dedup-thresholdare your levers; the 58-to-26-to-3-sheets example shows the kind of reduction to expect. - Login-gated sources need your own, authorized access.
--cookiesand--cookies-from-browser(Chrome, Safari, Firefox, Edge) exist for content you already have the right to fetch — the project is explicit that this is not a paywall bypass and that you should never ship a cookie file in a repo. - Free core, paid depth layer. The extraction/dedup/transcript pipeline is MIT-licensed and free forever. A separate one-time paid tier, crv Pro, adds camera-move classification and pacing analysis on top — entirely optional, and not required for the workflows in this guide.
Who it’s for, who it isn’t
Good fit if you want Claude, ChatGPT, or any LLM to reason over a specific video’s actual visual content without routing through Gemini’s native (and cloud-only) video ingestion; if you use Claude Code or a similar agent and want video-watching as a standing skill rather than a one-off script; if you run repeatable video-to-notes workflows and want --kb to file results straight into a knowledge base; or if you want a paste-a-link experience with no terminal at all.
Look elsewhere if you need real-time or live video — crv processes a finished file or download, not a stream. If you specifically need camera moves, editing rhythm, or gesture timing out of the box, that is the paid crv Pro layer’s job, not the free tool’s. And if your video is dense, fast, and long, budget time to tune --max-frames, --scene, and --adaptive rather than expecting perfect defaults on the first run.
Community signal
The Hacker News launch thread, which reached the front page, split cleanly into three camps. Builders working on similar problems showed up first — several commenters mentioned shipping comparable tools of their own and offered to contribute, and the maintainer answered directly with what needed help: “the codebase is small enough to read in one sitting… additional transcript backends and smarter grid packing” were the areas named.
The precision skeptics raised the sharpest technical objection:
“Cool idea, but keyframes are not videos. Motion, object permanence, are not things Claude can infer from a set of images. Nice demo though!”
octember, Hacker News · Hacker News
Reply on the claude-real-video Show HN thread.
A second thread of skepticism was about cost, not correctness:
“Pretty terribly expensive way to watch a video with Claude. Use Gemini or some local VLM to do this way more efficiently. We spent quite a bit of time on video understanding, and Claude will just burn tokens.”
fzysingularity, Hacker News · Hacker News
Reply on the claude-real-video Show HN thread, linking an alternative video-encoding project.
Both objections are fair and neither is really a rebuttal: crv doesn’t claim frames beat native video ingestion on cost or that stills capture motion — it claims Claude and ChatGPT have no native video path at all, so “expensive but possible” beats “impossible.” A separate subthread pushed back on the “Claude” branding itself, and the maintainer shipped a same-day fix rather than argue: “Took this — pip install llm-real-video works now, same tool. Kept the original repo name so existing links don’t break,” confirmed live on PyPI as an alias package under the neutral name.
The maintainer also cross-posted a launch recap to Reddit, where the framing was the same numbers, aimed at builders rather than the HN crowd:
“LLMs can't watch videos — they read subtitles at best. I built claude-real-video (crv): point it at a URL or local file, it extracts only the frames that matter (scene-change detection + sliding-window dedup, no ML models to download), builds a manifest with timestamps + transcript, and any LLM — Claude, Gemini, local VLMs — can then actually reason about the video.”
u/Various_Story8026, r/SideProject · Reddit
Launch recap cross-posted the same week as the Hacker News thread.
The verdict
Our take
Install crv if you want Claude (or ChatGPT, or a local model) to reason over specific video footage and you are fine trading some token efficiency for not depending on Gemini’s cloud-only native video path. Reach for --grid and --why by default, --adaptive or --text-anchors only when a first pass visibly misses something. Skip it, or pair it with Gemini instead, if raw token cost is the deciding factor and Gemini’s native (if coarser) sampling is good enough for your footage — and don’t expect the free tier to explain camera work or motion; that is a different, paid layer by design.
What we’d watch next: whether --adaptive and --text-anchors — both shipped in direct response to real bug reports within days — keep arriving at that pace, and whether the free/Pro split holds as a clean line or drifts. A project shipping three interfaces and two detection modes inside its first ten days is either about to stabilize or about to sprawl; the issue tracker is the tell.
The bigger picture: generating video vs understanding it
MCP.Directory covers a lot of video tooling, and it is worth being precise about which side of the video story each piece sits on. Our Runway MCP guide, the Claude Remotion skill, and our MiniMax, Pika, and Higgsfield coverage are all about generating video — text or images in, new footage out. crv does the opposite: existing footage in, structured understanding out. Confusing the two leads to a category error — no amount of scene-change tuning will make a frame extractor produce new video, and no video-generation tool will tell you what actually happened in a clip someone handed you.
crv is not itself an MCP server — it is a CLI and an agent skill, installed with pip rather than registered as an MCP connection. But it solves the same category of problem the Model Context Protocol exists to solve: giving a model reliable access to something it couldn’t reach on its own. MCP standardizes how a model calls out to a tool or data source over a live connection; crv solves a narrower, offline version of the same problem — turning a format the model can’t read into one it can, once, before the conversation starts.
Takeaway: if you are choosing a video tool for your stack, ask “generate or understand” first. It is a five-second question that saves you from installing the wrong category of tool entirely.
Frequently Asked Questions
What is claude-real-video (crv)?
An open-source, MIT-licensed CLI — plus a local web UI — that turns a video URL or file into scene-aware keyframes and a transcript. It doesn't teach an LLM to understand video directly; it converts the video into the images and text any LLM, including Claude, already knows how to read.
Can Claude actually watch a video?
Not a video file directly — Claude accepts images and text, not video streams. crv closes that gap: it extracts the frames that matter plus a transcript, and you hand those to Claude like any other image-and-text input. The model then reasons over real frames, not a guess from the title.
Is claude-real-video free?
Yes. The core tool is MIT-licensed and free: pip install claude-real-video. A separate paid add-on, crv Pro, layers camera-move and pacing analysis on top of the same free frame-and-transcript pipeline. You don't need it for basic video understanding.
Does crv upload my video anywhere?
The extraction, dedup, and transcription pipeline runs entirely on your machine — the tool itself uploads nothing. That changes the moment you paste the resulting frames into an LLM chat: whichever provider you picked then handles that data under its own policy, same as pasting any image.
How is this different from just using Gemini for video?
Gemini ingests video natively but samples frames at a fixed interval server-side, so fast cuts can slip past. Claude and ChatGPT mostly can't take a video file at all. crv runs scene-aware extraction locally and hands the result to any of them, including the two that have no native video path.
Can I use crv without a terminal?
Yes. Running crv-web starts a local page (English, Traditional Chinese, or Simplified Chinese) where you paste a link or file path, click Analyze, and open the result viewer when it finishes. No flags to memorize, and nothing leaves your machine.
How do I install it as a Claude Code skill?
pip install claude-real-video, then mkdir -p ~/.claude/skills && cp -r skills/claude-real-video ~/.claude/skills/ from a clone of the repo. After that, paste a video link into Claude Code and ask about it — the skill runs crv automatically and reads the manifest back.
Glossary
Scene-change detection
Flagging a new frame for extraction when ffmpeg’s scene score crosses a threshold, instead of sampling at a fixed interval.
Density floor (--fps-floor)
A guarantee of at least one frame every N seconds, so a scene that never technically “changes” still gets sampled.
Sliding-window dedup
Comparing a new frame against the last N kept frames, not just the previous one, so an A-B-A cutaway doesn’t resend a shot already seen.
Contact sheet (--grid)
A tiled 3×3 image of consecutive keyframes, so a model reads a sequence instead of scattered stills.
MANIFEST.txt
The single file summarizing every extracted frame, its timestamp, and the transcript, for a model to read first.
--adaptive
Scene detection against a rolling neighbourhood instead of a fixed threshold, for slow morphs a constant would miss.
--text-anchors
Forces extra frames at subtitle-cue timestamps, for content where on-screen text changes faster than the scene does.
crv-web
A local, stdlib-only web UI (English, Traditional Chinese, Simplified Chinese) for running crv without a terminal.
Keyframe
One extracted-and-kept frame representing a distinct visual moment, after dedup removes near-duplicates.
Whisper
OpenAI’s open-source speech-to-text model, used as the transcript fallback when a video has no subtitles.
yt-dlp
The open-source downloader crv uses to fetch video from a URL before extraction begins.
VLM
Vision-language model — any model, local or hosted, that can read images alongside text, which is what crv’s output is built for.
--kb
Saves the analysis as a dated markdown note into a folder you choose, instead of it living only in crv-out.
Sources
- Primary — repository, README, and source (
cli.py,core.py,serve.py,viewer.py): github.com/HUANGCHIHHUNGLeo/claude-real-video (MIT, Python) - Primary — packages: claude-real-video on PyPI · llm-real-video (alias) on PyPI
- Primary — agent skill definitions:
skills/claude-real-video/SKILL.md·skills/claude-real-video-for-agents/SKILL.mdin the repository above - Community — Hacker News: “Claude-real-video — any LLM can watch a video”
- Community — Reddit: r/SideProject launch recap
- Community — maintainer on X: @LeoAidoAI, July 7, 2026 · @LeoAidoAI, July 8, 2026
- Community — issue tracker referenced above: text-aware frame forcing (issue #5) · multi-agent skill install PR (#4) · slow-motion detection report (issue #2) · Whisper engine doc fix (PR #1), all in the repository above
- Optional paid add-on referenced for completeness: crv Pro (not required for anything covered in this guide)
- Canonical MCP.Directory entry for the transcript-only alternative discussed above: /servers/youtube-transcript
- Related guides: What is MCP? · Runway MCP · Claude Remotion skill
MCP primer
What is the Model Context Protocol?
ReadVideo generation
Runway MCP: Complete Guide
ReadVideo generation
Claude Remotion Skill Guide
ReadFound an issue?
If something in this guide is out of date — a new flag, crv Pro’s feature set changing, a fix to one of the issues cited above — email [email protected] or read more on our about page. We keep these guides current.