--- license: mit tags: - android - keyboard - ime - clipboard - react - nextjs language: - en --- # CopyVault Keyboard **Search your clipboard like you search the web.** An Android keyboard (IME) that captures everything you copy and lets you search & re-paste it from any app. ## Downloads | File | Size | Description | |------|------|-------------| | [copyvault-keyboard.apk](https://huggingface.co/ryzerrr/copyvault-keyboard/resolve/main/copyvault-keyboard.apk) | 4.5 MB | Pre-built Android APK (ready to install) | | [copyvault-full-project.zip](https://huggingface.co/ryzerrr/copyvault-keyboard/resolve/main/copyvault-full-project.zip) | 1.9 MB | Complete source: web app + Android project | | [copyvault-full-project.tar.gz](https://huggingface.co/ryzerrr/copyvault-keyboard/resolve/main/copyvault-full-project.tar.gz) | 1.3 MB | Same, as tarball | | [BUILD-GUIDE.md](https://huggingface.co/ryzerrr/copyvault-keyboard/resolve/main/BUILD-GUIDE.md) | — | Step-by-step build instructions | ## Install the APK 1. Download `copyvault-keyboard.apk` to your Android phone 2. Tap the file to install (enable "Install from unknown sources" if prompted) 3. Open **Settings → System → Keyboard & Input Method** 4. Enable **CopyVault Keyboard** 5. Set CopyVault as your default keyboard 6. Copy anything anywhere → it's captured to your searchable history 7. Tap any text field → use the **Clipboard** tab to search & paste ## Features - **Searchable clipboard history** — capture everything, search by text/type/source/time - **Smart entity detection** — URLs, emails, phones, OTPs, tracking numbers, crypto addresses, code, colors, passwords - **Three-panel keyboard** — Clipboard / Type (QWERTY) / Emoji - **Trapezium-shaped tabs** — sleek, unique monochrome design - **Themes** — Light / Dark / AMOLED / System - **Incognito mode** — stops capture when enabled - **Snippet templates** — type `;sig` + space → expands to full signature - **Local-only storage** — no cloud, no telemetry - **System clipboard monitoring** — captures clips from any app ## Architecture ``` User types on keyboard ↓ TypingPanel → useUI.typeChar("q") ↓ UI store (imeMode=true) → window.AndroidKeyboard.commitText("q") ↓ WebAppInterface.commitText() → InputConnection.commitText() ↓ Text appears in the active app User copies text anywhere ↓ Android ClipboardManager fires listener ↓ CopyVaultKeyboardService injects JS: window.__copyVaultAddClip(text, "Android") ↓ Zustand store adds clip to history ↓ Clip appears in the Clipboard panel, searchable ``` ## Build from source See [BUILD-GUIDE.md](https://huggingface.co/ryzerrr/copyvault-keyboard/resolve/main/BUILD-GUIDE.md) for complete instructions. Quick version: ```bash bun install BUILD_EXPORT=true bun run build node scripts/fix-assets.js cp -r out/* android-keyboard/app/src/main/assets/ cd android-keyboard echo "sdk.dir=/path/to/Android/Sdk" > local.properties ./gradlew assembleDebug adb install app/build/outputs/apk/debug/app-debug.apk ``` ## Tech stack - **Web app**: Next.js 16, TypeScript 5, Tailwind CSS 4, shadcn/ui, Zustand, Framer Motion - **Android**: Kotlin, InputMethodService, WebView, ClipboardManager ## Requirements - Android 7.0 (API 24) or higher - JDK 17 for building - Android SDK 34 for building ## License MIT