Written by Hector Garcia
@hex.garEstimated reading time: 22 min read
Jarvis Setup Guide
AI Consultant
SystemsReading time: 22 min read
This project turns a double clap into a full desk workflow. Spotify starts, Chrome opens Claude, an ElevenLabs voice speaks a welcome line, and Cursor comes to the front, all from one Python script listening to your microphone. The code is open source, so you can read it, fork it, and change every part of the workflow to match your own setup. This is an AI workflow starter, not full automation: the clap orchestrates your apps, you still add your own AI tools, prompts, and habits on top of it.
What you'll set up
By the end of this guide, one double clap will trigger your whole desk startup. Along the way you'll install Python and VS Code, pull the Jarvis project down from GitHub, connect an ElevenLabs voice, and wire it all into one script that listens through your microphone.
Then you'll test it: clap twice and watch Spotify, Chrome, your ElevenLabs welcome line, and Cursor all fall into place.
Step 1: Install Python
Go to python.org/downloads and download the latest Python 3 installer for Windows.
Important: During install, check "Add python.exe to PATH" at the bottom of the first screen, then click Install Now.
Verify Python works. Open Command Prompt or PowerShell and run:
python --version
You should see something like Python 3.12.x
Step 2: Install Visual Studio Code
Download: Visual Studio Code
Download the Windows installer, run it, and finish with the default options.
Step 3: Download the project from GitHub
Repo: Jarvis on GitHub
On the GitHub page, click the green Code button, then Download ZIP.
Extract the ZIP. You should have a folder containing at least jarvis.py, requirements.txt, and README.md.
Step 4: Open the project in VS Code
In VS Code: File, then Open Folder, then select the extracted jarvis-main folder.
Step 5: Install Python dependencies
In VS Code: Terminal, then New Terminal. Make sure the terminal path is your project folder, then run:
python -m pip install -r requirements.txt
Wait until it finishes without errors. This installs numpy, sounddevice, ElevenLabs, python-dotenv, and websockets.
Step 6: Get your ElevenLabs API key and Voice ID
The Jarvis welcome voice uses ElevenLabs text to speech. You need a free or paid account, plus two values: an API key and a Voice ID.
Sign up or log in at ElevenLabs.
Create an API key: click Developers in the bottom left, then Profile and API key, then Create API key. Copy and save it somewhere safe.
Get your Voice ID: go to Voices, or My Voices, pick a voice you like, open its settings, and copy the Voice ID, a short alphanumeric string.
Step 7: Create your .env file
In VS Code, in the same folder as jarvis.py, create a new file named exactly .env
Paste the following and replace with your real values:
ELEVENLABS_API_KEY=your_key_here ELEVENLABS_VOICE_ID=your_voice_id_here
Save the file with Ctrl+S.
Warning: Never share your .env file or commit it to GitHub, it contains your private API key.
Step 8: Run Jarvis
In the VS Code terminal, run:
python jarvis.py
If Windows asks for microphone access, click Allow. You should see log lines like Listening for double clap.
Step 9: Test the double clap
Clap twice quickly, about a tenth of a second apart. If everything is set up you should see all four of these happen. The welcome sequence runs once per session, press Ctrl+C and run python jarvis.py again to trigger it a second time.
Step 10: Customize (optional)
Open jarvis.py and edit the constants at the top of the file. Common changes are listed below.
Customization settings
| Setting | What it does |
|---|---|
SONG_URI | Spotify or YouTube URL that plays on clap |
JARVIS_WELCOME_PHRASE | What Jarvis says out loud |
OPEN_CLAUDE_CODE_IN_CHROME | Turn the Claude tab on or off |
CLAUDE_CODE_URL | Which Claude URL opens, default is new chat |
FOCUS_EXISTING_CURSOR_ON_DOUBLE_CLAP | Focus Cursor instead of opening a new window |
SPIKE_RATIO | Lower means easier to detect claps, higher means fewer false triggers |
Set values without editing code
You can also set optional URLs in .env instead of editing code:
CLAUDE_CODE_URL=https://claude.ai/new
Troubleshooting
| Problem | Fix |
|---|---|
| No reaction to claps | Clap closer to the mic. Lower SPIKE_RATIO slightly, for example 7.0 to 5.0. Check Windows Settings, System, Sound, Input, and pick the correct mic. |
| No welcome voice | Confirm ELEVENLABS_API_KEY and ELEVENLABS_VOICE_ID in .env. Restart the terminal and run jarvis.py again. |
| Wrong microphone | List devices with python -c "import sounddevice as sd; print(sd.query_devices())" then add JARVIS_INPUT_DEVICE=0, using your device index, to .env. |
| Audio or PortAudio error | Update sound drivers. Try changing SAMPLE_RATE to 48000 in jarvis.py. |
| Chrome or Cursor not opening | Install Chrome and Cursor. The script looks for cursor.exe in standard install paths. |
| Clap works once, then nothing | Expected, the welcome sequence runs once per process. Press Ctrl+C and start again. |
Quick links
- Project: Jarvis on GitHub
- Python: Download Python
- VS Code: Download Visual Studio Code
- Voice: ElevenLabs
- Claude: Claude
- Cursor: Cursor