# Olive Olive is a private Microsoft PowerToys Command Palette extension. It searches animated GIFs with Klipy and allow you to quickly the one that suits you best! ## Requirements - Windows 10/11 with PowerToys and Command Palette enabled. - .NET SDK 10. - Windows SDK `10.0.22621.0` or a compatible newer SDK. - A Klipy API key. ## Klipy API Key Olive stores the Klipy key locally in its Command Palette settings. Do not put the key in source code, Git, environment variables, or the package. To configure it, open Command Palette, open the context commands for `Olive GIF Picker`, open Olive settings, paste the key into `Klipy API key`, then save. ## Build ```powershell dotnet build .\Olive.sln -c Debug -p:Platform=x64 ``` ## Package ```powershell .\scripts\Build-OlivePackage.ps1 ``` Or double-click: ```text scripts\Build-OlivePackage.cmd ``` This creates the shareable package in `dist\OlivePackage`. The private signing file is exported to `dist\private\OlivePrivate.pfx`. Do not share it unless the recipient must be able to sign Olive builds. ## Install From `dist\OlivePackage`: ```powershell .\Install-Olive.ps1 ``` Or double-click: ```text Install-Olive.cmd ``` The script asks for administrator rights, imports `OlivePrivate.cer` into `Cert:\LocalMachine\Root`, then opens the `.msix` with Windows App Installer. Restart PowerToys after installation. ## Uninstall From `dist\OlivePackage` or `scripts\`: ```powershell .\Uninstall-Olive.ps1 ``` Or double-click: ```text Uninstall-Olive.cmd ``` By default, uninstall removes the Olive package, the Olive certificate from `Cert:\LocalMachine\Root`, local settings, cached GIFs, and MSIX user data. Use `-KeepCertificate` to keep the certificate. Use `-KeepUserData` to keep local settings and cached GIFs. ## Usage 1. Open PowerToys Command Palette. 2. Launch `Olive GIF Picker`. 3. Search for a GIF. 4. Select a result with Enter. 5. Paste with Ctrl+V in an app that accepts animated GIF files. ## Sharing - Share only `dist\OlivePackage`. - Do not share `dist\private\OlivePrivate.pfx`. - Do not include the Klipy API key in the package. - Each user must set the Klipy key in Olive settings. ## Notes - Olive copies GIFs as files to preserve animation. - Some apps may reject file pasting or use fallback text only. - Cached GIFs are stored in `%LOCALAPPDATA%\Olive\Cache`.