The utility layer for coding agents.

Your agent is good at editing files and stuck at everything else. Sidekar is one binary and one skill file that gives it a real browser, your Mac's UI, a bus to reach other agents, encrypted secrets, and memory that survives the session.

curl -fsSL https://sidekar.dev/install | sh
MIT licensed Runs on your machine No MCP server to configure
Claude Code Codex Copilot Cursor Gemini CLI Grok OpenCode Pi

Wrap the agent. It joins a channel.

Prefix the CLI you already run. Sidekar owns the PTY, registers the session on a channel keyed to the working directory, and gives it a name. A message sent to that name is typed into the agent's own prompt and submitted, so it lands as a turn in that agent's conversation rather than as something you relayed.

viper (claude-storefront-1) — claude idle
Claude Code v2.1.259 Opus 5 (1M context) · Claude Team ~/src/storefront
add stripe checkout. get ember and pike on it.
Bash(sidekar bus who)
Channel "~/src/storefront":
claude-storefront-1   "viper" (you)
cursor-storefront-1   "ember"
opencode-storefront-1 "pike"
ember takes the page, pike takes the endpoint.
Bash(sidekar bus send ember "build /checkout with stripe elements")
sent to ember (msg 7f2a91)
Bash(sidekar bus send pike "add POST /api/checkout/session")
sent to pike (msg 3c8d04)
Bash(sidekar bus wait pike --until=settled)
pike (opencode-storefront-1) is idle.
[response from pike]: POST /api/checkout/session live
[response from ember]: checkout page wired to the new endpoint
Bash(sidekar browser read localhost:3000/checkout)
# Checkout
Order summary · Total $42.00
[button] Pay now
Both replied. Checkout works end to end.
Crunched for 41s · done
storefront (main) | Opus 5 (1M context)
ember (cursor-storefront-1) — cursor idle
Cursor Agent v2026.08.25-3e8eec8
[request from viper]: build /checkout with stripe elements
[reply with: sidekar bus send viper "<your response>" --reply-to=7f2a91]
edited src/routes/checkout.tsx
edited src/components/PaymentForm.tsx
sidekar bus send viper "checkout page wired to the new endpoint" --reply-to=7f2a91
sent to viper
AutoRun Everything ~/src/storefront · main
pike (opencode-storefront-1) — opencode idle
opencode 1.18.0 · ~/src/storefront:main
[request from viper]: add POST /api/checkout/session
[reply with: sidekar bus send viper "<your response>" --reply-to=3c8d04]
edited api/checkout/session.ts
npm test -- checkout
12 passing
sidekar bus send viper "POST /api/checkout/session live" --reply-to=3c8d04
sent to viper
Buildtab agents  ctrl+p commands
Nobody copy-pasted between windows. Each pane is the agent's own interface, wrapped by sidekar <agent> — which is why work from another agent shows up at its prompt like anything you would have typed there yourself. Full command reference in the docs.

What your agent can suddenly do.

Nine areas, one binary. Each card links to the docs section with the commands and worked examples.

Works with the agent you already use.

Sidekar does not replace your agent, host it, or ask it to speak a new protocol. It installs a skill file and stays out of the way.

A skill file, not an MCP server

sidekar install writes SKILL.md into the config directories of every agent it detects: Claude Code, Codex, Gemini CLI, Grok, OpenCode, and Pi. The agent reads it like any other skill and calls the CLI.

There is no server to run, no JSON tool schema to keep in sync, and no per-agent integration to maintain. If your agent can run a shell command, it can use Sidekar.

Wrap it, or don't

sidekar claude, sidekar codex, sidekar copilot, sidekar cursor, sidekar gemini, sidekar grok, sidekar opencode, and sidekar pi wrap the agent in a PTY so it joins the bus and can be reached over relay.

Wrapping is optional. Every command also works when you run it yourself, and sidekar repl runs a standalone agent loop with your own provider credentials.

Where it earns its place.

Sidekar pays off when the work jumps between terminals, browsers, and native apps, or when it has to outlive a single prompt.

Ship and verify

One agent edits code, another checks the deployed page in Chrome, a third signs off. The bus carries results so you are not copy-pasting between windows.

  • sidekar codex builds the change
  • sidekar browser read checks the live page
  • sidekar bus send hands off to QA

Finish login flows

Pull credentials from encrypted storage, generate the TOTP code, and drive the browser through the rest of the flow without a human in the loop.

  • sidekar kv get for the password
  • sidekar totp for the second factor
  • sidekar browser click, type for the UI steps

Pick up where you left off

Memory, tasks, repo packs, and compacted command output stay on disk between sessions, so a fresh agent starts warm.

  • sidekar memory context loads project memory
  • sidekar tasks list --ready shows unblocked work
  • sidekar repo pack ships repo context

Watch things while you sleep

Monitor a dashboard tab for changes, schedule a recurring prompt, or loop a check. Results land back on the bus for the next agent to pick up.

  • sidekar monitor start all for tab changes
  • sidekar cron create for scheduled runs
  • sidekar loop for recurring prompts

Debug and check in remotely

Capture API traffic when the agent behaves strangely, or attach to a long-running session from your phone.

  • sidekar claude --proxy logs API calls locally
  • sidekar claude --relay opens a web terminal
  • Active sessions at sidekar.dev/sessions

Local by default.

Sidekar does not send your code anywhere. Browser automation, the bus, secrets, TOTP, memory, and proxy traces all stay on your machine.

What never leaves

Browser and desktop automation, bus delivery, encrypted secret storage, TOTP generation, memory, and tasks are local. State lives in a SQLite file at ~/.sidekar/.

The Chrome extension talks only to a bridge on 127.0.0.1. It does not browse on its own; it waits for your Sidekar process to tell it what to do.

What signing in adds

You only need an account for relay: the web terminal, the session list, and the dashboard. Signing in also unlocks encryption for stored secrets.

Relay sends session metadata (name, hostname, working directory, agent type) so the dashboard can list active sessions. The privacy policy has the full breakdown.

Two minutes, one required step.

The installer drops a single binary and registers the skill file. Everything after step two is optional.

Step 1
Install the binary

Run curl -fsSL https://sidekar.dev/install | sh. This also runs sidekar install to write the skill file for every agent it finds.

Step 2
Launch your agent

Wrap your usual CLI with sidekar <agent> [args], or run sidekar repl -c <credential> -m <model>.

Step 3
Sign in (optional)

sidekar device login unlocks relay, the web terminal, encrypted secrets, and session management.

Step 4
Chrome extension (optional)

Only if you want automation to run in your everyday Chrome profile. See the extension page.

Before you install.

The things people ask first.

Is it free?

Sidekar is MIT licensed and free for personal use. If your company pays you to write code and you use Sidekar in that work, we ask you to take the $9/month Professional subscription. That is an honor-system request, not a license restriction: the MIT license governs your rights either way.

Does it send my code anywhere?

No. Sidekar never uploads your source. Browser automation, the bus, secrets, memory, tasks, and proxy captures are all local to your machine.

The one exception is relay, which you opt into per session with --relay. It forwards your terminal stream and session metadata so you can attach from a browser. If you never sign in, nothing leaves the machine.

Do I need to configure an MCP server?

No. Sidekar deliberately has no MCP server. It installs a SKILL.md file that your agent reads, and the agent calls the sidekar binary as a normal shell command. Nothing to run, nothing to keep in sync, and it works with any agent that can execute commands.

Which agents are supported?

sidekar install writes the skill file for Claude Code, Codex, Gemini CLI, Grok, OpenCode, and Pi.

PTY wrapping with sidekar <agent> additionally covers Copilot and Cursor. Any other agent can still use Sidekar by calling the CLI directly.

Is it macOS only?

Desktop automation is macOS only, since it is built on the macOS Accessibility API. Everything else, including browser automation, the bus, memory, secrets, cron, and relay, also runs on Linux. Builds ship for macOS on Apple silicon and Intel, and Linux on x64 and arm64.

Do I need the Chrome extension?

No. Browser automation works out of the box against a managed Chrome profile that Sidekar launches itself. The extension exists for the case where you want the agent to act inside your everyday Chrome profile, with your existing logins and history.

Will it interfere with my agent?

Wrapping runs your agent inside a Sidekar-owned PTY and passes through your terminal as normal. You can drop the wrapper at any time and call sidekar commands directly; nothing about your agent's configuration changes.

Give it a real set of hands.

One binary, one skill file, no server. Uninstall is one command if it is not for you.