mcpField
U
Unflick

Unflick

Local
github.com/zhitongblogDeveloper Tools0Updated 5w ago

About Unflick

Unflick is a video player with a GUI, CLI, and built-in MCP server, for people and agents working with local video and streaming URLs. Its interfaces control the same player instance and support playback, transcription, clipping, and media search.

Key features

  1. 01GUI, CLI, and built-in MCP server
  2. 02Control the same playback instance
  3. 03Play local files and streaming URLs
  4. 04Local Whisper subtitle generation
  5. 05Transcript search and media library search
  6. 06Clip video and skip SponsorBlock segments

Use cases

  1. 01Control on-screen playback from an MCP client
  2. 02Find and seek to spoken content in subtitles
  3. 03Generate subtitles locally for videos
  4. 04Clip video or search a media library

MCP support

Unflick starts an MCP server over stdio with `unflick --mcp`, exposing playback, subtitle, clipping, transcript search, and other tools plus live resources. The MCP server, CLI, and GUI operate on the same player instance.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

unflick

A free, ad-free video player — for humans and AI.

unflick.app · MIT · Cross-platform · CLI + MCP first

unflick plays your video files and your YouTube / Bilibili / Twitch / Vimeo / 26 other streaming-site URLs, in a beautiful native window. Auto-skips YouTube sponsor segments via SponsorBlock. Finds subtitles on OpenSubtitles, or generates them locally with whisper.cpp when none exist.

What makes it different: MCP is a built-in control surface, not a third-party wrapper. Other players can be scripted from the outside; in unflick the CLI, the MCP server and the window share one player instance. Ask Claude to skip to the next chapter and the video you are watching skips — same mpv, same playback, no second hidden process. Every feature ships headless before it gets a button.

Install

One-line install:

# macOS — Homebrew
brew install --cask zhitongblog/tap/unflick

# macOS / Linux
curl -fsSL https://unflick.app/install.sh | bash

# Windows (PowerShell)
irm https://unflick.app/install.ps1 | iex

Or pick an installer for your platform from the latest release:

PlatformFileSize
Windows 10/11 (x64)unflick_<ver>_x64-setup-standard.exe (or .msi)~80 MB
Windows 10/11 (x64), AI edition with bundled Whisperunflick-ai_<ver>_x64-setup.exe~150 MB
macOS 11+ (Apple Silicon + Intel, signed + notarized)unflick_<ver>_universal.dmg~15 MB
Linux x86_64 (Debian / Ubuntu)unflick_<ver>_amd64.deb~10 MB
Linux x86_64 (Fedora / RHEL / openSUSE)unflick-<ver>-1.x86_64.rpm~10 MB
Linux x86_64 (distro-agnostic)unflick_<ver>_amd64.AppImage~80 MB

Three interfaces, one core

unflick exposes the same playback engine through three surfaces:

  • GUI — modern player window with libmpv-quality playback, keyboard shortcuts, drag-and-drop, picture-in-picture, true fullscreen, chapters, bookmarks, A-B loop, frame stepping, subtitle timing and styling.
  • CLI — every feature is also a command. unflick play <file-or-url>, unflick chapter next, unflick bookmark add --name "the good bit", unflick loop a, unflick subtitle auto, unflick subtitle bilingual on, unflick audio eq preset speech, unflick clip 0 5, unflick library scan. Output is JSON; pipe it to jq and automate. Started with --allow-dev, unflick dev snapshot / click / eval drive and read the player's own window, which is how unflick is tested on all three platforms.
  • MCP server — unflick --mcp starts a Model Context Protocol server over stdio. Add it to Claude Desktop / Cursor / Codex CLI's MCP config and your AI agent gets 101 tools (play, seek, chapter_seek, bookmark_goto, ab_loop, subtitle_delay, subtitle_bilingual, screenshot, clip, sponsor_segments, get_subtitles, equalizer_preset, generate_subtitles, library_search, …) plus live resources.

Claude Code users can install the skills and the MCP server in one step:

/plugin marketplace add zhitongblog/unflick
/plugin install unflick

That brings seven skills (play, navigate by what was said, clip/GIF, subtitles, library, screenshot, SponsorBlock) plus the MCP server — see marketplace/.

All three drive the same player. When the window is open it hosts the control port, so unflick pause from a terminal — or an agent calling pause over MCP — pauses the video on screen rather than some invisible second instance. With no window running, the CLI and MCP fall back to a headless daemon and everything still works.

What an agent can do that a wrapper can't

Because MCP talks to the player rather than at it, an agent gets tools that need the player's own state:

  • search_transcript / seek_to_text — "skip to where she explains the refund policy". Searches whatever subtitles are open: a loaded file, a sidecar .srt, an embedded track, or the ones you just generated with whisper.
  • generate_chapters / set_chapters — give a file that shipped without chapters a real chapter list. It's not just data back: the chapters appear on the progress bar and respond to chapter_seek and PgUp/PgDn.
  • describe_frame — hand the model the frame that's on screen right now, as an image. Same player, so it sees what you see.

Free, ad-free, local — by charter

unflick will never:

  • carry banner / pre-roll / "sponsored" ads
  • collect telemetry of any kind
  • require an account, login, or cloud connection
  • gate features behind a paid tier or trial countdown
  • bundle adware, browser hijackers, or "recommended" software at install time

Everything that matters runs on your machine. Library scans, subtitle transcription, AI rewriting — all local. Your files stay on your filesystem.

The SponsorBlock auto-skip for YouTube is the active form of "ad-free" — actively skipping ads in the content unflick plays, not just refusing to show its own.

License

unflick is released under the MIT License — see LICENSE.

unflick bundles, dynamically loads, or invokes the following third-party software at runtime. Each upstream license is enumerated in THIRD-PARTY-LICENSES.md, and the canonical license text for the LGPL/GPL/MPL-licensed components ships in the licenses/ directory of every installer:

  • libmpv — LGPL-2.1-or-later — dynamically loaded at runtime (source)
  • ffmpeg (Windows bundle) — GPL-3.0-or-later — invoked as a subprocess only (source)
  • yt-dlp — Unlicense (public domain) — invoked as a subprocess (source)
  • whisper.cpp (AI edition) — MIT — invoked as a subprocess (source)
  • Tauri + wry + mpv-player/mpv + glutin + objc2 + 590+ Rust crates — all MIT, Apache-2.0, ISC, BSD, MPL-2.0, or Unicode-3.0 (full breakdown)
  • React 18, Zustand, Framer Motion, Tailwind, Vite — MIT

See THIRD-PARTY-LICENSES.md for the complete attribution and compliance notes (subprocess invocation vs. dynamic linking, GPL aggregation, MPL file-level scope, etc.).

Build from source

git clone https://github.com/zhitongblog/unflick.git
cd unflick
pnpm install
pnpm tauri build
# Windows: ./scripts/fetch-windows-deps.sh   fetches libmpv / ffmpeg / yt-dlp / whisper
#          bash build-both.sh                builds both Standard and AI editions

Requires Rust stable + Node 22 + pnpm 10 + the Tauri 2 platform prerequisites (WebView2 on Windows, WKWebView on macOS, webkit2gtk-4.1 on Linux). Linux loads the system libmpv, so apt install libmpv-dev first. macOS ships its own universal libmpv (it is the only way to play DVDs there — Homebrew's mpv is built without libdvdnav): ./scripts/build-mac-libmpv.sh builds it once, and brew install mpv still works as a fallback for everything but discs.

Releases are cut with ./scripts/release.sh <version> — see scripts/README.md for how the three platforms are built and why macOS is the one that is not built in CI.

Acknowledgments

unflick stands on the shoulders of mpv, ffmpeg, yt-dlp, whisper.cpp, Tauri, and a long list of MIT/Apache-licensed Rust and JavaScript libraries. None of this would exist without those projects.

The website at unflick.app and a sibling project (SoloMD) — also free, also MIT, also bundling MCP — are by the same author. If you like the design, that's where it comes from.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.