Catalog PyPI
PACKAGE EXPLORERView in registry

abstractcode

PyPI

A clean terminal CLI for multi-agent agentic coding

abstractagentabstractcoreabstractruntimeagentagenticaiclicodingllmmulti-agentterminal
Versions collected1
Direct dependencies10From release 0.3.8
Last observed20 Oct, 17:39 UTC

README

Version 0.3.8 documentation

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.

Downloads & popularity

4downloads
1-day window · source-reported counts19 Oct 2026
56280
2026-07-22: 5 · observed 2026-10-20T18:38:26.4639623Z · period 2026-07-22–2026-07-222026-07-23: 2 · observed 2026-10-20T18:38:26.4639623Z · period 2026-07-23–2026-07-232026-07-27: 2 · observed 2026-10-20T18:38:26.4639623Z · period 2026-07-27–2026-07-272026-07-29: 9 · observed 2026-10-20T18:38:26.4639623Z · period 2026-07-29–2026-07-292026-08-01: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-01–2026-08-012026-08-02: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-02–2026-08-022026-08-03: 12 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-03–2026-08-032026-08-04: 7 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-04–2026-08-042026-08-05: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-05–2026-08-052026-08-06: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-06–2026-08-062026-08-09: 8 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-09–2026-08-092026-08-11: 3 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-11–2026-08-112026-08-13: 9 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-13–2026-08-132026-08-14: 5 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-14–2026-08-142026-08-16: 3 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-16–2026-08-162026-08-17: 9 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-17–2026-08-172026-08-18: 56 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-18–2026-08-182026-08-19: 2 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-19–2026-08-192026-08-20: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-20–2026-08-202026-08-22: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-22–2026-08-222026-08-23: 3 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-23–2026-08-232026-08-24: 15 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-24–2026-08-242026-08-26: 2 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-26–2026-08-262026-08-28: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-28–2026-08-282026-08-31: 3 · observed 2026-10-20T18:38:26.4639623Z · period 2026-08-31–2026-08-312026-09-01: 3 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-01–2026-09-012026-09-04: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-04–2026-09-042026-09-06: 6 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-06–2026-09-062026-09-07: 4 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-07–2026-09-072026-09-08: 2 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-08–2026-09-082026-09-09: 3 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-09–2026-09-092026-09-10: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-10–2026-09-102026-09-11: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-11–2026-09-112026-09-12: 5 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-12–2026-09-122026-09-14: 2 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-14–2026-09-142026-09-16: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-16–2026-09-162026-09-17: 22 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-17–2026-09-172026-09-18: 22 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-18–2026-09-182026-09-21: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-21–2026-09-212026-09-23: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-23–2026-09-232026-09-24: 10 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-24–2026-09-242026-09-25: 8 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-25–2026-09-252026-09-26: 11 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-26–2026-09-262026-09-27: 8 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-27–2026-09-272026-09-28: 6 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-28–2026-09-282026-09-29: 5 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-29–2026-09-292026-09-30: 7 · observed 2026-10-20T18:38:26.4639623Z · period 2026-09-30–2026-09-302026-10-03: 2 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-03–2026-10-032026-10-06: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-06–2026-10-062026-10-07: 3 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-07–2026-10-072026-10-08: 12 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-08–2026-10-082026-10-09: 8 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-09–2026-10-092026-10-10: 4 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-10–2026-10-102026-10-11: 4 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-11–2026-10-112026-10-12: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-12–2026-10-122026-10-13: 5 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-13–2026-10-132026-10-14: 3 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-14–2026-10-142026-10-15: 3 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-15–2026-10-152026-10-16: 1 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-16–2026-10-162026-10-17: 3 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-17–2026-10-172026-10-18: 5 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-18–2026-10-182026-10-19: 4 · observed 2026-10-20T18:38:26.4639623Z · period 2026-10-19–2026-10-19
22 Jul19 Oct

pypistats · 62 observations shown. Missing days are unknown. Source category: overall: without mirrors.

View observed values
Date / source periodValueObserved at
2026-10-19 – 2026-10-1942026-10-20T18:38:26.4639623Z
2026-10-18 – 2026-10-1852026-10-20T18:38:26.4639623Z
2026-10-17 – 2026-10-1732026-10-20T18:38:26.4639623Z
2026-10-16 – 2026-10-1612026-10-20T18:38:26.4639623Z
2026-10-15 – 2026-10-1532026-10-20T18:38:26.4639623Z
2026-10-14 – 2026-10-1432026-10-20T18:38:26.4639623Z
2026-10-13 – 2026-10-1352026-10-20T18:38:26.4639623Z
2026-10-12 – 2026-10-1212026-10-20T18:38:26.4639623Z
2026-10-11 – 2026-10-1142026-10-20T18:38:26.4639623Z
2026-10-10 – 2026-10-1042026-10-20T18:38:26.4639623Z
2026-10-09 – 2026-10-0982026-10-20T18:38:26.4639623Z
2026-10-08 – 2026-10-08122026-10-20T18:38:26.4639623Z
2026-10-07 – 2026-10-0732026-10-20T18:38:26.4639623Z
2026-10-06 – 2026-10-0612026-10-20T18:38:26.4639623Z
2026-10-03 – 2026-10-0322026-10-20T18:38:26.4639623Z
2026-09-30 – 2026-09-3072026-10-20T18:38:26.4639623Z
2026-09-29 – 2026-09-2952026-10-20T18:38:26.4639623Z
2026-09-28 – 2026-09-2862026-10-20T18:38:26.4639623Z
2026-09-27 – 2026-09-2782026-10-20T18:38:26.4639623Z
2026-09-26 – 2026-09-26112026-10-20T18:38:26.4639623Z
2026-09-25 – 2026-09-2582026-10-20T18:38:26.4639623Z
2026-09-24 – 2026-09-24102026-10-20T18:38:26.4639623Z
2026-09-23 – 2026-09-2312026-10-20T18:38:26.4639623Z
2026-09-21 – 2026-09-2112026-10-20T18:38:26.4639623Z
2026-09-18 – 2026-09-18222026-10-20T18:38:26.4639623Z
2026-09-17 – 2026-09-17222026-10-20T18:38:26.4639623Z
2026-09-16 – 2026-09-1612026-10-20T18:38:26.4639623Z
2026-09-14 – 2026-09-1422026-10-20T18:38:26.4639623Z
2026-09-12 – 2026-09-1252026-10-20T18:38:26.4639623Z
2026-09-11 – 2026-09-1112026-10-20T18:38:26.4639623Z
2026-09-10 – 2026-09-1012026-10-20T18:38:26.4639623Z
2026-09-09 – 2026-09-0932026-10-20T18:38:26.4639623Z
2026-09-08 – 2026-09-0822026-10-20T18:38:26.4639623Z
2026-09-07 – 2026-09-0742026-10-20T18:38:26.4639623Z
2026-09-06 – 2026-09-0662026-10-20T18:38:26.4639623Z
2026-09-04 – 2026-09-0412026-10-20T18:38:26.4639623Z
2026-09-01 – 2026-09-0132026-10-20T18:38:26.4639623Z
2026-08-31 – 2026-08-3132026-10-20T18:38:26.4639623Z
2026-08-28 – 2026-08-2812026-10-20T18:38:26.4639623Z
2026-08-26 – 2026-08-2622026-10-20T18:38:26.4639623Z
2026-08-24 – 2026-08-24152026-10-20T18:38:26.4639623Z
2026-08-23 – 2026-08-2332026-10-20T18:38:26.4639623Z
2026-08-22 – 2026-08-2212026-10-20T18:38:26.4639623Z
2026-08-20 – 2026-08-2012026-10-20T18:38:26.4639623Z
2026-08-19 – 2026-08-1922026-10-20T18:38:26.4639623Z
2026-08-18 – 2026-08-18562026-10-20T18:38:26.4639623Z
2026-08-17 – 2026-08-1792026-10-20T18:38:26.4639623Z
2026-08-16 – 2026-08-1632026-10-20T18:38:26.4639623Z
2026-08-14 – 2026-08-1452026-10-20T18:38:26.4639623Z
2026-08-13 – 2026-08-1392026-10-20T18:38:26.4639623Z
2026-08-11 – 2026-08-1132026-10-20T18:38:26.4639623Z
2026-08-09 – 2026-08-0982026-10-20T18:38:26.4639623Z
2026-08-06 – 2026-08-0612026-10-20T18:38:26.4639623Z
2026-08-05 – 2026-08-0512026-10-20T18:38:26.4639623Z
2026-08-04 – 2026-08-0472026-10-20T18:38:26.4639623Z
2026-08-03 – 2026-08-03122026-10-20T18:38:26.4639623Z
2026-08-02 – 2026-08-0212026-10-20T18:38:26.4639623Z
2026-08-01 – 2026-08-0112026-10-20T18:38:26.4639623Z
2026-07-29 – 2026-07-2992026-10-20T18:38:26.4639623Z
2026-07-27 – 2026-07-2722026-10-20T18:38:26.4639623Z
2026-07-23 – 2026-07-2322026-10-20T18:38:26.4639623Z
2026-07-22 – 2026-07-2252026-10-20T18:38:26.4639623Z

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.3.831 May 202610

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
lpalbou/abstractcode

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 17:39 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:1f0d8e44d1767a28a51bccf23f315c092ceb67883b6340a1972e648535ea1d3e