Skip to main content

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:

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 (from abstractagent)
  • Plan + Review modes (--plan, --review; /plan, /review)
  • VisualFlow workflows:
    • run locally: abstractcode flow ... (optional extra)
    • run as an agent: abstractcode --agent <flow_ref>
  • 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:

  • /help shows the authoritative command list
  • type a task (or use /task ...)
  • tool approvals: /auto-accept (or start with --auto-approve)
  • attach files with @path/to/file in 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 (or ABSTRACTCODE_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 (currently chatml-function-calling and llama-3); otherwise it falls back to stable keyed LlamaRAMCache reuse.
  • Remote APIs: prompt_cache_key is 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> ... (requires abstractcode[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

Development

pip install -e ".[dev]"
pytest -q
ruff check .
black .

Project

License

MIT. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abstractcode-0.3.8.tar.gz (196.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

abstractcode-0.3.8-py3-none-any.whl (169.6 kB view details)

Uploaded Python 3

File details

Details for the file abstractcode-0.3.8.tar.gz.

File metadata

  • Download URL: abstractcode-0.3.8.tar.gz
  • Upload date:
  • Size: 196.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for abstractcode-0.3.8.tar.gz
Algorithm Hash digest
SHA256 c5c221ee169ce04966b25ce7485d9d4e7f2e56500e2b66d405331d73db33220c
MD5 b0522e16feab880936666cf0ab059e80
BLAKE2b-256 e9b6621181d93c73ade5daf6e54a5204008a80e451507281a75868c32d81843e

See more details on using hashes here.

Provenance

The following attestation bundles were made for abstractcode-0.3.8.tar.gz:

Publisher: release.yml on lpalbou/AbstractCode

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file abstractcode-0.3.8-py3-none-any.whl.

File metadata

  • Download URL: abstractcode-0.3.8-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

Hashes for abstractcode-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 58013a24c9460aea40c41c218f03a6ff6fb1d1598d6b32fb947f4fa97d25940d
MD5 e6bea7a055d97e2fc60e6aabcb76858e
BLAKE2b-256 6efecef40fe72acf82876b88f45558c8c3d3d90d0acef38882a8e6c066640bc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for abstractcode-0.3.8-py3-none-any.whl:

Publisher: release.yml on lpalbou/AbstractCode

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.8 This release

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page