A tiny local launcher for switching AI agent runtime profiles.
Project description
aweswitch: Agent Profile Switcher
A tiny local launcher for switching AI agent runtime profiles.
Keep provider URLs, tokens, and model names in one config file, then start an agent with the profile you choose.
English · 简体中文
Switch agent runtime profiles without rewriting the agent's own settings file.
aweswitch reads profiles from ~/.config/aweswitch/config.json, expands environment references, prepares provider-specific runtime arguments, and then starts the selected agent.
It is intentionally small. The project is positioned as an agent profile switcher, but today it supports Claude Code profiles only. Codex and Hermes profile groups may appear in the config shape later, but they are not executable yet.
Install
Install from PyPI:
python3 -m pip install aweswitch
aweswitch --help
Create the default config:
aweswitch config init
Then open the config and align it with your real Claude Code providers, models, and token variable names:
aweswitch config edit
The default config shape groups profiles under their provider. This is a reference config you can adapt:
{
"profiles": {
"claude": {
"cc-glm": {
"env": {
"ANTHROPIC_BASE_URL": "https://open.bigmodel.cn/api/anthropic",
"ANTHROPIC_AUTH_TOKEN": "${GLM_ANTHROPIC_AUTH_TOKEN}",
"ANTHROPIC_MODEL": "glm-5.1"
}
},
"cc-gemini": {
"env": {
"ANTHROPIC_BASE_URL": "https://openclaw.chatgo.best",
"ANTHROPIC_AUTH_TOKEN": "${GEMINI_ANTHROPIC_AUTH_TOKEN}",
"ANTHROPIC_MODEL": "gemini-3.1-pro-preview"
}
},
"cc-xiaomi": {
"env": {
"ANTHROPIC_BASE_URL": "https://token-plan-sgp.xiaomimimo.com/anthropic",
"ANTHROPIC_AUTH_TOKEN": "${XIAOMI_ANTHROPIC_AUTH_TOKEN}",
"ANTHROPIC_MODEL": "mimo-v2.5-pro"
}
}
}
}
}
Configure the token variables referenced by your profiles:
export GLM_ANTHROPIC_AUTH_TOKEN="..."
export GEMINI_ANTHROPIC_AUTH_TOKEN="..."
export XIAOMI_ANTHROPIC_AUTH_TOKEN="..."
Put long-lived variables in ~/.zshrc if you want them available in every shell.
Verify the configured profiles:
aweswitch list
aweswitch show cc-glm
Run a profile:
aweswitch cc-glm
Pass extra arguments through to Claude Code:
aweswitch cc-glm --dangerously-skip-permissions
Useful config commands:
aweswitch config path
aweswitch config show
aweswitch config edit
FAQ
Why aweswitch, and who is it for?
aweswitch is for people who use AI coding agents with more than one runtime endpoint, model, or token source and want a repeatable local command instead of editing settings by hand.
- One local config file at
~/.config/aweswitch/config.json - Named agent profiles such as
cc-glm,cc-gemini, orcc-xiaomi - Runtime-only injection through provider-specific arguments
- No mutation of the agent's original settings file
- Token references through shell variables or
~/.claude/settings.json - Readable JSON with provider grouping under
profiles.claude
Where does aweswitch store profiles?
By default, profiles live in:
~/.config/aweswitch/config.json
You can override that path with AWESWITCH_CONFIG.
Does aweswitch modify Claude settings?
No. It reads your aweswitch config and launches Claude Code with runtime settings for that process only.
Does aweswitch support Codex or Hermes?
Not yet. The config format groups profiles by provider so future support can fit naturally, but the executable provider set is currently Claude Code only.
Similar Tools
cc-switch
cc-switch is an adjacent Claude Code switching tool. It is useful reference material for the same problem space: making Claude Code provider/model switching easier from the command line.
aweswitch currently takes a smaller Python-package approach: a local JSON profile file, runtime-only Claude Code --settings, secret redaction for inspection commands, and provider grouping that leaves room for future agent support.
Profile Rules
- Profiles are grouped under
profiles.<provider>.<profileName>. claudeis the only supported provider right now.- Profile names must be unique across all provider groups.
- Claude profiles pass
envthrough runtime--settings '{"env": ...}'. - Set the Claude model with
env.ANTHROPIC_MODEL. envvalues only apply to the launched process.${VAR_NAME}values are expanded from the current shell environment.- Claude token values can also expand from
~/.claude/settings.jsonwhen they are missing from the shell. showandconfig showredact keys matching token, key, secret, password, or auth.
Claude Model Overrides
For Claude profiles, ANTHROPIC_MODEL is the primary model setting.
ANTHROPIC_DEFAULT_HAIKU_MODEL, ANTHROPIC_DEFAULT_SONNET_MODEL, and ANTHROPIC_DEFAULT_OPUS_MODEL are not configured by default.
If you want Claude Code to use a lighter model for lightweight or background tasks, add ANTHROPIC_DEFAULT_HAIKU_MODEL to the profile:
{
"profiles": {
"claude": {
"cc-xiaomi": {
"env": {
"ANTHROPIC_BASE_URL": "https://token-plan-sgp.xiaomimimo.com/anthropic",
"ANTHROPIC_AUTH_TOKEN": "${XIAOMI_ANTHROPIC_AUTH_TOKEN}",
"ANTHROPIC_MODEL": "mimo-v2.5-pro",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "mimo-v2.5"
}
}
}
}
}
This keeps the main model on mimo-v2.5-pro while allowing Claude Code to use mimo-v2.5 for lighter work.
Development
Run the test suite:
python3 tests/test_aweswitch.py
Run the syntax check:
python3 -m py_compile aweswitch.py src/aweswitch/cli.py tests/test_aweswitch.py
Install the local checkout in editable mode:
python3 -m pip install -e .
Build a local package:
python3 -m pip install build
python3 -m build
Install a built wheel locally:
python3 -m pip install dist/aweswitch-0.1.0-py3-none-any.whl
Project docs:
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aweswitch-0.1.0.tar.gz.
File metadata
- Download URL: aweswitch-0.1.0.tar.gz
- Upload date:
- Size: 20.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74465ae4c51e18ecaad61cd45de76cf3bdb6816b1623f7634094ca375b67b8eb
|
|
| MD5 |
6c1839916bdfa419466d324e9b8f9e0a
|
|
| BLAKE2b-256 |
77c339321da9ee4548b22635390c56b4a0f693e55e14112b6f1f8ec6db646abb
|
File details
Details for the file aweswitch-0.1.0-py3-none-any.whl.
File metadata
- Download URL: aweswitch-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7ed073e24378442a726c79f41aa75b01c9cadaf2e916721ae3b872b2a0d4666
|
|
| MD5 |
d95fd6788ded620043ac160eb03a1f6a
|
|
| BLAKE2b-256 |
6f43a35b61a02023cdf8382e8dea9729e4b871ce4e9c38626e2ef1ffe2a1d5cf
|