| Crates.io | keyhook |
| lib.rs | keyhook |
| version | 0.1.0 |
| created_at | 2025-06-08 10:56:30.534796+00 |
| updated_at | 2025-06-08 10:56:30.534796+00 |
| description | ⌨️ Global Hotkeys → Webhooks — one desktop app to trigger any HTTP request. |
| homepage | https://github.com/lvillis/keyhook |
| repository | https://github.com/lvillis/keyhook |
| max_upload_size | |
| id | 1704781 |
| size | 399,891 |
🇺🇸 English · 🇨🇳 中文 | Table of Contents ↗️
keyhook⌨️ Global Hotkeys → Webhooks — one desktop app to trigger any HTTP request.
| Capability | Details |
|---|---|
| 🔑 Global shortcuts | System-wide hotkeys registered via tauri-plugin-global-shortcut. |
| 🌐 Webhook actions | Fire GET, POST, PUT, DELETE, or PATCH requests (optional JSON body, 8 s timeout). |
| 🎛 Live GUI | Yew + Trunk single-page app for adding, editing, deleting rules. |
| 💾 Persistent config | Rules saved to a pretty-printed keyhook.json in the user-specific app-config directory. |
| 🪟 Tray mode | Runs in the system tray, auto-hides the main window, quit & show options. |
| 📜 Structured logs | tracing output to console with UTC timestamps and log-level filtering (KEYHOOK_LOG). |
| 📦 Portable build | One binary per OS (tauri bundle), no runtime dependencies apart from system webview. |
graph LR
subgraph "KeyHook (Desktop App)"
GSL[Global Shortcut\nListener]
RE[Rule Engine]
HTTP[[HTTP Client]]
end
U[User] -->|Hotkey| GSL --> RE --> HTTP
HTTP --> REST[(REST API)]
HTTP --> N8n[(n8n Workflow)]
HTTP --> Zapier[(Zapier)]
HTTP --> Script[(Custom Script)]