keyhook

Crates.iokeyhook
lib.rskeyhook
version0.1.0
created_at2025-06-08 10:56:30.534796+00
updated_at2025-06-08 10:56:30.534796+00
description⌨️ Global Hotkeys → Webhooks — one desktop app to trigger any HTTP request.
homepagehttps://github.com/lvillis/keyhook
repositoryhttps://github.com/lvillis/keyhook
max_upload_size
id1704781
size399,891
(lvillis)

documentation

https://github.com/lvillis/keyhook/blob/main/README.md

README

🇺🇸 English · 🇨🇳 中文       |      Table of Contents ↗️

keyhook

⌨️ Global Hotkeys → Webhooks — one desktop app to trigger any HTTP request.

Crates.io Repo Size CI Say Thanks


✨ Features

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.

🕸 Architecture

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)]
Commit count: 35

cargo fmt