Cross-platform AI desktop companion — voice, screen context, cursor overlay, background agents, computer use, and a local HTTP bridge. Runs on Windows, Linux, and macOS. Zero cloud dependency.
ClickyX is a Rust + Tauri + React reimplementation of HeyClicky (the leading macOS-only AI desktop companion by Farza Majeed, YC W26) — built from scratch to run natively on all three major desktop platforms with no subscription, no telemetry, and no hosted services.
It is not a chatbot. It is a runtime: system-tray UI, transparent per-screen overlay, localhost:32123 HTTP bridge, Codex agent runtime, computer-use engine, automation scheduler, and a full skill system — all user-owned and locally operated.
git clone https://github.com/unn-Known1/clickyX.git
cd clickyX
npm install
npm run tauri dev # hot-reload dev mode
npm test # Vitest unit tests
npm run tauri build # production binaryArtifacts land in src-tauri/target/release/bundle/:
- Windows —
.msiand.exe - macOS —
.dmgand.app - Linux —
.deband.AppImage
| Category | What's included |
|---|---|
| Voice | Push-to-talk (key-capture, 5 presets), always-on VAD with barge-in suppression, wake word "Hey Clicky", STT (Deepgram/Whisper/AssemblyAI), TTS (ElevenLabs/Cartesia/Edge/Deepgram Aura/OpenAI Realtime/System TTS — offline, no key), drag-to-rotate voice-discovery orbit picker |
| Screen | All-monitor / cursor / focused-window capture via xcap, auto-capture with diff detection, coordinate normalization, multi-monitor per-screen overlay routing |
| Overlay | Animated bezier-arc cursor, 5-ring active-control glow, calibration box, rectangles, scribbles, captions, streaming text bubble, real-amplitude waveform, agent dock, HIGHLIGHT/SHAPE annotation tags, display hotplug detection; pet sprite visible only during active AI operations |
| Agents | Codex Node.js sidecar, session lifecycle, floating HUD window, 63 bundled skills, voice-agent handoff, file drag-drop onto cards |
| Computer Use | enigo-based click/double-click/scroll/type/key on all platforms; background mode (no cursor warp); app-specific CUA context injection |
| Chat | react-markdown + syntax highlighting, conversation sidebar, per-session stream scoping, draft persistence, stop/cancel, drag-drop images, model selector filtered to configured providers |
| Connections | Google Workspace (status shown, OAuth2 setup required), MCP CRUD (real stdio JSON-RPC), automation cron/interval + run history, app usage log |
| Bridge API | 25+ endpoints on localhost:32123 — REST + SSE, token auth, CORS, Anthropic/OpenAI proxy, MCP tool routing (full reference: docs/BRIDGE_API.md) |
| Automations | Cron + interval scheduling, JSON persistence, agent binding, run history |
| 3D Generation | Tripo3D API + Three.js GLB orbit viewer |
| Theming | 6 named accent variants, system/light/dark, semantic CSS tokens |
| i18n | EN, ES, FR, JA via i18next |
| Tests | Vitest unit + Playwright E2E + Playwright visual regression |
┌───────────────────────────────────────────────────────┐
│ System Tray + Floating Panel + Per-Screen Overlay │
│ React 19 · Zustand · react-query · i18next │
├───────────────────────────────────────────────────────┤
│ Rust Backend (src-tauri/src/) │
│ audio/ VAD · STT · TTS · wake word · handoff │
│ ai/ Anthropic · OpenAI · guidance tag parser │
│ agent/ Codex · sessions · 63 skills · dock │
│ screen/ xcap · auto-capture · coordinates │
│ overlay/ cursors · glow · lifecycle · screen router │
│ cua.rs enigo input (native + background mode) │
│ bridge.rs HTTP API 127.0.0.1:32123 │
│ permissions real TCC/registry/pactl checks │
│ automation/ cron + interval scheduler │
├───────────────────────────────────────────────────────┤
│ Frontend (src/) │
│ App.tsx · AppContext · appStore (Zustand) │
│ bindings.ts — typed invoke() wrappers │
│ hooks/ useConfig · useAgents (react-query) │
│ overlay/ OverlayApp — glow · waveform · dock │
└───────────────────────────────────────────────────────┘
Auto-created on first run:
| Platform | Path |
|---|---|
| Linux | ~/.config/clickyx/config.json |
| macOS | ~/Library/Application Support/clickyx/config.json |
| Windows | %APPDATA%/clickyx/config.json |
Full schema: docs/CONFIGURATION.md
Configure keys in Settings → AI Providers:
| Provider | Key format | Notes |
|---|---|---|
| Anthropic | sk-ant-... |
Claude models |
| OpenAI | sk-proj-... |
GPT + realtime voice |
| ElevenLabs | xi-... |
TTS |
| Deepgram | dg-... |
STT WebSocket |
| AssemblyAI | — | STT HTTP |
| NVIDIA / OpenRouter | any | Set custom Base URL under OpenAI section |
localhost:32123 — compatible with OpenClicky's spec.
# Health check
curl http://localhost:32123/health
# Capture screen and get base64 image
curl -X POST http://localhost:32123/screenshot \
-H "x-openclicky-token: YOUR_TOKEN"
# Show cursor at coordinates
curl -X POST http://localhost:32123/cursor \
-H "Content-Type: application/json" \
-d '{"x": 500, "y": 300, "label": "here"}'Full endpoint reference: docs/BRIDGE_API.md
npm install # install JS deps
npm run build # tsc + vite (frontend)
npm test # Vitest unit tests
npm run test:e2e # Playwright E2E
npm run test:visual # visual regression
npm run test:visual:update # update baselines
cargo check # Rust compile check
cargo test --all-features # Rust unit tests
npm run tauri build # full production binary| File | Purpose |
|---|---|
| docs/PROJECT_SPEC.md | Full feature specification, architecture, implementation details |
| docs/CONFIGURATION.md | Complete config schema reference |
| docs/BRIDGE_API.md | localhost:32123 endpoint reference |
| docs/SETUP.md | Developer environment setup |
| AGENTS.md | AI coding agent instructions for this codebase |
| CHANGELOG.md | Version history |
| CONTRIBUTING.md | Contribution guidelines |
| SECURITY.md | Security policy |
Pull requests, bug reports, and feature requests are welcome. See CONTRIBUTING.md.
- Fork the repo
- Create a branch:
git checkout -b feat/your-feature - Commit:
git commit -m 'feat: add ...' - Push and open a PR against
master
MIT — free for personal and commercial use.
- Farza Majeed — for HeyClicky (YC W26), the design and feature reference for ClickyX
- Jason Kneen — for OpenClicky, which defined the
localhost:32123bridge contract - OpenAI Codex team — for the cross-platform Node.js agent runtime
- Tauri team — for making cross-platform native desktop apps in Rust practical
Built with Rust + Tauri + React · Run anywhere · Owned by you