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. |
install-service [--user] |
Write + enable 9111_abstract_claude_web.service (needs sudo). |
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
abstract_claude-0.1.0.tar.gz
(12.4 kB
view details)
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.0.tar.gz.
File metadata
- Download URL: abstract_claude-0.1.0.tar.gz
- Upload date:
- Size: 12.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
facb999cc30aae3e26f56691ec8dfdac5d5b322148c035b5741eb5f942f7a124
|
|
| MD5 |
ffbae0c404b9ac21fa7dbf180eb19cc7
|
|
| BLAKE2b-256 |
59059714dd2d44c09eddbd3c03bf1083063c8fd04b6d875eb0ad93421400c5a7
|
File details
Details for the file abstract_claude-0.1.0-py3-none-any.whl.
File metadata
- Download URL: abstract_claude-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.1 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 |
1f08e5719d642562338bcc28ebc2ee3b5149b7c815b55610b751c51b8ae80aeb
|
|
| MD5 |
52c31a146bfdb88266132b88cc09d9f4
|
|
| BLAKE2b-256 |
365c28957f5c965054c058bc16b6e32d78369516cbf92a7fa5d2852d5b51f04c
|