Skip to content

Your Mac, by voice.

Say jarhead, pass Touch ID, then tell it what to do on your Mac.

MIT · $0.05 / min, per second

It sleeps until you say “Hey, jarhead.”

Asleep it listens on-device for one word.

  • Speaker verification is not attempted.
gate
gate
  • Touch ID
  • Apple Watch
  • the Mac password
  • a passphrase
Hold

 

Codex, Claude Code, a key, or a model on your Mac.

You pick the brain in Settings.

  • Every brain runs under the same policy, though a local one gets fewer tools.
Listening
Unambiguous commands reach the hands in milliseconds.3 ms
The voice hands tasks to the brain.7.0 s
Hands
Save

 

Tasks run side by side, each with its own brain.

Up to three run beside the main one.

Listening
SlackSlack asks: send "I'm running late" to Ben?00:06 · screen

send I'm running late to Ben?

Slack asks before it sends.Stop the Slack one needs no model call.

Spotifydone00:06 · background

Spotify runs in the background by Apple events.

It finds the label, clicks it and checks a screenshot.

The hands are a Swift helper.

  • The blob moves to where the hands act.
  • Circle anything with ⌃⌥C and every brain is told where it is.
Listening
SaveSave

A screenshot checks the work.

It knows what to just do and when to ask first.

It says the reason out loud, and no tool gets an exception.

  • On-screen text is never an instruction.

A spoken yes covers one action once.

run

Click Save runs.

confirmask every time
paydeletepostpurchase

A remembered yes never covers them.

refuseNEVER
  • mkfs
  • diskutil erase
  • dd onto a device
  • shutdown
  • rm -rf / or ~
  • Other apps' TCC resets
  • Every secret store

You say it once, it never forgets.

Alarms, timers, watchers and routines fire while it sleeps.

  • Nothing fires while Jarhead is quit.
Asleep$0 the voice, asleep
  • Alarms07:10 · Wake up, Kevinweekdays
  • timers11:56 · pasta
  • watchers
  • routines

No session. The voice bills nothing.

Measured on one Mac and logged with dates.

The harnesses are in the repo.

  • Reflex rows ran on pnpm jarhead bench, 2026-09-11.
  • The spoken reply is Agora's measurement, 2026-07-09.
  • Model rows ran real Codex, canned hands, 2026-09-12.
  1. ear final to hands dispatch, median3 msn = 50
  2. prefire partials, p95126 msn = 20
  3. careful partials, p95457 msn = 30
  4. GPT-Live-1 spoken reply, median1.11 sn = 30
  5. delegation to first visible action, median4.5 sn = 6
  6. delegation to verified completion, median9.0 sn = 10

It's five cents a minute and nothing asleep.

It counts by the second, and Pause or Stop closes the session.

  • Codex runs on your ChatGPT plan.
  • A local brain is free, but the voice still bills.
$0.367.2 min

It takes four commands, then you say jarhead.

One line clones the repo and runs four commands.

Requirements

  • macOS 14.5 or newer on Apple silicon
  • Xcode 16 or newer
  • Node 24 or newer and pnpm 10
  • An OpenAI API key for the voice
  • A brain you are already signed in to
  • A Code Signing certificate, optional

A self-signed certificate is enough, and without one every rebuild resets the permission grants.

curl -fsSL https://jarhead.kevinliu.studio/install.sh | sh

It never writes your keys. Read it first at https://jarhead.kevinliu.studio/install.sh

  • git clone https://github.com/Kevin-Liu-01/Jarhead.git && cd Jarhead
  • pnpm install --filter '!./site' && pnpm build:hands
  • pnpm build:macbuilds, signs, installs /Applications/Jarhead.app
  • open -a JarheadSetup opens: your OpenAI key, a brain, permissions