A native macOS app that turns long videos into short, captioned clips on your Mac. An open alternative to Opus Clip, made with SwiftUI.
- Paste a link, get clips. Hyperclip downloads with yt-dlp, so YouTube, TikTok, Instagram, X, Twitch and over a thousand other sites work. It can download only part of a long stream. You can also drop in a file of your own. Videos the Mac can't play are converted with FFmpeg.
- Signs in as you. For age-restricted, members-only or private videos, or when YouTube asks you to prove you're not a bot, Hyperclip uses the cookies from your browser: Safari, Chrome, Arc, Brave, Edge, Helium, Firefox, Zen and more, with a choice of profile. Hyperclip decrypts cookies itself for browsers yt-dlp can't read, like Arc. A cookies.txt file works too, and Test checks that everything is in place before a download needs it.
- Transcribes on your Mac. You can use Apple's built-in on-device transcriber (nothing to install), or Whisper models on the GPU (detects the language, handles jargon). Any OpenAI-compatible server works too (OpenAI, Groq, Speaches, a Hypervoice server). Every word is timed.
- Finds the clips worth posting, in one of three ways:
- Built-in (no AI). Scores every span of whole sentences on its hook, its payoff, the pace and loudness of the delivery, and its length. Instant and offline.
- Decision model. Shortlists with the built-in scores, then asks a decision model typed questions about each clip: how strong the hook is, whether it stands on its own, how good the payoff is, and whether people would share it. It then weighs the probabilities into a score. Pick Liquid d1 to run d1-Omni-2B on your Mac with nothing to set up: it also hears each clip and scores the delivery. d1-2B reads the transcript only. Any Jev-compatible server works too: TypeSafe's Jev, or open models you host yourself (Laya, Von, Kev, AnyJev).
- Language model. Reads the whole transcript and picks moments with titles, like an editor would. Pick Liquid LFM3 to run LFM3-1.7B on your Mac: it reads up to 128K tokens at once, so hours of talk fit in one go. Ollama, LM Studio and any OpenAI-compatible API work too.
- Runs Liquid's models for you. The first time you use one, Hyperclip downloads llama.cpp (b11960, since Homebrew's is too old) and the model from Hugging Face, with progress under Models & Tools. It starts its own
llama-serverwhen a clip finder needs it and stops it when you quit, or after 10 minutes unused. Liquid's models are under the LFM Open License v1.0: free for individuals and for companies under $10M in yearly revenue. - Clip by hand. Press I and O while the video plays, select words in the transcript, or drag a clip's edges on the timeline. Click any word to jump to it.
- Frames the speaker. Crops to 9:16, 4:5 or 1:1 on whoever is talking. Vision follows every face and watches whose lips move while the transcript says words are spoken, so a podcast or interview stays on the speaker, not on the biggest face. When someone else talks for a second or more, the crop cuts to them, the way an editor would. It holds through pauses, short replies and voice-overs, and otherwise holds still and only glides when the speaker moves. The preview shows the crop exactly as it will export.
- Burns in captions word by word. Start from a style (Bold, Clean, Boxed, One word, Highlight box), then change any part of it: font, weight, size, text color, how the word being said stands out (its color, or a box behind it), outline thickness and color, shadow, a background box with its color and opacity, words per line, capitals, punctuation, position and the pop-in animation. The preview draws exactly what the export does.
- Publishes to X, YouTube, TikTok, Instagram, LinkedIn, Facebook, Threads, Bluesky and more through Zernio, now or on a schedule.
curl -fsSL https://raw.githubusercontent.com/alexisbcz/hyperclip/main/install.sh | bashThis builds Hyperclip from source and installs it in Applications. It needs a Mac with Apple silicon, macOS 26 or later, and Xcode. If Homebrew is installed, the script also installs yt-dlp, FFmpeg and whisper.cpp. Otherwise, install them later from Models & Tools in the app. llama.cpp, for Liquid's models, installs from the app.
Everything in the window can also be driven from outside. The app does the work, so whatever a script or an agent starts shows in the window as it happens.
The install script links it, or use Hyperclip › Install ‘hyperclip’ Command in PATH. The command starts Hyperclip in the background if it isn't open.
hyperclip import https://www.youtube.com/watch?v=… --wait # download, transcribe, find clips
hyperclip clips latest # numbered, scored, timed
hyperclip transcript latest --from 12:00 --to 14:00 # what's said, with times
hyperclip clip add latest 12:04 12:41 --title "The one thing" # cut your own
hyperclip export latest --best 3 --aspect vertical --captions bold --wait
hyperclip publish latest --to youtube,tiktok --caption "…" --tiktok-consent
hyperclip settings set captionHighlight "#34C759" # any setting, by name
hyperclip settings set decisionPreset liquid # find clips with Liquid's d1, on this Mac
hyperclip models download d1-Omni-2B --wait # Whisper and Liquid modelsAdd --json to any command to get output a script can read. Run hyperclip --help to see every command.
hyperclip mcp is a Model Context Protocol server. Add it to Claude Code, Claude Desktop, Codex, Cursor, Gemini CLI, VS Code and others in one click under Settings › Agents, or by hand:
{ "mcpServers": { "hyperclip": { "command": "hyperclip", "args": ["mcp"] } } }Agents get 21 tools, including import_video, get_transcript, find_clips, list_clips, add_clip, update_clip, export_clips, publish, get_settings and set_setting. Try asking: "Import this video, find the five best moments about pricing, export them vertical with clean captions."
- Links:
hyperclip://<method>?…runs any request, for examplehyperclip://import?url=…,hyperclip://find?project=latest&count=5orhyperclip://show?project=latest&clip=2. - Shortcuts: the app adds Clip a Video, Export the Best Clips and Get Clips actions.
The app listens on ~/Library/Application Support/Hyperclip/control.sock, which only your user can open. It takes one JSON request per line, such as {"method": "getProject", "params": {"project": "latest"}}, and answers with {"ok": true, "result": …}. The methods are listed in Shared/Control.swift. hyperclip api <method> '<json>' sends one from the terminal.
| Key | Action |
|---|---|
| Space | Play or pause |
| I / O | Mark in and out; marking out makes the clip |
| ← → (⇧ for 5 s) | Step 1 second |
| J / K / L | Back 10 s, pause, forward 10 s |
| , / . | Step one frame |
| Return | Play the selected clip |
| ⌘E / ⇧⌘E | Export the selected clip / every clip |
| ⌘K | Find clips again |
