Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

HeminWon/proteus

Open more actions menu

Repository files navigation

Proteus logo

Proteus

A Go CLI to switch Claude Code providers and launch profile-isolated sessions.

中文文档

Usage Scenarios

1. Global Switching

  • Command: proteus switch <provider>
  • Global settings: writes to ~/.claude/settings.json
  • Isolation: none (applies globally)
  • Best for: quickly changing the current default provider/model

2. Isolated Launch

  • Command: proteus launch <profile>
  • Global settings: does not write global settings
  • Isolation: yes (profile/session isolated)
  • Runner: starts profile.runner with profile.args (profile.runner must be executable, for example claude or codex)
  • Default: share_claude_md is false
  • Best for: running parallel sessions across different providers (for example DeepSeek / GLM / Anthropic)

Features

  • Manage multiple Claude-compatible providers in one config file.
  • Support both global switching (switch) and profile-isolated parallel sessions (launch).
  • Sync shared Claude config entries (commands, skills, plugins, agents, ide) into profile config dir.
  • Validate provider configuration with live HTTP checks.

Requirements

  • Go 1.22+ (for building/running from source)
  • Claude Code installed if you use launch with runner: claude

Installation

Homebrew

brew tap HeminWon/proteus https://github.com/HeminWon/proteus
brew install proteus

Build from source

go build -o dist/proteus ./cmd/proteus
./dist/proteus --help

Quick Start

  1. Create config:
cp configs/providers.example.yaml ~/.config/proteus/providers.yaml
  1. Fill token/env in ~/.config/proteus/providers.yaml.

  2. Validate:

proteus validate
  1. Global switch:
proteus switch anthropic
  1. Isolated launch:
proteus launch default

Configuration

Providers file

Default path:

~/.config/proteus/providers.yaml

Minimal example:

version: 1
providers:
  - id: anthropic
    name: Anthropic Official
    claude:
      env:
        ANTHROPIC_AUTH_TOKEN: "change-me"
        ANTHROPIC_BASE_URL: "https://api.anthropic.com"

profiles:
  default:
    provider: anthropic
    runner: claude
    args:
      - --dangerously-skip-permissions
    share_claude_md: false

Optional config directory override

File:

~/.config/proteus/config.json

Content:

{
  "config_dir": "~/my-providers"
}

Commands

proteus --help
proteus list
proteus validate [--provider <id>] [--concurrency <n>]
proteus switch <provider-id|provider-name> [--dry-run]
proteus launch <profile> [--dry-run]
proteus launch --list

Security Notes

  • Never commit real tokens in providers.yaml.
  • If both ANTHROPIC_AUTH_TOKEN and ANTHROPIC_API_KEY are empty, authentication will fail.

Development

go test ./...

Or use just tasks:

just build
just run
just list
just validate

Contributing

Contributions are welcome. Please open an issue or pull request with:

  • a clear problem statement,
  • reproducible steps (for bug reports),
  • and expected behavior.

License

This project is licensed under the MIT License.

About

A CLI for switching providers, models, and config profiles for AI developer tools.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.