Skip to main content

Local-first Active Context Engine for AI coding

Project description

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."

Approach Common shape Tradeoff ACE-Lite position
Repo packers Single-file repository export or large prompt stuffing Fast setup, but token cost and context precision can degrade on larger repos ACE-Lite retrieves and ranks only the most relevant files/chunks, then emits a source plan
Managed context engines Hosted or platform-oriented code search / semantic retrieval systems Powerful at scale, but usually heavier to operate or adopt ACE-Lite stays local-first and file-based, with no required external vector DB
Memory layers Persistent user/project memory across sessions Good for recall, but memory alone does not produce an execution plan ACE-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

Project details


Download files

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

Source Distribution

ace_lite_engine-0.3.90.tar.gz (831.0 kB view details)

Uploaded Source

Built Distribution

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

ace_lite_engine-0.3.90-py3-none-any.whl (1.0 MB view details)

Uploaded Python 3

File details

Details for the file ace_lite_engine-0.3.90.tar.gz.

File metadata

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

File hashes

Hashes for ace_lite_engine-0.3.90.tar.gz
Algorithm Hash digest
SHA256 b9eadd40458746ce0796937545c0ff078219d27eea8744ba50d4417d9d4c2f3d
MD5 d46368839052bae84ec7257bba96c41c
BLAKE2b-256 dc6646afe86eb2f562ac2e97fdc2258bd4c47491cbe619998dc54f6db5617b54

See more details on using hashes here.

Provenance

The following attestation bundles were made for ace_lite_engine-0.3.90.tar.gz:

Publisher: publish-pypi.yml on z2m2020/ace-lite

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

File details

Details for the file ace_lite_engine-0.3.90-py3-none-any.whl.

File metadata

File hashes

Hashes for ace_lite_engine-0.3.90-py3-none-any.whl
Algorithm Hash digest
SHA256 aae89e5a45a85f7eb1b60da187f721cbd3bd3f4863321a73dd596a38f63ec465
MD5 17c7bfa2a751be8651623ef3e7b476dd
BLAKE2b-256 b3eaf83b3550fce61c39fa8b5c27a3bd8d38c93a3007b0724bff17347ccdecad

See more details on using hashes here.

Provenance

The following attestation bundles were made for ace_lite_engine-0.3.90-py3-none-any.whl:

Publisher: publish-pypi.yml on z2m2020/ace-lite

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

Supported by

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