Catalog PyPI
PACKAGE EXPLORERView in registry

ace-lite-engine

PyPI

Local-first Active Context Engine for AI coding

Versions collected1
Direct dependencies15From release 0.3.91
Last observed20 Oct, 18:06 UTC

README

Version 0.3.91 documentation

ACE-Lite Engine

ACE-Lite Engine Poster (The Missing Middle)

Local-first, MCP-native Active Context Engine for AI coding.

ACE-Lite ships both a CLI (ace-lite) and an MCP server entrypoint (ace-lite-mcp) so the same retrieval and planning stack can be used from terminals, CI, and MCP-compatible agent hosts.

ACE-Lite avoids "dump the whole repository into the model" workflows. Instead, it runs a deterministic pipeline to distill structure, retrieve candidates with hybrid rankers, and produce a source plan (steps + constraints + selected files/chunks) you can execute and review.

If you want full-repo packing with minimal setup, consider tools like Repomix. ACE-Lite is optimized for top-k relevant context with benchmarkable retrieval quality.

Core capabilities

  • Deterministic pipeline: memory -> index -> repomap -> augment -> skills -> history_channel -> context_refine -> source_plan -> validation
  • Hybrid retrieval defaults: multiple rankers + fusion (lexical / semantic / graph / worktree / feedback), with fail-open behavior
  • Multi-language indexing (tree-sitter): Python / TypeScript+TSX / JavaScript / Go / Solidity / Rust / Java / C / C++ / C# / Ruby / PHP
  • Skill lazy-loading: route Markdown skills by query intent, load section-level content only
  • Dual-channel memory: MCP primary with REST fallback
  • RepoMap generation: token-budgeted repository map (json + md)
  • Validation-aware planning: source plans can carry validation tests, patch artifacts, and evidence checks
  • Workspace planning: multi-repo routing, workspace summaries, and evidence-gated workspace plans
  • Plugin hooks: before/after stage hooks via in-process and MCP runtime
  • Benchmark automation: quality scoring, baseline comparison, and regression gates
  • Layered config: home -> repo -> cwd -> CLI

When to use ACE-Lite

  • Use ACE-Lite when you want a plan + curated context (top-k files/chunks) with deterministic, regression-tested selection.
  • Use repo packers when you want full-repo context quickly and accept lower precision.
  • Use DB-backed vector search when you need always-on semantic search at scale and accept backend complexity.

Positioning

ACE-Lite is designed for the middle ground between "pack the whole repo into the prompt" and "deploy a heavyweight managed context platform."

ApproachCommon shapeTradeoffACE-Lite position
Repo packersSingle-file repository export or large prompt stuffingFast setup, but token cost and context precision can degrade on larger reposACE-Lite retrieves and ranks only the most relevant files/chunks, then emits a source plan
Managed context enginesHosted or platform-oriented code search / semantic retrieval systemsPowerful at scale, but usually heavier to operate or adoptACE-Lite stays local-first and file-based, with no required external vector DB
Memory layersPersistent user/project memory across sessionsGood for recall, but memory alone does not produce an execution planACE-Lite includes memory, but centers the workflow on actionable code retrieval and planning

This is also why ACE-Lite is not trying to be a full IDE or an all-in-one coding agent. Its job is narrower: give any capable model or agent a better, smaller, and more testable working set.

Why It Stands Out

  • MCP-native: ACE-Lite exposes its core capabilities through MCP, which makes it usable from modern MCP-compatible clients and agent runtimes.
  • Benchmarkable retrieval: ACE-Lite treats retrieval quality as something you can measure in CI, not just judge by feel.
  • Local-first: the default workflow does not require a hosted backend or a separate search cluster.
  • Action-oriented output: the end product is a source plan with selected files, chunks, and constraints, not just raw retrieved text.

Competitive Notes

The high-level competitive framing is directionally right, with a few important caveats:

  • Repo packing is a real comparison point, but not every local coding tool is "full dump into prompt only." Some tools also maintain repo maps or lightweight retrieval layers.
  • Managed products such as Augment Code and Sourcegraph do far more than simple vector search; they combine search, code intelligence, and platform integrations.
  • Memory products such as Mem0 address a different layer of the stack. They are complementary more often than they are direct substitutes.

The stronger open-source claim for ACE-Lite is not "it beats every alternative everywhere." The stronger claim is that it offers a rare combination of MCP integration, deterministic retrieval, local-first operation, and built-in regression testing for context quality.

Installation

python -m venv .venv
.venv\Scripts\activate
pip install -e .[dev]

Requirements:

  • Python 3.10+
  • For source checkouts, rerun ace-lite self-update or python -m pip install -e .[dev] after pulling changes so console entrypoints and package metadata stay in sync

Quickstart

See docs/README.md and docs/guides/GETTING_STARTED.md for the fastest path.

One-command demo (after install):

ace-lite demo

Top-level CLI areas currently exposed by the codebase:

  • plan, plan-quick, index, repomap
  • benchmark, workspace, runtime, doctor
  • memory, profile, feedback, skills, self-update

Build index:

ace-lite index --root . --output context-map/index.json

30-second checks:

ace-lite doctor

Build RepoMap:

ace-lite repomap build --root . --ranking-profile graph --output-json context-map/repo_map.json --output-md context-map/repo_map.md

Run planner:

ace-lite plan-quick --query "trace how benchmark thresholds are applied" --root . --top-k 8
ace-lite plan --query "trace how benchmark thresholds are applied" --repo ace-lite-engine --root . --skills-dir skills

Local profile and memory workflows:

# Manage local profile facts
ace-lite profile add-fact "Prefer deterministic patches" --confidence 0.9
ace-lite profile show

# Store/search/wipe local memory notes with namespace isolation
ace-lite memory store "Fix auth fallback behavior" --namespace repo:ace-lite --tag kind=bugfix
ace-lite memory search "fix auth" --namespace repo:ace-lite --limit 5
ace-lite memory wipe --namespace repo:ace-lite

Service-mode runtime utilities:

# Inspect resolved runtime settings and cache / MCP health
ace-lite runtime settings show --root .
ace-lite runtime doctor --root .
ace-lite runtime doctor-mcp --root . --probe-endpoints

# Generate or apply Codex MCP registration from current repo settings
ace-lite runtime setup-codex-mcp --root . --skills-dir skills --dry-run

# Watch layered config changes and validate reloads
ace-lite runtime watch-config --root . --max-polls 10 --poll-interval-seconds 1

# Run heartbeat + cron scheduler from `.ace-lite.yml` runtime section
ace-lite runtime run-scheduler --root . --max-ticks 5 --tick-interval-seconds 60 --simulate-clock

Workspace planning and validation:

ace-lite workspace validate --manifest path/to/workspace.yaml
ace-lite workspace summarize --manifest path/to/workspace.yaml
ace-lite workspace plan --manifest path/to/workspace.yaml --query "where is auth token validation implemented"
ace-lite workspace benchmark --manifest path/to/workspace.yaml --cases-json benchmark/workspace/cases/baseline_cases.json

Run benchmark with regression gate:

ace-lite benchmark run --cases benchmark/cases/default.yaml --repo ace-lite-engine --root . --warmup-runs 1 --output artifacts/benchmark/latest --baseline artifacts/benchmark/baseline.json --benchmark-threshold-profile strict --dependency-recall-floor 0.8 --chunk-hit-tolerance 0.02 --chunk-budget-growth-factor 1.15 --validation-test-growth-factor 1.5 --fail-on-regression
ace-lite benchmark run --cases benchmark/cases/default.yaml --repo ace-lite-engine --root . --warmup-runs 1 --no-include-plans --no-include-case-details --output artifacts/benchmark/ci-fast
ace-lite benchmark report --input artifacts/benchmark/latest/results.json
ace-lite benchmark diff --a artifacts/benchmark/latest/results.json --b artifacts/benchmark/baseline.json
ace-lite benchmark tune-report --input artifacts/benchmark/latest/results.json --output artifacts/benchmark/tune-report/latest

MCP server entrypoint:

ace-lite-mcp --transport stdio --root . --skills-dir skills

PowerShell helpers:

./scripts/run_smoke.ps1
./scripts/run_benchmark.ps1
./scripts/run_benchmark_tabi_v3.ps1

Release validation

Multi-repository matrix run (3+ repos):

python scripts/run_benchmark_matrix.py --matrix-config benchmark/matrix/repos.yaml --output-dir artifacts/benchmark/matrix/latest --fail-on-thresholds

Skill routing validation across supported CLI hosts:

python scripts/run_skill_validation.py --repo-url https://github.com/blockscout/frontend.git --repo-ref main --repo-name blockscout-frontend --repo-dir artifacts/repos-workdir/skill-validation --skills-dir skills --output-path artifacts/skill-eval/blockscout_skill_validation_matrix.json --index-cache-path artifacts/skill-eval/blockscout-index.json --languages typescript,javascript --apps codex,opencode,claude-code --min-pass-rate 1.0 --fail-on-miss

Release freeze bundle:

python scripts/run_release_freeze_regression.py --matrix-config benchmark/matrix/repos.yaml --output-dir artifacts/release-freeze/latest --fail-on-thresholds

Repository layout

  • src/ace_lite/ runtime engine and CLI
  • tests/ pytest test suite
  • skills/ Markdown skill manifests and sections
  • benchmark/ cases, matrix config, scoring contracts
  • scripts/ smoke/benchmark helper scripts
  • integrations/ MCP and host integration assets
  • plugins/ plugin examples and runtime extensions
  • docs/ architecture and operational docs

Index filtering (.aceignore)

Create a .aceignore file at the repository root to exclude low-signal paths from indexing and retrieval.

More examples: docs/reference/ACEIGNORE_COOKBOOK.md.

Example for Go repos with generated code:

# Protobuf output
*.pb.go

# Common generated naming
*_generated.go
*_gen.go

# Go mocks
mock_*.go
*_mock.go

# Vendor
vendor/

# Fixtures
testdata/

# Common contract binding locations (abigen output)
pkg/contract/

Documentation

  • Start here: docs/README.md
  • Getting started: docs/guides/GETTING_STARTED.md
  • Command cheatsheet: docs/guides/CHEATSHEET.md
  • Plan quick guide: docs/guides/PLAN_QUICK.md
  • MCP setup: docs/guides/MCP_SETUP.md
  • Runtime guide: docs/guides/RUNTIME.md
  • Workspace guide: docs/guides/WORKSPACE.md
  • Architecture overview: docs/design/ARCHITECTURE_OVERVIEW.md
  • Maintainer docs: docs/maintainers/README.md
  • Reference docs: docs/reference/ACEIGNORE_COOKBOOK.md
  • Upgrade guide: docs/reference/UPGRADE_GUIDE.md

Known limitations

  • Language symbol extraction is best-effort for some grammars (especially C/C++); ranking still falls back to path/module/content signals.
  • Embeddings are optional, but when enabled you must keep the embedding model + dimension consistent with your vector store/collection.
  • Design and maintainer notes live under docs/design/ and docs/maintainers/.

Governance

  • License: LICENSE
  • Contributing guide: CONTRIBUTING.md
  • Code of conduct: CODE_OF_CONDUCT.md
  • Security policy: SECURITY.md
  • Changelog: CHANGELOG.md

Support

  • Security reports: see SECURITY.md
  • General issues/feature requests: open a GitHub issue with reproduction details

Downloads & popularity

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

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

View observed values
Date / source periodValueObserved at
2026-10-19 – 2026-10-1912026-10-20T23:31:40.0945112Z
2026-10-18 – 2026-10-1812026-10-20T23:31:40.0945112Z
2026-10-17 – 2026-10-1752026-10-20T23:31:40.0945112Z
2026-10-16 – 2026-10-1632026-10-20T23:31:40.0945112Z
2026-10-14 – 2026-10-1442026-10-20T23:31:40.0945112Z
2026-10-13 – 2026-10-1322026-10-20T23:31:40.0945112Z
2026-10-12 – 2026-10-1212026-10-20T23:31:40.0945112Z
2026-10-11 – 2026-10-1122026-10-20T23:31:40.0945112Z
2026-10-10 – 2026-10-1012026-10-20T23:31:40.0945112Z
2026-10-09 – 2026-10-0952026-10-20T23:31:40.0945112Z
2026-10-08 – 2026-10-08122026-10-20T23:31:40.0945112Z
2026-10-07 – 2026-10-0722026-10-20T23:31:40.0945112Z
2026-10-06 – 2026-10-0612026-10-20T23:31:40.0945112Z
2026-10-05 – 2026-10-0532026-10-20T23:31:40.0945112Z
2026-10-04 – 2026-10-0412026-10-20T23:31:40.0945112Z
2026-10-01 – 2026-10-0122026-10-20T23:31:40.0945112Z
2026-09-30 – 2026-09-30282026-10-20T23:31:40.0945112Z
2026-09-29 – 2026-09-2992026-10-20T23:31:40.0945112Z
2026-09-28 – 2026-09-2822026-10-20T23:31:40.0945112Z
2026-09-26 – 2026-09-2682026-10-20T23:31:40.0945112Z
2026-09-24 – 2026-09-2432026-10-20T23:31:40.0945112Z
2026-09-18 – 2026-09-18162026-10-20T23:31:40.0945112Z
2026-09-12 – 2026-09-1212026-10-20T23:31:40.0945112Z
2026-09-11 – 2026-09-1112026-10-20T23:31:40.0945112Z
2026-09-10 – 2026-09-1022026-10-20T23:31:40.0945112Z
2026-09-09 – 2026-09-0922026-10-20T23:31:40.0945112Z
2026-09-07 – 2026-09-07152026-10-20T23:31:40.0945112Z
2026-09-06 – 2026-09-0662026-10-20T23:31:40.0945112Z
2026-09-03 – 2026-09-0312026-10-20T23:31:40.0945112Z
2026-09-01 – 2026-09-0112026-10-20T23:31:40.0945112Z
2026-08-31 – 2026-08-3122026-10-20T23:31:40.0945112Z
2026-08-24 – 2026-08-24142026-10-20T23:31:40.0945112Z
2026-08-23 – 2026-08-2332026-10-20T23:31:40.0945112Z
2026-08-20 – 2026-08-2012026-10-20T23:31:40.0945112Z
2026-08-19 – 2026-08-1922026-10-20T23:31:40.0945112Z
2026-08-18 – 2026-08-18572026-10-20T23:31:40.0945112Z
2026-08-17 – 2026-08-1782026-10-20T23:31:40.0945112Z
2026-08-14 – 2026-08-1442026-10-20T23:31:40.0945112Z
2026-08-13 – 2026-08-1322026-10-20T23:31:40.0945112Z
2026-08-12 – 2026-08-1212026-10-20T23:31:40.0945112Z
2026-08-11 – 2026-08-1112026-10-20T23:31:40.0945112Z
2026-08-09 – 2026-08-0972026-10-20T23:31:40.0945112Z
2026-08-08 – 2026-08-0812026-10-20T23:31:40.0945112Z
2026-08-07 – 2026-08-0732026-10-20T23:31:40.0945112Z
2026-08-06 – 2026-08-0612026-10-20T23:31:40.0945112Z
2026-08-04 – 2026-08-0482026-10-20T23:31:40.0945112Z
2026-08-03 – 2026-08-03122026-10-20T23:31:40.0945112Z
2026-08-02 – 2026-08-0212026-10-20T23:31:40.0945112Z
2026-08-01 – 2026-08-0112026-10-20T23:31:40.0945112Z
2026-07-30 – 2026-07-3012026-10-20T23:31:40.0945112Z
2026-07-27 – 2026-07-2732026-10-20T23:31:40.0945112Z
2026-07-23 – 2026-07-2322026-10-20T23:31:40.0945112Z

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.3.9117 Apr 202615

Package advisories

0
No matching advisories collected

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

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 18:06 UTC

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

Record identity

package:26c90a37f199e63e5f2bffdd39a576b6c35dd0032609b254e16126ad756f7936