Skip to main content

Claude Code launchers

The bex CLI ships one launcher per provider — bex glm, bex muse, bex kimi, bex deepseek. Each starts a real Claude Code instance connected to that provider's Anthropic-compatible endpoint, the integration pattern every one of these providers documents officially.

bex code is the management hub: it shows key status across providers, and bex code keys set|unset <provider> manages the stored keys.

Soft clay illustration: four small terminal boxes on a workbench, each wired to a single green hub with one button.

Install bex

bex is the CLI that launches Claude Code against each provider, so install it first. Pick either channel — both install the same signed release binaries.

Install script

curl -fsSL https://raw.githubusercontent.com/bex-co/bex/main/scripts/install-bex.sh | sh

Detects your OS and architecture, verifies checksums.txt, and installs atomically to ~/.local/bin. BEX_VERSION pins an exact release and BEX_INSTALL_DIR retargets the directory.

Homebrew

brew install bex-co/tap/bex

The same binaries through the bex-co tap; upgrade later with brew upgrade bex.

Confirm the install

bex -v

bex -v prints the release version and tells you when a newer release exists.

Both channels ship macOS and Linux builds for arm64 and amd64; every release includes checksums.txt and a keyless cosign signature bundle. Windows is not currently built — use WSL.

How a launcher works

Documented seams, nothing forked

Claude Code stays an external runtime; each launcher only sets its documented environment variables — ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN, CLAUDE_CONFIG_DIR and the model-slot variables — at exec time.

Isolated per provider

Every provider gets its own config dir under ~/.bex/code, so settings, history and permissions stay independent, instances run in parallel, and your personal ~/.claude setup is neither read nor modified.

Your key, captured once

The first launch opens the provider's API-key console, takes one hidden paste, verifies the key live against the provider's endpoint, and stores it owner-only in keys.toml. A key set in the environment always overrides the store.

Everything else goes to claude

Arguments after the provider name are passed to claude unchanged — bex glm --continue, bex glm -p "one prompt", or bex glm --help for Claude Code's own flags.

Launch a provider

# Claude Code is the runtime — install it once
npm install -g @anthropic-ai/claude-code
# first launch opens the provider console and captures your key once
bex glm
# everything after the provider name goes straight to claude
bex glm --continue
# key status across all providers
bex code keys

Pick a provider