A clean terminal CLI for multi-agent agentic coding
Project description
AbstractCode
Durable terminal TUI for agentic coding on the AbstractFramework stack (AbstractAgent + AbstractRuntime + AbstractCore).
Status: pre-alpha (APIs and UX may change).
Next: docs/getting-started.md.
AbstractFramework ecosystem
AbstractCode is part of AbstractFramework:
- AbstractFramework
- AbstractCore (providers + tools)
- AbstractRuntime (durable runs)
Features
- Interactive TUI (
abstractcode) with durable runs (resume/pause/cancel), snapshots, and logs - Approval-gated tools by default (with an allowlist you can configure)
- Built-in agents:
react,memact,codeact(fromabstractagent) - Plan + Review modes (
--plan,--review;/plan,/review) - VisualFlow workflows:
- run locally:
abstractcode flow ...(optional extra) - run as an agent:
abstractcode --agent <flow_ref>
- run locally:
- Remote tool execution via MCP (
/mcp,/executor) - Optional gateway-first Web UI in
web/
How it fits together (diagram)
flowchart LR
U[User] --> AC[AbstractCode\n(TUI/CLI host)]
AC --> AA[AbstractAgent\n(agent logic)]
AC --> AR[AbstractRuntime\n(durable execution)]
AR --> CORE[AbstractCore\n(LLM providers + tools)]
AC -->|approve| TOOLS[Local tools]
AC <--> MCP[MCP servers\n(remote tools)]
WEB[web/\n(browser host)] <--> GW[AbstractGateway\n(/api/gateway/*)]
AC -. optional .-> GW
Install
Python: 3.10+
pip install abstractcode
Optional (run VisualFlow locally via abstractcode flow ...):
pip install "abstractcode[flow]"
From source (development):
pip install -e ".[dev]"
Quickstart (TUI)
Ollama (default provider):
abstractcode --provider ollama --model qwen3:1.7b-q4_K_M
OpenAI-compatible server (e.g. LM Studio):
abstractcode --provider openai --base-url http://127.0.0.1:1234/v1 --model qwen/qwen3-next-80b
Inside the app:
/helpshows the authoritative command list- type a task (or use
/task ...) - tool approvals:
/auto-accept(or start with--auto-approve) - attach files with
@path/to/filein your prompt
Prompt caching (best-effort)
AbstractCode defaults to --prompt-cache auto, which enables prompt caching when the runtime LLM client reports prompt-cache support via the AbstractCore capability contract (reduces repeated prefill work and can improve time-to-first-token).
Toggle:
- CLI:
--prompt-cache auto|on|off(orABSTRACTCODE_PROMPT_CACHE=auto|on|off) - TUI:
/cache auto|on|off
Provider notes:
mlx: full in-process KV caching with a 3-compartment cache:system | tools | history.huggingface+ GGUF (llama.cpp): same 3-compartment cache when AbstractCore can render the model's llama.cpp chat format exactly for caching (currentlychatml-function-callingandllama-3); otherwise it falls back to stable keyedLlamaRAMCachereuse.- Remote APIs:
prompt_cache_keyis forwarded where applicable (server-managed; semantics vary by provider).
Details: docs/architecture.md and docs/faq.md.
Persistence (durable runs)
Default paths:
- state file:
~/.abstractcode/state.json - durable stores:
~/.abstractcode/state.d/ - saved settings:
~/.abstractcode/state.config.json
Disable persistence:
abstractcode --no-state
Workflows
- Local runs:
abstractcode flow run <flow_id_or_path> ...(requiresabstractcode[flow]) - Workflow agent:
abstractcode --agent /path/to/workflow.json ... - Remote control-plane:
abstractcode gateway --help - Bundle management on a gateway:
abstractcode workflow --help
Details: docs/workflows.md.
Web UI
The web host lives in web/ and connects to an AbstractGateway at /api/gateway/*.
Start here:
Documentation
- Start here:
docs/getting-started.md - FAQ:
docs/faq.md - Docs index:
docs/README.md - Agent-oriented docs:
llms.txtandllms-full.txt docs/architecture.mddocs/cli.mddocs/api.mddocs/workflows.mddocs/ui_events.md
Development
pip install -e ".[dev]"
pytest -q
ruff check .
black .
Project
- Changelog:
CHANGELOG.md - Contributing:
CONTRIBUTING.md - Security:
SECURITY.md - Acknowledgments:
ACKNOWLEDGMENTS.md
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
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 abstractcode-0.3.7.tar.gz.
File metadata
- Download URL: abstractcode-0.3.7.tar.gz
- Upload date:
- Size: 196.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91903c9a9d380e53035770d311c75b85319c258b498739328854a3f03fd5edba
|
|
| MD5 |
32c1c21759f1c50425f4a56e394e1efe
|
|
| BLAKE2b-256 |
4fdd375a92544dc5c55c05afdfbd906a4061959098efae7a29800079fdea1372
|
Provenance
The following attestation bundles were made for abstractcode-0.3.7.tar.gz:
Publisher:
release.yml on lpalbou/AbstractCode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
abstractcode-0.3.7.tar.gz -
Subject digest:
91903c9a9d380e53035770d311c75b85319c258b498739328854a3f03fd5edba - Sigstore transparency entry: 1668584711
- Sigstore integration time:
-
Permalink:
lpalbou/AbstractCode@b324876f5c0761a6d32531102e856c3ce2d8b643 -
Branch / Tag:
refs/tags/v0.3.7 - Owner: https://github.com/lpalbou
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b324876f5c0761a6d32531102e856c3ce2d8b643 -
Trigger Event:
push
-
Statement type:
File details
Details for the file abstractcode-0.3.7-py3-none-any.whl.
File metadata
- Download URL: abstractcode-0.3.7-py3-none-any.whl
- Upload date:
- Size: 169.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aee3cf29611f7d7991a5df21e30266a1011e417ee1bd8768fde44055bbc77c4f
|
|
| MD5 |
6b1e599a7d29450544381b0369b14994
|
|
| BLAKE2b-256 |
e4ff142cca5462c02832b11f6bf777ee1771348e8e8c1f069c5ebc94698f79e8
|
Provenance
The following attestation bundles were made for abstractcode-0.3.7-py3-none-any.whl:
Publisher:
release.yml on lpalbou/AbstractCode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
abstractcode-0.3.7-py3-none-any.whl -
Subject digest:
aee3cf29611f7d7991a5df21e30266a1011e417ee1bd8768fde44055bbc77c4f - Sigstore transparency entry: 1668584820
- Sigstore integration time:
-
Permalink:
lpalbou/AbstractCode@b324876f5c0761a6d32531102e856c3ce2d8b643 -
Branch / Tag:
refs/tags/v0.3.7 - Owner: https://github.com/lpalbou
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b324876f5c0761a6d32531102e856c3ce2d8b643 -
Trigger Event:
push
-
Statement type: