abstract-claude
Fresh Claude Code session manager: a settings-only template, durable OAuth,
automatic quota fallback, and a web console — packaged as one pip-installable CLI.
Install
pip install abstract-claude # from your index
# or from the private index:
pip install -i https://<index>/api/pypi/simple/ abstract-claude
Quickstart
abstract-claude init # materialize AC_ROOT (config + template)
abstract-claude serve # web console (default http://127.0.0.1:9111)
sudo abstract-claude install-service # install + enable the systemd unit
Commands
| Command | What it does |
|---|---|
serve [--host --port] |
Run the web console (Model+fallback, OAuth, Template+reset, Session settings). |
init |
Create AC_ROOT with config.json + template/ from shipped defaults. |
save-template |
Capture current ~/.claude/settings.json + minimal flags as the template. |
restore |
Create a fresh ~/.claude (settings + flags) if it doesn't exist. |
reset [-y] |
Wipe ALL Claude state (transcripts/history/creds) → reseed template → clean session. |
oauth-status / oauth-set <token> |
Show / store the durable 1-year claude-auth token. |
launch -- <claude args> |
Launch Claude Code, auto-switching to the fallback model when the default is over quota. |
mcp |
stdio MCP bridge: exposes an abstract_toolserver instance to Claude Code as native tools (TOOLSERVER_URL, default https://toolserver.hugpy.ai). |
install-service [--user] |
Write + enable 9111_abstract_claude_web.service (needs sudo). |
Tool-aware sessions (MCP)
abstract-claude mcp discovers a toolserver's /endpoints and serves them to Claude
Code over stdio MCP — so the .claude session can call the whole abstract_* tool
surface (and /claude/*) through one authed entry point. The template registers it
automatically; to add it to an existing install:
claude mcp add -s user toolserver -e TOOLSERVER_URL=https://toolserver.hugpy.ai -- abstract-claude mcp
How it works
- Template = config only.
template/settings.json+ a minimal~/.claude.json(onboarding/trust flags). No credentials, history, or transcripts — a reset gives a genuinely clean session, not a restored snapshot. - OAuth is not templated. Login rides on the durable 1-year
CLAUDE_CODE_OAUTH_TOKEN(managed byclaude-auth), so a fresh session auto-authenticates — no/login. - Quota fallback is the wrapper. Claude Code's
fallbackModelonly fires on overload, never on quota;autoContinueAtUsageLimitdoesn't exist before v2.1.234.abstract-claude launchhandles the real case: default Fable maxed → run on Opus 4.8. Wire it up with:alias claude='abstract-claude launch --dangerously-skip-permissions'
Config
AC_ROOT (default /srv/abstract_claude) holds config.json:
{ "listen_host": "127.0.0.1", "listen_port": 9111,
"default_model": "claude-fable-5[1m]", "quota_fallback_model": "claude-opus-4-8",
"preflight_quota_check": true }
Override the data root with AC_ROOT=/path abstract-claude ....
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 abstract_claude-0.1.11.tar.gz.
File metadata
- Download URL: abstract_claude-0.1.11.tar.gz
- Upload date:
- Size: 26.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92412e452f382d26365e275ab0b53f182abc6c44c987470ccb7868abf4e6aae1
|
|
| MD5 |
20c86e5be3a5a8a1777391f9ed8ee222
|
|
| BLAKE2b-256 |
e4456a0c404fd624eff61355797141d3b558696e9b00a41beab99eed59a161c0
|
File details
Details for the file abstract_claude-0.1.11-py3-none-any.whl.
File metadata
- Download URL: abstract_claude-0.1.11-py3-none-any.whl
- Upload date:
- Size: 29.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30275925ed84788f2ffb6146826440cf2393e4467064c2568984cd7759bf8ef8
|
|
| MD5 |
6347c671299d191b300992fb2424d737
|
|
| BLAKE2b-256 |
c076167ca4e111e7bd0590f030ff0b3575c1165177b9c419022b202768a04ef5
|