Skip to content

Jarvis

JARVIS — a voice assistant for Claude Code. Talk to your Mac and he brainstorms a project with you, builds it, and tells you out loud when a Claude Code session needs you.…

Install

$git clone https://github.com/ethanplusai/jarvis

Install command taken from the project's README or registry entry. Always review code before running it.

JARVIS

Just A Rather Very Intelligent System — a voice for Claude Code.

JARVIS is a British butler who sits on top of the Claude Code you already pay for. You talk to him. He brainstorms a project with you out loud, one question at a time; when you have settled on something he writes the design down as a file in your project; then he starts a real Claude Code session on it and drives it through plan → review → execute. While it runs he watches every Claude Code session on your machine, and when one of them is stuck waiting on a human he tells you which one, out loud, without you having to look.

"Will do, sir."

What you actually look at while you talk to him: frontend/src/orb.ts, rendered live. The audio driving the pulse is synthetic — a speech-shaped envelope fitted to a measurement of the real analyser, not a recording of his voice — but every pixel is that file running. Regenerate with scripts/make_orb_loop.py.

The whole dashboard, clicked through. Fictional sample data throughout — the projects, prompts, people and figures in every screenshot on this page are invented.


What it costs

No AI API usage, and none is possible. JARVIS's brain is a Claude Code process running on your Claude subscription — the same login you use in the terminal. There is no Anthropic API key anywhere on the voice path, and there is no way to accidentally put one there:

# claude_env.py
SCRUBBED_ENV_PREFIXES = ("CLAUDE_CODE_", "ANTHROPIC_")
SCRUBBED_ENV_KEYS = {"CLAUDECODE"}

Every Claude Code process JARVIS spawns — the brain and every build — is launched through claude_env.child_env(), which strips every ANTHROPIC_* variable out of the environment first. This is deliberate and it is not a nicety: the CLI silently prefers an inherited ANTHROPIC_API_KEY over your login, and claude auth status goes on reporting loggedIn: true while billing quietly moves onto the key. So JARVIS removes the key rather than trusting itself not to pass it. Leave one in your .env if you like — the startup check will warn you it is there, and the brain will still never see it.

So the number that matters is not a dollar figure — it is how much of your subscription's two windows is gone. Fictional sample data.

The one thing you pay for is Fish Audio, which gives JARVIS his voice. Be aware there is no fallback: tts.py returns nothing without FISH_API_KEY, so JARVIS goes silent and his replies appear as text in the browser instead. If you would rather use a different TTS, that is a small, well-isolated file to replace — see Make it yours below.

What he does

Similar plugs

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

Build Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype…

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

Explore related