Skip to main content

A local, privacy-first, English-only voice assistant.

Project description

Jack

Your Mac, with a voice. Entirely on-device.

CI codecov Latest release Downloads License Stars Platform Views

Website · Docs · Download


Jack is a privacy-first voice & chat assistant for macOS. You talk to a floating orb (or type in a chat drawer); it listens, understands, and acts on your Mac — open apps and websites, find and open files, check battery/Wi-Fi/disk, remember things about you, empty the Trash. Everything runs locally: no audio, text, or memory leaves your machine, with two clearly-marked, opt-in exceptions (web search and an optional cloud LLM). English only.

Highlights

  • Chat or voice — type in the chat drawer (the default), or enable voice and say “jack, …” for hands-free (push-to-talk also supported).
  • Acts through a permission gate — read-only tools run straight through, destructive ones ask first, and every action is audited. The model plans; the gate executes — it never runs a tool blindly.
  • Hands on your Mac — app & web control, on-device file search (open / reveal in Finder), system info, and local memory.
  • Local by default, cloud optional — runs fully on-device with Ollama, or switch to Claude (disclosed, opt-in).

→ Full feature tour, the orb's states, and how it works: jack's website.

Quickstart

Download (recommended): grab the latest .dmg from Releases — a single, self-contained app. It's an unsigned dev preview, so the first launch is right-click JackOpen. Voice models download on demand the first time you enable voice.

Build from source (macOS, Apple Silicon):

brew install uv ollama
ollama serve && ollama pull qwen3:8b   # local LLM, one time
make setup                              # dev env + git hooks
make run                                # the engine/daemon

Then build the orb from ui/orb-shell (cargo tauri dev). Full setup, configuration, permissions, and troubleshooting live in Getting started.

Install the coding CLI

No Python needed — one command downloads a self-contained jack binary.

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/mdjakkariya/jacky/main/install.sh | sh

Windows (PowerShell)

irm https://raw.githubusercontent.com/mdjakkariya/jacky/main/install.ps1 | iex

Then run jack inside a project. You'll need an LLM backend: set a cloud key with jack config (Anthropic/OpenAI — you pay the provider), or install Ollama and pull a model to run fully local.

Update: jack checks once a day and prints a notice when a new version ships — run jack update to upgrade in place. jack --version shows the current version.

Architecture

A headless Python engine + a macOS orb / chat client (Tauri) that talks to it over a localhost WebSocket. A pipeline of swappable stages drives one turn:

AudioSource ─▶ SpeechToText ─▶ LanguageModel ─plan─▶ PermissionGate ─▶ ToolRegistry
 wake+VAD/PTT   whisper         Ollama / Claude       risk·confirm·audit  apps·web·files·system
                                                                                  │
                              TextToSpeech (Piper) ◀──────── reply ◀──────────────┘

Diagram: docs/architecture/architecture.svg. Engineering conventions and the full design rationale are in CLAUDE.md.

Star history

Star history chart for mdjakkariya/jacky

Contributing

Contributions are welcome — see CONTRIBUTING.md for the workflow (open an issue first, make check, Conventional Commits, DCO sign-off) and CODE_OF_CONDUCT.md.

Sponsor

Jack is built in my free time. If it's useful to you, sponsoring helps me keep going via GitHub Sponsors — or buy me a chai:

Buy Me A Chai

License

Created and maintained by Mohamed Jakkariya (@mdjakkariya). Licensed under Apache-2.0 — see LICENSE and NOTICE. You're free to use, modify, and build on Jack; please keep the attribution.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jacky-0.9.0.tar.gz (2.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jacky-0.9.0-py3-none-any.whl (2.5 MB view details)

Uploaded Python 3

File details

Details for the file jacky-0.9.0.tar.gz.

File metadata

  • Download URL: jacky-0.9.0.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for jacky-0.9.0.tar.gz
Algorithm Hash digest
SHA256 003194beff93b14a5e6e8c8e0ae06baec2c4ef4ba595602a3d7f8cc5e6cec688
MD5 41c2e192a5228a232ebb9d41974d5a01
BLAKE2b-256 8db9d28d85e336d0b870946ea0ef825323668c5858c86c5312959a9abb96a6bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacky-0.9.0.tar.gz:

Publisher: release.yml on mdjakkariya/jacky

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jacky-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: jacky-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for jacky-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 18d48af8e0b7291492b0aae95e15ead9238ccf0444acd512fce9f0fe1c0e1d62
MD5 51dd9265936cd3cfc8515400fdd09e2f
BLAKE2b-256 29bd9ee7964c975e8b9046e98276495146bfd89bcaab1678a4429c1fc2b9b9a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacky-0.9.0-py3-none-any.whl:

Publisher: release.yml on mdjakkariya/jacky

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page