How to Run Claude Code With Siri: Hands-Free Voice Control From Your iPhone
A step-by-step guide to running Claude Code with Siri: one install command, one click to add the shortcut and three iPhone settings, then "Hey Siri, Jarvis" works from your iPhone, AirPods or CarPlay. Plus how the shortcut works and how to fix common problems.
- Published
- Reading time
- 6 min read

On this page
TL;DR: You can run Claude Code with Siri: say "Hey Siri, Jarvis", ask a question about your code or your day, and hear Claude Code's answer, with no screen and no typing. This step-by-step guide uses carcode, an open-source tool that creates the Siri Shortcut for you and connects it to Claude Code on your Mac. Setup takes about five minutes: one install command, one click to add the shortcut, and three iPhone settings. At the end there's a breakdown of how the shortcut works, if you'd rather understand it or build your own.

What You'll Have at the End
You Hey Siri, Jarvis
Jarvis Hello Boss, I'm ready for work.
You Any pull requests waiting on me?
Jarvis Two. The metering one has green CI and one approval.
You Bye.It works anywhere Siri does: your iPhone, AirPods, and Apple CarPlay in the car. "Jarvis" is just the default name; you can call it anything.
Who this is for: developers who already use Claude Code in the terminal and want to reach it by voice. You don't need to know anything about Siri Shortcuts.
Prerequisites
- A Mac that stays on. Claude Code runs there, with your repos and logins. A desktop Mac, or a laptop that's plugged in with sleep turned off, both work.
- Claude Code, installed and logged in. If you haven't yet:
curl -fsSL https://claude.ai/install.sh | bash, then runclaudeonce to sign in. - An iPhone signed in to the same iCloud account as the Mac, so the shortcut syncs.
- Node.js for the one-line installer. No Node? There's a
curlinstaller in Step 1.
There's no API key to set up. carcode uses the Claude Code login you already have.
Step 1: Install carcode
On your Mac, run:
npx carcode-cliThe installer:
- 01Checks your Mac and offers to install
uvandcloudflaredwith Homebrew if they're missing. - 02Asks which folder holds your repos (for example
~/code), what to call the assistant and what it should call you. - 03Starts two background services: the carcode server, and a secure tunnel so your phone can reach your Mac over mobile data.
- 04Builds a signed Siri Shortcut with your private access token, and opens it in the Shortcuts app.
Without Node, use the shell installer instead:
curl -fsSL https://raw.githubusercontent.com/Harsh-Rastogi-03/carcode/main/install.sh | bashYou can also hand the job to Claude Code itself. Paste this into a Claude Code session and it runs the installer and checks the result:
Install carcode for me: https://github.com/Harsh-Rastogi-03/carcode
Follow the steps in its AGENTS.md.Step 2: Check It Works Before Touching Your Phone
npx carcode-cli doctordoctor checks every piece (Claude Code, the server, the tunnel, the shortcut) and prints the fix for anything that's wrong. Then send a real message:
npx carcode-cli say "what can you do?"Or have a whole spoken conversation in the terminal, with the Mac's voice reading the answers:
npx carcode-cli talkIf talk works, Siri will too: it's the same server.
Step 3: Add the Shortcut
In the Shortcuts window the installer opened, click Add Shortcut. iCloud syncs it to your iPhone in about a minute. Open the Shortcuts app on your iPhone to check it's there.
Tip: if you ever have two shortcuts with the same name, delete the older one. Siri may run the wrong one.
Step 4: Three iPhone Settings That Matter
These three settings make the biggest difference to how it feels:
| Setting | Where | Why |
|---|---|---|
| Allow Siri When Locked | Settings → Siri | So it works with the phone in a mount or in your pocket |
| Siri Responses: Prefer Spoken Responses | Settings → Siri | Otherwise a phone on silent shows the answer instead of saying it |
| Siri Pause Time: Longest | Settings → Accessibility → Siri | Dictation stops at the first pause; this gives you more time to finish a sentence |
carcode also handles cut-off sentences on its own. If you trail off ("Check the latest message from..."), it replies "Go on" and joins the two halves before sending them to Claude Code.
Step 5: Say It
"Hey Siri, Jarvis."
You'll hear the greeting, then it listens. Ask something, hear the answer, and it listens again, until you say "bye".
A few words it understands on its own:
| Say | What happens |
|---|---|
| "Status" | What it's working on, or "Nothing running" |
| "Cancel" | Stops the current job |
| "New session" | Starts a fresh Claude Code conversation |
| "Bye" / "That's all" | Ends the shortcut |
For a list of things worth asking, see 25 Things to Ask Claude Code on Your Commute.
Make It Yours
Settings live in .env in the carcode folder (npx carcode-cli where prints it). After changing the name, greeting or language, rebuild the shortcut with npx carcode-cli shortcut.
| Setting | Default | Example |
|---|---|---|
CARCODE_NAME | Jarvis | Friday: you'd say "Hey Siri, Friday" |
CARCODE_USER_TITLE | Boss | Your name |
CARCODE_GREETING | Hello Boss, I am ready for work. | Anything short |
CARCODE_LANGUAGE | en-US | en-GB, en-IN, en-AU for better dictation |
Pick a name Siri won't confuse with a contact, an app or a built-in command. A short, distinctive word works best.
You can also teach it about your world in prompts/context.local.md: your GitHub username, which repo "the app" means, who your teammates are. Then "message Alex" or "check the app repo" work the first time.
How the Shortcut Works
If you want to understand it, or build your own, here's what carcode generates. It's a loop of standard Shortcuts actions:
| # | Action | Detail |
|---|---|---|
| 1 | Speak Text | The greeting |
| 2 | Repeat (up to 30 times) | One turn of the conversation each time |
| 3 | Dictate Text | Stops listening after a pause |
| 4 | Get Contents of URL | POST to your Mac with a JSON body: what you said, plus an X-Carcode-Token header |
| 5 | Speak Text | The speak field of the reply |
| 6 | If end is set | Stop the shortcut (you said "bye") |
| 7 | If pending is set | Ask again (up to 6 times) until a slow answer is ready, speaking each update |
The server on your Mac does the rest: it keeps one Claude Code session warm so answers take seconds, answers within 8 seconds every time (Siri gives up on slow requests), and says "One moment" while longer jobs finish. The engineering behind that is in Building a Voice Interface for Claude Code.
Troubleshooting
Start with npx carcode-cli doctor. It covers most problems.
| Symptom | Fix |
|---|---|
| Siri runs it but you hear nothing | Prefer Spoken Responses, and turn the media volume up |
| "... is unreachable", or the shortcut errors | The Mac is asleep or offline, or the tunnel restarted. Run doctor, then npx carcode-cli shortcut if the address changed |
| It cuts you off mid-sentence | Siri Pause Time → Longest. carcode also says "Go on" and joins the halves |
| Siri says it can't find the shortcut | Wait a minute for iCloud, and check the name matches what you're saying |
| Answers about GitHub are wrong | If you have several gh accounts, set CARCODE_GH_USER |
The address changes after a reboot? The free tunnel gets a new URL when it restarts. For a permanent one, use a named Cloudflare tunnel on your own domain (CARCODE_TUNNEL_NAME and CARCODE_TUNNEL_HOSTNAME in .env), or Tailscale Funnel. The README has the steps.
Keep It Safe
- Your token is the key. Anyone with the shortcut file or
data/tokencan talk to Claude Code on your Mac. Don't share either. To rotate it:rm data/token && ./carcode restart && ./carcode shortcut. - It asks before acting for you. Messages, emails, merges, approvals and deletions are read back and need a spoken "confirm".
- Code changes go to draft PRs on a
carcode/...branch, never straight to main. - Its tools are allowlisted: files,
git,gh, package managers and your connectors. Other shell commands are denied.
Further Reading
- Claude on CarPlay vs Claude Code in your car: which to use when
- How I Code From My Car: why I built carcode
- carcode on GitHub
- The carcode page, with a demo video
Harsh Rastogi is an AI Product Engineer building generative-AI products and multi-agent systems. He writes about AI systems, developer tooling and production engineering at harshrastogi.tech.
Frequently asked questions
Can Siri run Claude Code?
Yes, with a Siri Shortcut that sends what you say to Claude Code on your Mac and speaks the reply. carcode builds and signs that shortcut for you, so "Hey Siri, Jarvis" starts a voice conversation with Claude Code.
Do I need an Anthropic API key to use Claude Code with Siri?
No. carcode uses the Claude Code login you already have on your Mac, so there's no separate API key.
Why does Siri cut me off mid-sentence?
iOS dictation stops at the first pause. Set Settings, Accessibility, Siri, Siri Pause Time to Longest. carcode also notices unfinished sentences, says "Go on" and joins the two halves.
Why can't I hear Claude Code's answers?
Set Settings, Siri, Siri Responses to Prefer Spoken Responses. Otherwise a phone on silent shows the answer on screen instead of speaking it.
- Claude Code
- Siri Shortcuts
- Tutorial
- Voice AI
- iPhone
Written by Harsh Rastogi, AI Product Engineer and Business AI Head at Modelia. More on AI products, agents and production engineering on LinkedIn.