Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -1,68 +1,103 @@
|
|
| 1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
|
| 3 |
-
|
| 4 |
|
| 5 |
-
|
| 6 |
|
| 7 |
-
|
| 8 |
|
| 9 |
-
|
| 10 |
-
-
|
| 11 |
-
-
|
| 12 |
-
|
| 13 |
-
|
|
|
|
| 14 |
|
| 15 |
-
##
|
| 16 |
|
| 17 |
-
``
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
|
|
|
|
|
|
| 22 |
|
| 23 |
-
##
|
| 24 |
|
| 25 |
-
-
|
| 26 |
-
-
|
| 27 |
-
-
|
| 28 |
-
-
|
| 29 |
-
-
|
| 30 |
-
-
|
| 31 |
-
-
|
|
|
|
|
|
|
| 32 |
|
| 33 |
-
##
|
| 34 |
|
| 35 |
```
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
βββ store.ts # Zustand store
|
| 56 |
-
βββ seed.ts # Demo data
|
| 57 |
-
βββ entities.ts # Entity detection
|
| 58 |
-
βββ types.ts
|
| 59 |
-
βββ search.ts
|
| 60 |
```
|
| 61 |
|
| 62 |
-
##
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
|
| 64 |
-
|
|
|
|
|
|
|
| 65 |
|
| 66 |
-
##
|
| 67 |
|
| 68 |
-
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
tags:
|
| 4 |
+
- android
|
| 5 |
+
- keyboard
|
| 6 |
+
- ime
|
| 7 |
+
- clipboard
|
| 8 |
+
- react
|
| 9 |
+
- nextjs
|
| 10 |
+
language:
|
| 11 |
+
- en
|
| 12 |
+
---
|
| 13 |
|
| 14 |
+
# CopyVault Keyboard
|
| 15 |
|
| 16 |
+
**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.
|
| 17 |
|
| 18 |
+
## Downloads
|
| 19 |
|
| 20 |
+
| File | Size | Description |
|
| 21 |
+
|------|------|-------------|
|
| 22 |
+
| [copyvault-keyboard.apk](https://huggingface.co/ryzerrr/copyvault-keyboard/resolve/main/copyvault-keyboard.apk) | 4.5 MB | Pre-built Android APK (ready to install) |
|
| 23 |
+
| [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 |
|
| 24 |
+
| [copyvault-full-project.tar.gz](https://huggingface.co/ryzerrr/copyvault-keyboard/resolve/main/copyvault-full-project.tar.gz) | 1.3 MB | Same, as tarball |
|
| 25 |
+
| [BUILD-GUIDE.md](https://huggingface.co/ryzerrr/copyvault-keyboard/resolve/main/BUILD-GUIDE.md) | β | Step-by-step build instructions |
|
| 26 |
|
| 27 |
+
## Install the APK
|
| 28 |
|
| 29 |
+
1. Download `copyvault-keyboard.apk` to your Android phone
|
| 30 |
+
2. Tap the file to install (enable "Install from unknown sources" if prompted)
|
| 31 |
+
3. Open **Settings β System β Keyboard & Input Method**
|
| 32 |
+
4. Enable **CopyVault Keyboard**
|
| 33 |
+
5. Set CopyVault as your default keyboard
|
| 34 |
+
6. Copy anything anywhere β it's captured to your searchable history
|
| 35 |
+
7. Tap any text field β use the **Clipboard** tab to search & paste
|
| 36 |
|
| 37 |
+
## Features
|
| 38 |
|
| 39 |
+
- **Searchable clipboard history** β capture everything, search by text/type/source/time
|
| 40 |
+
- **Smart entity detection** β URLs, emails, phones, OTPs, tracking numbers, crypto addresses, code, colors, passwords
|
| 41 |
+
- **Three-panel keyboard** β Clipboard / Type (QWERTY) / Emoji
|
| 42 |
+
- **Trapezium-shaped tabs** β sleek, unique monochrome design
|
| 43 |
+
- **Themes** β Light / Dark / AMOLED / System
|
| 44 |
+
- **Incognito mode** β stops capture when enabled
|
| 45 |
+
- **Snippet templates** β type `;sig` + space β expands to full signature
|
| 46 |
+
- **Local-only storage** β no cloud, no telemetry
|
| 47 |
+
- **System clipboard monitoring** β captures clips from any app
|
| 48 |
|
| 49 |
+
## Architecture
|
| 50 |
|
| 51 |
```
|
| 52 |
+
User types on keyboard
|
| 53 |
+
β
|
| 54 |
+
TypingPanel β useUI.typeChar("q")
|
| 55 |
+
β
|
| 56 |
+
UI store (imeMode=true) β window.AndroidKeyboard.commitText("q")
|
| 57 |
+
β
|
| 58 |
+
WebAppInterface.commitText() β InputConnection.commitText()
|
| 59 |
+
β
|
| 60 |
+
Text appears in the active app
|
| 61 |
+
|
| 62 |
+
User copies text anywhere
|
| 63 |
+
β
|
| 64 |
+
Android ClipboardManager fires listener
|
| 65 |
+
β
|
| 66 |
+
CopyVaultKeyboardService injects JS: window.__copyVaultAddClip(text, "Android")
|
| 67 |
+
β
|
| 68 |
+
Zustand store adds clip to history
|
| 69 |
+
β
|
| 70 |
+
Clip appears in the Clipboard panel, searchable
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
```
|
| 72 |
|
| 73 |
+
## Build from source
|
| 74 |
+
|
| 75 |
+
See [BUILD-GUIDE.md](https://huggingface.co/ryzerrr/copyvault-keyboard/resolve/main/BUILD-GUIDE.md) for complete instructions.
|
| 76 |
+
|
| 77 |
+
Quick version:
|
| 78 |
+
```bash
|
| 79 |
+
bun install
|
| 80 |
+
BUILD_EXPORT=true bun run build
|
| 81 |
+
node scripts/fix-assets.js
|
| 82 |
+
cp -r out/* android-keyboard/app/src/main/assets/
|
| 83 |
+
|
| 84 |
+
cd android-keyboard
|
| 85 |
+
echo "sdk.dir=/path/to/Android/Sdk" > local.properties
|
| 86 |
+
./gradlew assembleDebug
|
| 87 |
+
adb install app/build/outputs/apk/debug/app-debug.apk
|
| 88 |
+
```
|
| 89 |
+
|
| 90 |
+
## Tech stack
|
| 91 |
+
|
| 92 |
+
- **Web app**: Next.js 16, TypeScript 5, Tailwind CSS 4, shadcn/ui, Zustand, Framer Motion
|
| 93 |
+
- **Android**: Kotlin, InputMethodService, WebView, ClipboardManager
|
| 94 |
+
|
| 95 |
+
## Requirements
|
| 96 |
|
| 97 |
+
- Android 7.0 (API 24) or higher
|
| 98 |
+
- JDK 17 for building
|
| 99 |
+
- Android SDK 34 for building
|
| 100 |
|
| 101 |
+
## License
|
| 102 |
|
| 103 |
+
MIT
|