Ebbe's Meme Clipboard
A meme and GIF picker for Windows, inspired by the built-in Windows Emoji Picker (Win+.).
Press a global hotkey anywhere, a small popup appears, search your memes or Giphy, click one — and it lands straight in whatever app you were just typing in. It lives in the system tray and stays out of the way until you need it.
Features
- Global hotkey — opens the picker over any app. Defaults to Ctrl+Alt+M, fully remappable (the Win key works too, e.g. Win+Y).
- Your own meme library — add images by clicking +, dragging files onto the window, or simply pasting with Ctrl+V. Supports JPG, PNG and GIF.
- Giphy search — a second tab searches Giphy directly (needs a free API key, see below). Scroll and it keeps loading more results. You can also paste a Giphy link straight into the search box to jump to that one GIF.
- Favourites — right-click any meme to pin it to a ★ Favourites row at the top of that tab. Kept separately per source.
- Three insert modes — copy to clipboard, paste into the active window, or paste and send instantly.
- Animated GIFs stay animated — the clipboard is written in several formats at once so GIFs paste as real animations in Discord, Slack and Teams, rather than as a flattened still frame.
- Search as you type — filters your library by filename; Giphy results are debounced so typing doesn't burn through the API rate limit.
- Runs from the tray — optional start-with-Windows, and a movable, dismiss-on-click-away popup.
Installation
Installer (recommended) — run EbbesMemeClipboard-Setup-<version>.exe. It installs per-user by
default (no admin prompt) but lets you choose "just me" or "all users", and offers optional desktop
and start-with-Windows shortcuts.
Portable — grab EbbesMemeClipboard.exe and run it. No installation, no .NET runtime needed;
everything is bundled. It'll write its library and settings to %AppData% as usual.
Windows may show a SmartScreen warning on first run, because the executable isn't code-signed. Choose More info → Run anyway. Signing requires a paid certificate from a certificate authority.
Usage
| Action | How |
|---|---|
| Open / close the picker | Ctrl+Alt+M, or left-click the tray icon |
| Insert a meme | Click it |
| Add memes | + button, drag files in, or Ctrl+V |
| Favourite / unfavourite | Right-click a meme |
| Delete a meme | Right-click → Remove (goes to the Recycle Bin) |
| Search | Just start typing |
| Move the window | Drag the title bar |
| Close the picker | Esc, or click elsewhere |
| Settings / quit | Right-click the tray icon |
Pasting plain text into the window still goes to the search box — only images get imported.
Insert modes
Set these under Settings → Insert Mode:
- Copy to clipboard — just copies; you paste it yourself.
- Paste into active window (default) — restores focus to the app you came from and pastes for you.
- Paste and send instantly — the above, plus Enter. Handy in chat apps, but it will send the message immediately, so it's off by default.
Giphy setup
The Giphy tab needs your own free API key:
- Go to developers.giphy.com, create an account and an app, and choose API Key.
- Paste the key into Settings → Giphy.
The free tier allows 100 requests per hour, which is plenty for personal use. Giphy's terms require the "Powered by GIPHY" attribution shown in the app whenever their results are displayed.
You can also paste a Giphy link into the search box — share links
(giphy.com/gifs/funny-cat-<id>), direct media links (media.giphy.com/media/<id>/giphy.gif)
and i.giphy.com image links all work, and resolve to that single GIF.
Where your data lives
%AppData%\EbbesMemeClipboard\
settings.json hotkey, insert mode, Giphy API key
favorites.json favourites, per source
Library\ your imported memes + an index
%LocalAppData%\EbbesMemeClipboard\
GifCache\ downloaded Giphy GIFs (re-downloadable; safe to delete)
Uninstalling deliberately leaves your memes, favourites and settings in place — only the re-downloadable cache is cleared.
Known limitations
- The popup appears at the mouse cursor, not the text caret. The real Emoji Panel can follow the caret because it's a privileged part of the Windows shell; third-party apps have no equivalent access.
- Auto-paste doesn't work into apps running as administrator. Windows blocks a normal program from sending input to an elevated window (UIPI). The meme is still copied — just press Ctrl+V yourself.
- No single-instance guard yet. If two copies run at once they'll compete for the global hotkey. Worth checking you don't have both a Startup shortcut and the autostart setting enabled.
- Windows only. See below.
Building from source
Requires the .NET 10 SDK.
# run it
dotnet run --project src/EbbesMemeClipboard
# portable single exe -> publish/
dotnet publish src/EbbesMemeClipboard/EbbesMemeClipboard.csproj -c Release -r win-x64 \
--self-contained true -p:PublishSingleFile=true \
-p:IncludeNativeLibrariesForSelfExtract=true -p:EnableCompressionInSingleFile=true \
-o publish
To build the installer you'll also need Inno Setup 6. Note the publish step deliberately disables .NET's own compression, so Inno's LZMA2 can compress the raw bytes instead — that yields a noticeably smaller setup and a faster-starting app:
dotnet publish src/EbbesMemeClipboard/EbbesMemeClipboard.csproj -c Release -r win-x64 \
--self-contained true -p:PublishSingleFile=true \
-p:IncludeNativeLibrariesForSelfExtract=true -p:EnableCompressionInSingleFile=false \
-o publish-installer
"%LocalAppData%\Programs\Inno Setup 6\ISCC.exe" installer\EbbesMemeClipboard.iss
Tech stack
.NET 10 · WPF · MVVM (CommunityToolkit.Mvvm) ·
H.NotifyIcon for the tray icon ·
Microsoft.Extensions.DependencyInjection
Platform support
Windows only, and not portable without a rewrite. WPF doesn't exist on macOS or Linux, and the features that make the app work — global hotkeys, synthetic paste, tray icon, clipboard formats, autostart — are all built directly on Win32. The data and business-logic layer would carry over to a cross-platform UI framework such as Avalonia, but every platform-integration service and the entire UI would need reimplementing.