The clipboard manager for vibe coders β native to Mac. Everything you copy while building with AI β code, errors, screenshots, prompts and keys β one shortcut away.
Text & image history Β· native capture + annotation Β· OCR Β· voice notes β text (OpenAI or Gemini) Β· copy as code block Β· bundle context into a PDF/ZIP Β· credential manager. Lives in the menu bar: light, fast and private.
π Free & open source (MIT) Β· π No telemetry Β· π Native Swift (no Electron)
Snip an area β it lands in Klip β pull the text (OCR) Β· and record a voice note that transcribes itself.
Klip is a native macOS app and requires macOS 14 (Sonoma) or later (Apple Silicon or Intel). A Windows πͺ version is planned. Your data stays on your machine.
"Vibe coding" is a constant back-and-forth of copy-paste between your editor and tools like Claude, ChatGPT or Cursor: code snippets, error messages, UI screenshots, terminal output, dictated prompts and API keys. Klip is built for that flow:
- Never lose a snippet β everything you copy lands in a searchable history.
- Snip an error and annotate it (arrows, text, highlighter) without leaving the keyboard, and it lands in Klip ready to paste into the AI.
- Pull the text out of a screenshot (OCR) to paste a log that was stuck in an image.
- Copy as a code block (
```) to paste cleanly into a chat. - Dictate a prompt and Klip transcribes it to text.
- Bundle several clips (screenshots + text) into a PDF or ZIP to upload as context in one shot.
- Keep your API keys detected and masked, named and searchable.
- Automatic history of text and images/screenshots.
- Instant search with match highlighting + keyboard navigation (β/β, Enter,
β1ββ9,Esc). - Type filters (text Β· images Β· voice Β· credentials Β· favorites); a type chip only shows up once you actually have items of that type.
- Auto-paste into the active app Β· Favorite β Β· Delete ποΈ (with confirmation on clear-all).
- Readable date on every item: "Tue, Jul 04 Β· 10:43", "Today", "Yesterday".
- Global shortcut
ββ§Uβ snip a region of the screen (drag a selection over a dimmed freeze-frame, with a live dimension badge and correct Retina scale). Uses ScreenCaptureKit (not the deprecated API). - Built-in annotation editor: pencil, line, arrow, rectangle, ellipse, highlighter, editable/movable/resizable text, color, stroke width and undo.
- When you're done, the annotated capture lands in history (ready for OCR and search) and on the clipboard.
- Also from the π· button in the panel or the menu-bar menu.
- Large preview (cached thumbnails for smooth scrolling), open large and save to file.
- OCR (extract text from an image) with Apple's Vision engine β free and on-device. Perfect for pulling the text out of a log or error you copied as a screenshot.
- Record (
ββ§I) or upload a file (m4a, mp3, wav, WhatsApp .opus, ogg, flacβ¦). - Transcribes in the background β you can record another one right away.
- The original audio is kept with duration and a progress bar: play it (βΆ) or reveal it in Finder, and retry (β») if a transcription fails.
- On-device (default) β transcribe fully offline with Whisper (WhisperKit on Core ML): no API key, no audio ever leaves your Mac. Pick the model (Tiny / Base / Small / Large v3 Turbo); it downloads once on first use, then runs offline.
- OpenAI or Google Gemini β optional cloud engines if you'd rather use them; bring your own key. For Gemini you can pick the model (
gemini-flash-latest,-flash-lite-latest,-pro-latest,2.5-flash,2.5-pro); for OpenAI,gpt-4o-mini-transcribeorwhisper-1. - Dictation language is selectable (and auto-detect), so transcription is natural in your language.
- Context words β list names, brands or jargon (e.g.
Kommo, CRM, Proper, KPI, Tami Bot) so the cloud transcribers spell your proper nouns correctly.
- Copy as code block β wraps the text in
```to paste cleanly into a chat. - Copy as Markdown for a single item, or export the whole history to Markdown.
- Save text as a file (
.txt/.md) to drag into a tool when the chat won't let you paste it. - Batch multi-select (βοΈ icon in the header): mark several clips andβ¦
- Combine them into a PDF (one page per screenshot/text) to upload a full context at once.
- Export them as a ZIP (the chosen subset, separate from the backup ZIP).
- Assign them to a collection.
- Collections β group related clips (e.g. the context of one task) and filter them with a chip.
- Name any item and find it by that name (great for your credentials).
- Type-aware actions: open links π and a color swatch for hex values (
#1E90FF). - Mini credential manager π: detects tokens and API keys when you copy them, stores them masked (π to reveal/copy), with their own filter. They are never auto-pasted (copied so you paste them by hand, for safety).
- Export / import the whole history (images and audio included) as a
.zip. Never includes your API keys.
- Interface available in English, Spanish, French, German, Italian, Portuguese, Chinese (Simplified) and Japanese, switchable in Preferences.
- All local with
0600permissions Β· no telemetry Β· ignores passwords and lets you exclude apps. - Stable signing: macOS asks for permissions (microphone, screen recordingβ¦) once and remembers them across updates.
- Launch at login optional.
| Shortcut | Action |
|---|---|
ββ§E |
Open the history panel |
ββ§I |
Record / stop a voice note |
ββ§U |
Capture and annotate a region (Klip Snap) |
β / β Β· Enter |
Navigate and pick an item |
β1ββ9 |
Pick (and paste) item #1β9 |
Esc |
Close the panel |
ββ§β4 |
(macOS) screenshot to clipboard β also lands in Klip |
All three global shortcuts (
ββ§E,ββ§I,ββ§U) are configurable in Preferences βΊ Shortcuts. A letter (U) is used instead of a number:ββ§2was hijacked by other apps (e.g. Loom), andββ§3/4/5are the system screenshots.
- macOS 14 (Sonoma) or later β tested on macOS 26, Apple Silicon.
- Xcode Command Line Tools (no full Xcode needed):
xcode-select --install
- (Optional) An OpenAI or Google Gemini API key for voice notes. It's stored in a local file, never in the code or the repository.
git clone https://github.com/tamibot/klip.git klip
cd klip
./install.shThat builds Klip, signs it, copies it to /Applications, launches it and registers launch-at-login.
You'll see the π icon in the menu bar. Press ββ§E to open the history.
On first run,
install.shcreates a local signing certificate (Klip Code Signing) in your Keychain so the signature is stable. That way macOS asks for permissions (microphone, accessibility, screen recording) once and remembers them across updates, instead of re-prompting on every reinstall. It's local and reversible (you can delete it from Keychain Access).macOS may ask you to approve the "login item" in Settings βΊ General. For auto-paste, grant Accessibility when prompted (Klip menu β Enable auto-pasteβ¦). The first capture with
ββ§Uwill ask for Screen Recording.
./build.sh # produces Klip.app in the project folder
open Klip.appswift build # debug build
swift run Klip # run directly- Copy anything while you code (code, terminal output, an error message). It all lands in Klip.
ββ§Eβ open the panel. Type to search; use β/β + Enter or click to pick an item (it auto-pastes if you enabled auto-paste).- To paste code into an AI chat, hover the row and hit
</>(copy as code block). ββ§Uβ snip the error/UI from the screen, annotate it (arrow + text) and it lands in Klip. Hover and hit OCR if you want its text.- ποΈ
ββ§Ito dictate a prompt; on stop, it transcribes and lands in the history. - βοΈ Turn on multi-select in the header, mark several screenshots/texts and hit PDF or ZIP to upload them as context to the AI in one go.
Escor a click outside closes the panel.
Open Preferences (β, from the Klip menu):
- Shortcuts β record the combinations you prefer (panel, voice and capture).
- Voice transcription β pick the provider (OpenAI or Google Gemini), model and language.
- OpenAI / Google Gemini β paste the API key for the provider you chose (only that section shows). Stored in a local
0600file. - History β maximum number of items.
- Privacy β ignore passwords/sensitive content, exclude apps.
- Language β interface language.
- Local-first: your history lives in
~/Library/Application Support/Klip/(items.json+images/+audio/). Nothing leaves your Mac except the audio you send to the AI provider you choose (OpenAI or Gemini) to transcribe. - No secrets in the repo: API keys are stored in local files (
openai.key,gemini.key,0600permissions), never in the code or the repository. - The history (
items.json), images and voice-note audio are stored only on your Mac with0600permissions (0700folders). Credential masking is visual; the content lives locally like the rest of the history. - No telemetry.
- Klip ignores content marked as concealed by password managers, and you can exclude specific apps.
- Tokens/API keys you copy are detected and stored masked (π filter).
| File | Responsibility |
|---|---|
main.swift / AppDelegate.swift |
Startup, menu bar, Edit menu, global shortcuts. |
ClipboardManager.swift |
Clipboard monitoring, history, source, privacy, collections. |
ClipboardItem.swift / Storage.swift |
Model and persistence (JSON + images + audio + PDF/ZIP). |
PanelController.swift / HistoryView.swift |
HUD panel and the UI (SwiftUI), multi-select and export. |
SnapController.swift / ScreenCapturer.swift |
Native capture flow (ScreenCaptureKit). |
CaptureOverlayController.swift |
Region-selection overlay (freeze-frame + badge). |
SnapEditorController.swift / AnnotationCanvasView.swift / AnnotationModel.swift |
Annotation editor and annotation model. |
HotKey.swift / Settings.swift |
Shortcuts (Carbon) and preferences (UserDefaults). |
OCR.swift |
Text extraction with Vision. |
Recorder.swift / AudioPlayer.swift |
Recording, background transcription and voice-note playback. |
OpenAIClient.swift / GeminiClient.swift |
Transcription via OpenAI or Google Gemini (selectable provider and model). |
L10n.swift |
Lightweight localization (8 languages). |
SecretStore.swift |
API keys in local 0600 files (openai.key, gemini.key). |
Paster.swift / LoginItem.swift |
Auto-paste and launch-at-login. |
Markdownify.swift |
Markdown conversion and export (local). |
Klip is Mac-only for now. Next up:
- Windows version πͺ β the big next step.
- More type-aware quick actions (emails, numbers).
- Translate / summarize / clean up text with AI.
- Favorites sync Β· optional sync between Macs.
- Developer ID signing + notarization for warning-free distribution.
Already available: text+image history Β· native capture + annotation (Klip Snap) Β· OCR Β· voice notes (OpenAI/Gemini with selectable model) with saved audio and retry Β· copy as code block Β· multi-select + combine into PDF/ZIP Β· collections Β· name and search Β· open links and color swatch Β· Markdown Β· export/import Β· stable signing Β· 8 UI languages.
Contributions are welcome! Open an issue or a pull request. The project builds with just the Command Line Tools (no Xcode), so it's easy to get started. Code and comments are in English to keep the project approachable for everyone.
Created and maintained by Martin Velasco O. β @tamibot.
MIT Β© 2026 Martin Velasco O. β use it, modify it and share it freely.