context-ware floating secretary
Thuki
A floating AI secretary for macOS. Double-tap Control to summon a spotlight-style overlay anywhere, even over fullscreen apps. It runs entirely on your Mac with its own built-in engine: private, with no cloud and no API keys.
Free and open source.
Thuki (thư kí, Vietnamese for secretary) is a lightweight macOS overlay powered by local AI models running entirely on your own machine, built for quick, uninterrupted asks without ever leaving what you're doing.
Thuki is in maintenance mode. The app is stable, free, and fully open source, and it keeps doing everything described below.
My focus has moved to other early-stage products, so new feature work has stopped. What continues:
If Thuki is part of your workflow it will keep working, and the Apache 2.0 license means you are free to fork it and take it further.
Requirements: macOS 13.4 (Ventura) or later, Apple Silicon (M1-M5).
curl -fsSL https://thuki.app/install.sh | shDownloads the latest Thuki.dmg over HTTPS, verifies its RSA-4096 signature with the openssl already on your Mac, and installs it to /Applications.
Other paths: inspect the script · manual DMG · Nightly · build from source.
Most local AI tools are a place you go. Thuki is a key you press.
/screen attaches your whole desktop as visual context for any vision-capable model.Always one keystroke away Double-tap Control from any app, even fullscreen.
Highlight, then ask Select text, double-tap, it arrives as a quote.
Capture your screen /screen attaches your whole desktop as context.
Built-in web search Keyless and cited. /search forces a lookup.
On-device model library Download any GGUF, switch from the ask bar.
Just a slash, zero menus Every task is a verb. No dropdowns, no settings.
Thuki runs models through a provider. The built-in engine is the default; Ollama is there if you'd rather bring your own.
A bundled llama.cpp llama-server that Thuki spawns, supervises, and shuts down for you. Download GGUF models such as Llama, Gemma, and Qwen from the Hugging Face Hub right inside the app, then switch between them from the ask bar. No accounts, no API keys, no cost per query.
Thuki can also run inference through an external provider instead of the built-in engine.
See docs/models-and-providers.md for the full model library and provider guide.
Inference runs on-device, so your prompts, context, and replies never leave your Mac. There is no Thuki account, no API key, no cloud backend, and no telemetry. Conversation history lives in a local SQLite database on your machine; delete a conversation and it is gone. Outbound network use is limited to model downloads from Hugging Face and web search (Auto search and/or /search); both search paths can be turned off or avoided. See docs/privacy.md.
Tauri v2 (Rust backend, React and TypeScript frontend) with a bundled llama.cpp llama-server engine bound to 127.0.0.1 and killed on quit. The pinned engine release is sha256-verified at build time and every model download is checked against a pinned Hugging Face revision. See docs/models-and-providers.md for engine internals and SECURITY.md for the full security posture.
Thuki works on sensible defaults out of the box. Tweak anything from the in-app Settings panel (open it from the menu-bar icon) or by editing the TOML file at ~/Library/Application Support/com.quietnode.thuki/config.toml; both write to the same place.
See docs/configurations.md for the full schema, docs/commands.md for the slash command reference, docs/built-in-web-search.md for the built-in search design handbook, and docs/troubleshooting.md when something goes wrong.
Contributions are welcome! Read CONTRIBUTING.md to get started, and follow the Code of Conduct.
Community-maintained Windows ports: ThukiWin and Mate.
Copyright 2026 Logan Nguyen. Licensed under the Apache License, Version 2.0.
No open issues yet, or sync has not completed.