Skip to content

unn-Known1/clickyX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ClickyX

CI/CD Platforms License: MIT Tauri v2 Rust Local-First Telemetry

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.


What is ClickyX?

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.


Quick Start

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 binary

Artifacts land in src-tauri/target/release/bundle/:

  • Windows.msi and .exe
  • macOS.dmg and .app
  • Linux.deb and .AppImage

Feature Overview

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

Architecture

┌───────────────────────────────────────────────────────┐
│  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         │
└───────────────────────────────────────────────────────┘

Configuration

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


AI Providers

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

External HTTP Bridge

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


Build & Test

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

Documentation

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

Contributing

Pull requests, bug reports, and feature requests are welcome. See CONTRIBUTING.md.

  1. Fork the repo
  2. Create a branch: git checkout -b feat/your-feature
  3. Commit: git commit -m 'feat: add ...'
  4. Push and open a PR against master

License

MIT — free for personal and commercial use.


Acknowledgments

  • Farza Majeed — for HeyClicky (YC W26), the design and feature reference for ClickyX
  • Jason Kneen — for OpenClicky, which defined the localhost:32123 bridge 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