← back to gallery

Context Engines

Live capability board for OSS code-context engines that feed coding agents.

dev-toolsmcpcode-searchcontext-engineclaude-codecursorhybrid-retrievalagentsleaderboard
Open product ↗

context-engines

Live capability board for OSS code-context engines — the new category of tools that index your codebase once and feed coding agents (Claude Code, Cursor, OpenCode, Continue, Cline, Aider, Windsurf, …) only the slice they actually need.

Production URL: https://holyai.me/context-engines/

What this is

For each tracked engine we hit the real GitHub REST API every 6 hours, parse the README with deterministic regex, and compute a six-axis Context Score (0–100) plus a tier (S/A/B/C/D). The board surfaces:

No mocks, no seed fallbacks, no synthetic data. Every number traces back to a real GitHub API call or a regex hit on the live README at the captured commit.

Stack

Real data sources

| Endpoint | What we extract |
| --- | --- |
| GET /repos/{o}/{n} | stars, forks, license SPDX id, default branch, archived flag, open issues |
| GET /repos/{o}/{n}/commits?per_page=1 | last commit SHA + date |
| GET /repos/{o}/{n}/commits?since=<now-7d> | weekly commit count |
| GET /repos/{o}/{n}/releases/latest | latest release tag + date |
| GET /repos/{o}/{n}/readme | raw README markdown (canonical filename) |
| GET /repos/{o}/{n}/languages | language byte map |

Refresh cadence: every 6 hours (cron 0 /6 ), paced at ~1 request/second to stay well under the secondary rate limiter. Daily reseed at 04:00 picks up any new engines added to data/engines.json.

Score breakdown

| Axis | Weight | Inputs |
| --- | --- | --- |
| Maintenance | 20% | days since last commit (0d → 100, 7d → 90, 30d → 70, 90d → 40, 180d → 20, 365d+ → 5); archived flag overrides to 0 |
| Velocity | 15% | commits in the last 7 days (21+ → 100, 6 → 75, 1–2 → 30, 0 → 0) |
| Capability | 25% | MCP-compatible (+30), retrieval mode hybrid/dense/lexical (+25/+15/+10), AST chunker (+15), ≥20 languages claimed (+15), vector backend detected (+15) |
| Transparency | 10% | token-reduction claim present (+30), README ≥ 800 chars (+30), at least one release (+20), real license (+20) |
| Footprint | 15% | single binary (+25), offline-capable (+25), ≥2 install methods detected (+25), permissive license (+25) |
| Popularity | 15% | log10(stars+1) normalized so 10k stars = 100 |

ContextScore = round(0.20*Maint + 0.15*Veloc + 0.25*Cap + 0.10*Trans + 0.15*Footp + 0.15*Pop)

Tier mapping: S 80–100, A 65–79, B 50–64, C 35–49, D 0–34.

Running locally

cp .env.example .env
# put a GitHub token in .env (read:public is enough)
npm install
npm start          # serves :4905/context-engines
npm run refresh    # manually trigger a refresh of all engines
npm run reseed     # pick up any new entries added to data/engines.json

The server runs an initial refresh in the background 10 seconds after boot. The page works immediately with seed metadata; capability flags fill in as the refresh completes (1 second per engine, paced).

Adding an engine

Add { "owner": "...", "name": "...", "install_kind": "..." } to data/engines.json and either restart or wait for the 04:00 reseed cron. The engine will be picked up on the next refresh run.

Endpoints

GET  /context-engines/                       SPA
GET  /context-engines/health                 { ok, engines, lastRefreshAt, version }
GET  /context-engines/api/engines            full leaderboard
GET  /context-engines/api/engines/:slug      detail + provenance + score history
GET  /context-engines/api/movers             7-day gainers and decliners
GET  /context-engines/api/stats              totals, medians, distributions
GET  /context-engines/api/category-matrix    capability matrix used by the Matrix view
GET  /context-engines/api/refresh-status     last refresh metadata + rate limit

No authentication on any endpoint. All routes public.

License

MIT.