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.8.2.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.8.2-py3-none-any.whl (2.4 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for jacky-0.8.2.tar.gz
Algorithm Hash digest
SHA256 9e551291ec9177c050ce7a20d139b87f517e130f8d7375672a4064ad13c01a29
MD5 7dcb73991206cc2f245627c6dd130182
BLAKE2b-256 c74392928e052e01e315fa37547b391229a4366f5b0fcba5961ba32f3b5d8ab4

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacky-0.8.2.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.8.2-py3-none-any.whl.

File metadata

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

File hashes

Hashes for jacky-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 413dbc1b1aeb4fb97d09eb27e851ca91a5fbebe134bdff2f1c45ca0f16155da8
MD5 1285c77d47c3210b6a380cd9c9e2d611
BLAKE2b-256 85525283efa9de5257219343e1c257c8ad98b1fd1e80a63625f99664d0a2f5ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacky-0.8.2-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