Docs
Every feature is reachable from the GUI, the CLI, and the MCP server. The reference below covers all three.
Command names, flags, and JSON keys are kept in English so they match what you actually type. The surrounding explanations are translated.
Quick start
Install
Download the AI Edition installer and run it. Everything ships preconfigured — no PATH tweaks required.
Try it from a terminal
# Open a file
unflick play movie.mp4
# Save a screenshot of the current frame
unflick screenshot --output frame.png
# Cut a 30-second GIF starting at 00:01:00
unflick clip 60 90 --file movie.mp4 --gif
# Generate subtitles (AI edition: zero config)
unflick subtitle generate movie.mp4 Drop it into an AI client
Add this snippet to your MCP client config (Claude Desktop, Cursor, Codex CLI, etc.) and the agent gains 39 tools and 3 live resources to drive playback, generate subtitles, scan your library, and more.
{
"mcpServers": {
"unflick": {
"command": "C:\\Users\\<you>\\AppData\\Local\\unflick\\unflick.exe",
"args": ["--mcp"]
}
}
} CLI reference
The CLI returns JSON on stdout for every command. Pipe through jq, parse it from a script, automate freely. Subcommands auto-launch the background daemon on first use.
Playback
unflick play <FILE> [--seek N] [--volume 0-100] [--speed N] | Open a file and start playback. Resumes from saved position by default. |
unflick pause | Pause the currently playing file. |
unflick resume | Resume a paused file. |
unflick stop | Stop playback and save the current position. |
unflick seek <SECONDS> | Jump to an absolute position in seconds. |
unflick volume <0-100> | Set the volume level. |
unflick speed <RATE> | Set playback speed multiplier (e.g. 1.5). |
unflick status | Print current playback state as JSON. |
Media tools
unflick info <FILE> | Probe a file for duration, codecs, fps, container — without disrupting playback. |
unflick screenshot [--output PATH] | Save the current frame as a PNG. |
unflick clip <START> <END> [--file PATH] [--output PATH] [--gif] | Extract a segment to MP4 or animated GIF (uses bundled ffmpeg). |
Tracks
unflick subtitle load <FILE> | Load an external .srt / .ass / .sub file. |
unflick subtitle list | List embedded and external subtitle tracks. |
unflick subtitle select <ID> | Switch to a subtitle track (0 disables). |
unflick subtitle generate <VIDEO> [--mode local|api] [--whisper PATH] [--model PATH] [--api-key KEY] | AI-generate subtitles. Auto-detects bundled whisper in the AI edition. |
unflick subtitle translate <SRT> --to <LANG> --api-key <KEY> | Translate an SRT file via OpenAI. |
unflick audio list | List embedded audio tracks. |
unflick audio select <ID> | Switch to an audio track (0 disables). |
Playlist
unflick playlist add <FILE> | Append a file to the playlist. |
unflick playlist remove <INDEX> | Remove an entry by index. |
unflick playlist list | Show all playlist entries with the current track marked. |
unflick playlist play <INDEX> | Jump to a specific entry. |
unflick playlist next | Advance to the next track. |
unflick playlist prev | Go back to the previous track. |
unflick playlist clear | Remove all entries. |
Library
unflick library scan <DIR> | Scan a directory for video files into the SQLite library. |
unflick library search <QUERY> | Search the library by title or path. |
unflick library list | List every entry in the library. |
unflick library remove <ID> | Remove an entry by ID. |
Filters
unflick filter list | Show current values of brightness / contrast / saturation / gamma / hue. |
unflick filter set <NAME> <-100..100> | Adjust a single filter. |
unflick filter reset | Set every filter back to 0. |
Settings
unflick settings path | Print the absolute settings.json path. |
unflick settings get [--key K] | Print all settings, or a single key. |
unflick settings set <KEY> <JSON-VALUE> | Set a key (parses as JSON; falls back to string). |
unflick settings unset <KEY> | Remove a key. |
Server
unflick daemon | Start the background daemon explicitly. Other CLI commands auto-start it on first use. |
unflick --mcp | Start the MCP server over stdio. See the MCP section below. |
unflick shutdown | Stop the running daemon. |
MCP reference
unflick exposes a Model Context Protocol server over stdio when launched with --mcp. Every CLI capability is also a tool, plus three subscribable resources for state.
Tools (39)
play | Play a video file with optional seek/volume/speed. |
pause | Pause playback. |
resume | Resume playback. |
stop | Stop playback. |
seek | Seek to a position in seconds. |
set_volume | Set the volume (0-100). |
set_speed | Set playback speed. |
get_status | Read state, file, position, duration, volume, speed. |
file_info | Probe a media file (duration, resolution, codecs, fps, container). |
load_subtitle | Load an external subtitle file. |
subtitle_list | List subtitle tracks (embedded + external). |
subtitle_select | Switch subtitle track by ID (0 disables). |
audio_list | List embedded audio tracks. |
audio_select | Switch audio track by ID. |
generate_subtitles | Whisper-generate subtitles (local or OpenAI mode). |
translate_subtitles | Translate an SRT via OpenAI. |
playlist_add | Append a file to the playlist. |
playlist_remove | Remove a playlist entry by index. |
playlist_list | List playlist entries. |
playlist_play | Jump to a playlist entry by index. |
playlist_next | Advance to the next track. |
playlist_prev | Go back to the previous track. |
playlist_clear | Remove all entries. |
library_scan | Scan a directory for video files into the library. |
library_search | Search the library by title or path. |
library_list | List every entry. |
library_remove | Remove a library entry by ID. |
screenshot | Save the current frame as a PNG. |
clip | Extract a video segment to MP4 or GIF. |
save_position | Save a playback position for later resume. |
get_position | Look up the saved position for a file. |
settings_path | Get the path of settings.json. |
settings_get | Read all settings, or a single key. |
settings_set | Set a single settings key to any JSON value. |
settings_unset | Remove a settings key. |
filter_list | Read brightness/contrast/saturation/gamma/hue. |
filter_set | Set one of those filters to a value in -100..100. |
filter_reset | Reset all filters to 0. |
shutdown | Shut down the unflick daemon. |
Resources (3)
unflick://now-playing | Current playback state — file, position, duration, volume, speed. |
unflick://playlist | Current playlist with the active track marked. |
unflick://library | Every media file in the library. |