{"id":50146527,"url":"https://github.com/coseto6125/egent-code-plexus","last_synced_at":"2026-05-31T06:01:54.507Z","repository":{"id":358851558,"uuid":"1239329830","full_name":"coseto6125/egent-code-plexus","owner":"coseto6125","description":"A high-performance code intelligence graph for LLMs and AI agents. Sub-second structural queries, impact analysis, and cross-repo API contracts for autonomous coding workflows.","archived":false,"fork":false,"pushed_at":"2026-05-26T11:08:10.000Z","size":14049,"stargazers_count":3,"open_issues_count":3,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-26T12:36:51.224Z","etag":null,"topics":["ai-agent","ai-coding","code-graph","code-intelligence","codegraph-rust","gitnexus","graph","graph-analysis","mcp-server","rust","static-analysis","tree-sitter"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coseto6125.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-15T01:48:06.000Z","updated_at":"2026-05-26T09:38:13.000Z","dependencies_parsed_at":"2026-05-19T12:04:13.387Z","dependency_job_id":"5b9e4f8c-0c36-4730-b428-763209a8163c","html_url":"https://github.com/coseto6125/egent-code-plexus","commit_stats":null,"previous_names":["coseto6125/code-graph-nexus","coseto6125/egent-code-plexus"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/coseto6125/egent-code-plexus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coseto6125%2Fegent-code-plexus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coseto6125%2Fegent-code-plexus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coseto6125%2Fegent-code-plexus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coseto6125%2Fegent-code-plexus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coseto6125","download_url":"https://codeload.github.com/coseto6125/egent-code-plexus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coseto6125%2Fegent-code-plexus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33554782,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","ai-coding","code-graph","code-intelligence","codegraph-rust","gitnexus","graph","graph-analysis","mcp-server","rust","static-analysis","tree-sitter"],"created_at":"2026-05-24T05:06:17.843Z","updated_at":"2026-05-31T06:01:54.499Z","avatar_url":"https://github.com/coseto6125.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# `ecp` · EgentCodePlexus\n\n### The structural code graph built for AI agents, not humans.\n\n*22k files indexed in 2.6 s · any query answered in \u0026lt;175 ms · honest unknowns, never hallucinated edges.*\n\n[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/coseto6125/egent-code-plexus/badge)](https://scorecard.dev/viewer/?uri=github.com/coseto6125/egent-code-plexus)\n![Cold index 2.6s](https://img.shields.io/badge/cold_index-2.6s%20%2F%2022k%20files-brightgreen)\n![Query latency](https://img.shields.io/badge/query-%3C175ms%20cold-blue)\n![Languages](https://img.shields.io/badge/languages-31%20parsed-orange)\n![License](https://img.shields.io/badge/license-PolyForm%20NC-lightgrey)\n![Built with Rust](https://img.shields.io/badge/built_with-Rust-orange?logo=rust)\n![Status early release](https://img.shields.io/badge/status-early%20release-yellow)\n\n**English** · [繁體中文](./docs/readme_i18n/README_zh-TW.md) · [简体中文](./docs/readme_i18n/README_zh-CN.md) · [日本語](./docs/readme_i18n/README_ja.md) · [한국어](./docs/readme_i18n/README_ko.md) · [Español](./docs/readme_i18n/README_es.md) · [Português](./docs/readme_i18n/README_pt-BR.md) · [Русский](./docs/readme_i18n/README_ru.md) · [हिन्दी](./docs/readme_i18n/README_hi.md)\n\n```bash\n# Linux / macOS\ncurl -sSfL https://github.com/coseto6125/egent-code-plexus/releases/latest/download/install.sh | sh\n```\n\n[All install options](#-install) · [Uninstall](#uninstall)\n\n\u003c/div\u003e\n\n---\n\nAutonomous coding agents fire **20–50 structural queries per task**. Those queries all hit tools built for humans: IDE sidebars, daemons that need warming, output formatted for reading. The mismatch shows up in three concrete failure modes:\n\n1. **Token waste** — a `grep` dump returns 400 lines where the agent needed 10 symbols\n2. **Broken refactors** — a missed caller slips through because the resolver guessed and got it wrong\n3. **Hallucinated dependencies** — when static analysis can't reach an edge, the tool invents one\n\n`ecp` was built to eliminate all three.\n\n| Failure mode | `ecp`'s answer |\n|---|---|\n| Context window blown on raw search output | **TOON / compact JSON** — symbols, lines, and edges only; no padding |\n| Missed caller, silent downstream breakage | **`impact`** — exact blast radius over real call and extend edges |\n| Fabricated dependency in the agent's reasoning | **`BlindSpot` records** — typed honest unknowns the agent can route around |\n| Graph goes dark outside the primary language | **31 languages** — service code, IaC, SQL, smart contracts in one traversal |\n\n---\n\n## 🎯 Design principles\n\nEach design decision has one source: *what does the receiving agent actually need?*\n\n**Output is a data structure.** TOON and compact JSON carry only what the agent needs for its next decision. No prose summaries. No visual chrome. No section headers consuming the context budget. The format defaults are already the right choice for most LLM prompts.\n\n**Stateless. Zero warm-up.** Each invocation `mmap`s a zero-copy `rkyv` graph file and exits. **~140–170 ms per query, startup included.** No daemon to keep alive. No warm-up phase. No \"server crashed, please restart\" recovery path. An agent can fire 50 queries per task without paying a process boot cost.\n\n**BlindSpot over hallucination.** When `ecp` can't statically resolve a call site — dynamic dispatch, reflection, an unresolved import — it emits a `BlindSpot` record: a named, typed, explicit gap in the graph. Agents can navigate around a known unknown. They cannot recover from a confident fabrication.\n\n**Polyglot by default.** 31 languages at structural depth. Service code, Dockerfiles, GitHub Actions, Terraform, SQL, Move, Solidity — one traversal covers all layers. No language switch means no graph blind spot.\n\n🎙️ **[Agent Interviews](./interviews/README.md)** — Gemini CLI and Codex describe how they use `ecp` in live autonomous task flows.\n\nBuilt on [GitNexus](https://github.com/abhigyanpatwari/GitNexus) by [Abhigyan Patwari](https://github.com/abhigyanpatwari) — same structural-graph concept, rewritten in Rust, different audience. [PolyForm Noncommercial 1.0.0](./LICENSE.md); see [NOTICES.md](./LICENSES/NOTICES.md) for required attribution.\n\n---\n\n## ⚡ Performance receipts\n\nHead-to-head against two other code-graph tools — [`codegraph`](https://github.com/colbymchenry/codegraph) (Node + SQLite) and upstream [`gitnexus`](https://github.com/abhigyanpatwari/GitNexus) (Node) — on the same checkouts, same machine. `ecp` is a stateless one-shot CLI: every latency below **includes full process startup**, no daemon, no warm-up.\n\n*Versions: `ecp` 0.4.2 · `codegraph` 0.9.4 · `gitnexus` 1.6.5. All tools capped at a 1 MiB max-file-size threshold where configurable (`gitnexus` hard-codes 512 KB). `ecp` medians over 5–7 runs. Hardware: AMD Ryzen 9 9950X (16 logical), Linux.*\n\n### `microsoft/vscode` — 14,874 files, dense single-language TypeScript\n\n| Metric | **`ecp`** | `codegraph` | `gitnexus` |\n|---|---|---|---|\n| **Cold index** | **4.6 s** | 166.9 s | **DNF** — killed at 27 min |\n| Peak RSS | **~1.0 GiB** | 1.7 GiB | 4.6 GiB (still climbing) |\n| Symbol find / query | **34.6 ms** | 169.5 ms | — |\n| Callers / impact | **27.2 ms** | 172.4 ms | — |\n| Inspect / context | **35.0 ms** | 415.9 ms | — |\n| Impact baseline (git-diff) | **725.9 ms** | N/A — no such mode | — |\n| Graph nodes | **507,257** | 315,498 | — |\n| Graph edges | 916,380 | **986,709** | — |\n| Index size on disk | **87 MiB** | 671 MiB | — |\n| Files indexed | **14,874** | 10,814 | — |\n\n*`gitnexus` did not finish — killed after 27 min stuck in its in-memory graph-resolution phase (RSS 4.6 GiB, no output written).*\n\n### `abhigyanpatwari/GitNexus` — 3,232 files, polyglot (the corpus all three can finish)\n\n| Metric | **`ecp`** | `codegraph` | `gitnexus` |\n|---|---|---|---|\n| **Cold index** | **0.74 s** | 11.2 s | 77.6 s |\n| Peak RSS | **264 MiB** | 501 MiB | 2.5 GiB |\n| Find / query | **9.4 ms** | 103.5 ms | — |\n| Callers / impact | **9.2 ms** | 104.2 ms | 297.6 ms |\n| Inspect / context | **9.4 ms** | — | 295.5 ms |\n| Graph nodes | **49,122** | 19,604 | 30,223 |\n| Graph edges | **48,271** | 39,155 | 47,218 |\n| Index size on disk | **7.7 MiB** | 37 MiB | 306 MiB |\n| Files indexed | **3,232** | 2,968 | 3,232 |\n\n**Cold index: 15–37× faster than `codegraph`; `gitnexus` doesn't finish on a real large repo. Lowest memory, smallest on-disk index, densest graph — at every scale.**\n\n### Scale: `.sample_repo` — 22,645 files, 25 languages, 2.1 GB polyglot corpus\n\n**Ingest:**\n\n| Metric | Value |\n|---|---|\n| Files indexed | **22,645** across 25 detected languages |\n| Cold ingest | **2.60 s** (parse + resolve + serialize) |\n| Incremental ingest | **4.9 ms** (xxh3_64 hash walk, zero dirty files) |\n| Hardware | AMD Ryzen 9 9950X (16 logical), 39.2 GiB RAM, Linux 6.6.87 |\n\n**Per-query latency, process startup included:**\n\n| Query | Median | What it covers |\n|---|---|---|\n| `summary` | **1.4 ms** | registry mmap — smallest read |\n| `routes` | **142.3 ms** | declarative + imperative route enumeration |\n| `summary --detailed` | **143.4 ms** | full registry + per-framework confidence scoring |\n| `impact --direction down` | **145.0 ms** | BFS over Calls / Extends edges |\n| `inspect` | **145.6 ms** | symbol resolution + 1-hop traversal |\n| `find --mode bm25` | **154.5 ms** | Tantivy query + 5-bucket partition |\n| `cypher` (narrow) | **161.5 ms** | one pattern, one row |\n| `cypher` (broad) | **174.2 ms** | wider pattern, more matches |\n| `impact --baseline HEAD~1` | **359.0 ms** | git diff + parallel per-file parse + BFS |\n\nReproduce everything: `python scripts/benchmark/benchmark_ecp.py`.\n\n### Rust-tier competitor comparison\n\n`scripts/benchmark/benchmark_vs_competitors.py` benchmarks against [`codescope`](https://github.com/onur-gokyildiz-bhi/codescope) (SurrealDB-backed) and `coraline` (SQLite-backed) across 6 phases: `cold-index`, `symbol-find`, `callers`, `file-context`, `route-map`, `cypher`. Missing phases → `N/A` (absence is signal). Results regenerate `docs/benchmark-vs-competitors.md`.\n\n```bash\npython scripts/benchmark/benchmark_vs_competitors.py\npython scripts/benchmark/benchmark_vs_competitors.py --corpus path/to/repo --iterations 5 --no-plot\n```\n\n---\n\n## 🆚 vs. upstream GitNexus\n\nSame structural-graph concept, different audience. Not a drop-in replacement — choose based on who reads the output and what they do with it.\n\n| Dimension | EgentCodePlexus | GitNexus |\n|---|---|---|\n| Primary consumer | Autonomous AI code agents | Human devs + IDE integration |\n| Runtime | Stateless one-shot CLI (zero warm-up) | Long-running MCP server |\n| Performance | **\u003c 2.5s cold index / \u003c 175ms query** | ~60s cold index / ~400ms query |\n| Unresolved edge | `BlindSpot` record (honest unknown) | Heuristic guess |\n| Default output | TOON / compact JSON (token-cheap) | Wiki / UI rendering |\n| Languages | 31 (14 deep + 17 structural) | 14 (deep, 9-dimension) |\n| Storage | Rust + `rkyv` zero-copy mmap | Node.js + LadybugDB |\n\n**Full breakdown, philosophy, and decision matrix → [docs/vs-gitnexus.md](./docs/vs-gitnexus.md)**\n\n---\n\n## 📦 Install\n\nPrebuilt binaries ship with each GitHub Release. Installer scripts fall back to a cargo source build only when a matching asset is unavailable.\n\n```bash\n# Linux / macOS\ncurl -sSfL https://github.com/coseto6125/egent-code-plexus/releases/latest/download/install.sh | sh\n\n# Windows PowerShell\niwr https://github.com/coseto6125/egent-code-plexus/releases/latest/download/install.ps1 -UseBasicParsing | iex\n\n# Direct cargo (no installer wrapper)\ncargo install --git https://github.com/coseto6125/egent-code-plexus egent-code-plexus --bin ecp --locked\n```\n\nPrefer a package manager? The npm and PyPI packages ship the same prebuilt\nbinary (no compile, no toolchain) and pick the right platform automatically:\n\n```bash\n# npm — run without installing, or install globally\nnpx egent-code-plexus --help\nnpm install -g egent-code-plexus\n\n# PyPI — via uv or pipx\nuvx egent-code-plexus --help\nuv tool install egent-code-plexus     # or: pipx install egent-code-plexus\n\n# cargo-binstall (prebuilt, no source build)\ncargo binstall egent-code-plexus\n```\n\nCPU-tuned source build:\n\n```bash\nrepo=https://github.com/coseto6125/egent-code-plexus\nRUSTFLAGS=\"-C target-cpu=native\" cargo install --git \"$repo\" egent-code-plexus --bin ecp --locked --profile release-dist\n```\n\n### Uninstall\n\n```bash\necp uninstall            # remove agent integrations + ~/.ecp cache + the binary\necp uninstall --dry-run  # preview what would be removed, change nothing\n```\n\nOne command reverses every setup side-effect: Claude Code / Codex / Gemini\nhooks, MCP servers, and skills; the per-repo git hook; the `~/.ecp` index cache;\nand the `ecp` binary itself. On Windows the binary is deleted by a short delayed\nstep after the process exits (a running `.exe` can't delete itself in place).\n\nScope it to one agent with `--agent claude` (leaves the binary and cache in\nplace), or keep the index cache across a reinstall with `--keep-cache`. If you\ninstalled via a package manager, use its own remover instead:\n\n```bash\nnpm uninstall -g egent-code-plexus\nuv tool uninstall egent-code-plexus   # or: pipx uninstall egent-code-plexus\ncargo uninstall egent-code-plexus\n```\n\n---\n\n## 🚀 Quick start\n\nNo daemon to start. No config required. One command from zero to a queryable graph.\n\n```bash\n# Index (incremental; first query also auto-indexes if index is absent)\necp admin index --repo .\n\n# Find a symbol — exact by default\necp find loginUser\necp find login --mode bm25            # BM25 ranking, partitioned into 5 output buckets\n\n# Blast radius — who breaks if I change this?\necp impact validateUser --direction upstream\n\n# Full symbol context (signature, body, callers, callees, 1-hop impact)\necp inspect validateUser\n\n# HTTP route map (declarative @Get + imperative app.get())\necp routes\necp routes /api/users --method POST   # route → handler → caller chain\n\n# File usage: who reads / writes this path?\necp impact --literal session_meta.json\n```\n\nAll read-side commands accept `--format text|json|toon`. Defaults are token-cheapest per command (mostly `toon`; `find` defaults to `text`; `cypher`/`summary` default to `json`).\n\n---\n\n## 🛠️ CLI surface\n\nTwo tiers: **agent commands** at top level (query / refactor / verify) and **admin commands** under `ecp admin` (registry / hooks / destructive). Run `ecp --help` and `ecp admin --help` for full flag matrices.\n\n**Agent commands:**\n\n| Command | Purpose |\n|---|---|\n| `inspect \u003cname\u003e` | Symbol → metadata, decorators, signature, callers, callees, 1-hop impact, contained methods / properties / enum variants |\n| `find \u003cpattern\u003e` | Exact · `--mode fuzzy` · `--mode bm25` (5 buckets: source / tests / reference / document / config) |\n| `find-schema-bindings \u003cfield\u003e` | MirrorsField heuristic edges + blind-spot candidates across classes / services |\n| `find-transaction-patterns [--class \u003cName\u003e]` | Saga compensate/undo/rollback name-pairs; ≥0.75 → POSSIBLY_RELATED, \u003c0.75 → BLIND_SPOT |\n| `impact \u003cname\u003e --direction \u003cup\\|down\u003e` | Blast-radius BFS with confidence filtering; `--since \u003cref\u003e` for change-set impact |\n| `rename --symbol \u003cold\u003e --new-name \u003cnew\u003e` | AST-aware multi-file rename across 14 languages. Always `--dry-run` first. |\n| `cypher '\u003cquery\u003e'` | openCypher escape hatch; `m.content` returns source body |\n| `summary` | Registry overview, framework coverage, LLM-actionable blind-spot catalog, graph freshness |\n| `routes [\u003cpath\u003e]` | HTTP route enumeration (declarative + imperative); with `\u003cpath\u003e`: handler + caller chain |\n| `contracts` | Cross-repo API contract inventory (routes / queue / RPC) |\n| `diff` | Resolver-delta: binding tier-degradation + route / contract changes |\n| `tool-map` | External HTTP / DB / Redis / queue call sites via import-binding analysis |\n| `shape-check` | Drift between HTTP consumer access patterns and Route response shapes |\n| `peers` | Multi-session collaboration: `status / diff / say / inbox / log / thread / watch / gc` |\n| `review` | One-shot audit: impact + summary + tool-map + shape-check + diff, high-confidence signals only |\n\n**Admin commands** (`ecp admin \u003ccmd\u003e`):\n\n| Command | Purpose |\n|---|---|\n| `index --repo \u003cpath\u003e` | Build / refresh the graph; incremental via xxh3_64 content cache. `--force` for full rebuild. |\n| `drop / prune / rename-branch` | Index lifecycle: delete, prune stale branch dirs, rename branch on-disk |\n| `install-hook` | Git reference-transaction hook (auto-tracks branch switches) |\n| `config` | Interactive TOML wizard for `.ecp/config.toml` |\n| `mcp serve` / `mcp tools` | MCP server (stdio); `tools` lists exposed surface |\n\nAll commands resolve `.ecp/graph.bin` from CWD unless `--graph \u003cpath\u003e` is given. Every agent-facing command is non-interactive; every output stream is parseable.\n\n### Multi-session peer sync\n\nWhen multiple LLM sessions edit the same repo in parallel, `ecp peers` surfaces each session's symbol-level dirty state and enables direct session messaging. Register via `ECP_SESSION_ID`, `CODEX_SESSION_ID`, `CODEX_THREAD_ID`, or `CLAUDE_CODE_SESSION_ID`.\n\n```bash\n# Start the watcher (one per session; required for inbox push events)\necp peers watch --start\n\n# Who else is editing right now?\necp peers status                                  # text\necp peers status --format json                    # {session_id, pid, watcher: alive|dead|not-started}\n\n# Inspect a peer's dirty symbols\necp peers diff \u003cpeer-session-id\u003e [\u003csymbol\u003e]\n\n# Send messages\necp peers say \"rebasing on main, hold pushes 5min\"    # broadcast\necp peers say --to \u003cpeer-session-id\u003e \"take auth.rs?\"  # targeted\n\n# Read and manage\necp peers inbox\necp peers log --limit 20\necp peers thread \u003cmsg-id\u003e\n\n# Cleanup\necp peers watch --stop \u0026\u0026 ecp peers gc\n```\n\nThe `watcher` field distinguishes `alive` | `dead` | `not-started` — crashes don't masquerade as \"feature not used.\"\n\n### Provable code-review verdicts\n\n`ecp review --verdicts` pre-computes graph-backed verdicts from `ecp diff` sections. Pass the JSON directly as review context — skip LLM re-derivation of caller relationships from a raw diff.\n\n```bash\necp review --since main --verdicts --format json\n```\n\n| Severity | Rule |\n|---|---|\n| `RISK` | Cross-file callers exist, public symbol removed, or blindspot in diff region |\n| `WARN` | Intra-file callers only, or route modified |\n| `INFO` | No callers found, or new public surface added |\n\nVerdict kinds: `SIGNATURE_OR_BODY_CHANGED` · `NEW_PUBLIC_SURFACE` · `REMOVED_PUBLIC_SURFACE` · `ROUTE_CONTRACT_CHANGED` · `BLINDSPOT_IN_DIFF_REGION`\n\nEvery verdict cites the exact diff section and graph fact that triggered it. Full spec: [docs/specs/2026-05-22-review-verdicts.md](./docs/specs/2026-05-22-review-verdicts.md).\n\n---\n\n## 🔌 Agent integration\n\n**Prefer the native path** where available — it wires auto-reindex hooks and workflow skills that teach the agent *when* graph queries are worth the round-trip. **MCP is the universal fallback** for any host that speaks the protocol.\n\n| Agent | Path | Wires |\n|---|---|---|\n| Claude Code | native | hooks + skills + optional MCP |\n| Codex CLI | native | skills (native-tools pending) |\n| Gemini CLI | native | native skill **or** MCP |\n| Cursor · Windsurf · Cline · Copilot · any MCP host | MCP | MCP server |\n\nGuided setup: `ecp admin → Agent Integrations → \u003chost\u003e`. Scriptable path for automation: `ecp admin \u003chost\u003e install \u003ccomponent\u003e`. Inspect any host: `ecp admin \u003chost\u003e status`.\n\n### Claude Code\n\n```bash\necp admin claude install hooks          # settings.json: auto-reindex + context enrichment\necp admin claude install skills all     # ecp + simplify skill packs (or: ecp | simplify)\necp admin claude install mcp-server     # optional — hooks + skills + CLI already sufficient\n```\n\nHooks feed graph context on every Grep/Glob/Bash without an explicit tool call. The `ecp` skill teaches symbol / impact / route / contract / rename workflows. `simplify` drives graph-first code review.\n\n### Gemini CLI\n\n```bash\necp admin gemini install native-skill   # links via `gemini skills link`\necp admin gemini install mcp-server     # registers via `gemini mcp add`\n```\n\n`native-skill` and `mcp-server` are mutually exclusive — installing one removes the other.\n\n### Codex CLI\n\n```bash\necp admin codex install skills all      # ecp + simplify; native-tools pending Codex wiring\n```\n\n**Workflow skills:**\n\n| Skill | Use when |\n|---|---|\n| `ecp` | Agent decides whether graph-aware workflows beat grep / file reads for symbols, callers, routes, contracts |\n| `simplify` | Code review starting from ecp impact, blind spots, egress, shape drift, resolver deltas |\n\n### MCP fallback (Cursor, Windsurf, Cline, any MCP host)\n\n| Host | Config file |\n|---|---|\n| Cursor | `~/.cursor/mcp.json` |\n| Windsurf | `~/.codeium/windsurf/mcp_config.json` |\n| Cline (VS Code) | `cline_mcp_settings.json` (MCP panel → \"Edit MCP Settings\") |\n| Generic MCP host | host-specific |\n\n```json\n{\n  \"mcpServers\": {\n    \"ecp\": { \"command\": \"ecp\", \"args\": [\"admin\", \"mcp\", \"serve\"] }\n  }\n}\n```\n\n```bash\necp admin mcp tools    # verify exposed surface before connecting\necp admin mcp serve    # stateless one-shot per call (no warm-up cost)\n```\n\n---\n\n## 🏗️ Architecture\n\n```\ncrates/\n├── ecp-core        # Zero-copy graph (rkyv + mmap), incremental cache, graph queries\n├── ecp-analyzer    # Tree-sitter parsers, HTTP route detector, framework confidence\n├── ecp-mcp         # MCP server (stdio) — exposes core commands as tools\n└── ecp-cli         # `ecp` binary, Tantivy BM25 engine, token-optimized output\n```\n\nParse → resolve → serialize runs through an MPSC channel into a single builder thread that assembles the graph and writes a zero-copy `.ecp/graph.bin`. Read paths (`inspect`, `cypher`, `impact`, …) mmap this file directly — no deserialization step. xxh3_64 content cache keeps incremental rebuilds sub-second on a 22k-file repo.\n\n---\n\n## 🌐 Language coverage\n\n31 languages parsed at the structural level. **14 full-depth** (TypeScript, JavaScript, Python, Java, Kotlin, C#, Go, Rust, PHP, Ruby, Swift, C, C++, Dart) — imports, named bindings, exports, heritage, types, constructors, config, frameworks, entry points, calls, and rename. **17 structural-only**: Bash, Crystal, Cairo, Dockerfile, Docker Compose, GitHub Actions, HCL, Lua, Markdown, Move, Nim, Solidity, SQL, Verilog, Vyper, YAML, Zig.\n\n📊 **[Full Language Capability Matrix](./docs/language-matrix.md)** — per-language status and rationale.\n\n---\n\n## ⚙️ Tuning\n\n| Env var | Default | Effect |\n|---|---|---|\n| `ECP_MAX_FILE_BYTES` | `16777216` (16 MiB) | Skip source files above this size during ingest. Caps worst-case worker RAM at `num_threads × MAX`. |\n| `ECP_CSPROJ_MAX_DEPTH` | `4` | `*.csproj` discovery recursion depth. Raise for deeply-nested .NET monorepos. |\n\n---\n\n## 📜 License \u0026 acknowledgments\n\n[PolyForm Noncommercial 1.0.0](./LICENSE.md). Personal use, research, hobby projects, and noncommercial organizations explicitly permitted. **Commercial use is not granted by this license** — contact the upstream GitNexus author Abhigyan Patwari for commercial rights.\n\nBuilt on:\n- [GitNexus](https://github.com/abhigyanpatwari/GitNexus) — original design, CLI surface, and conceptual model\n- [tree-sitter](https://tree-sitter.github.io/) — robust incremental AST parsing\n- [rkyv](https://rkyv.org/) — zero-copy deserialization framework\n- [Tantivy](https://github.com/quickwit-oss/tantivy) — full-text search engine\n- [Rayon](https://github.com/rayon-rs/rayon) — data parallelism for multi-core concurrent AST parsing\n- [xxhash (xxh3_64)](https://xxhash.com/) — non-cryptographic hashing for content-based incremental indexing\n- [DashMap](https://github.com/xacrimon/dashmap) — concurrent hash maps for graph assembly\n- [memmap2](https://github.com/RazrFalcon/memmap2-rs) — zero-copy memory mapping for sub-millisecond graph access\n- [msgspec](https://github.com/jcrist/msgspec) — high-performance JSON serialization for inter-process communication\n\nAgent onboarding (URL bootstrap, Claude Code skill, plugin install): `docs/skills/ecp-onboard/`. Concurrency invariants and re-verification: `./scripts/audit/audit-concurrency.sh`.\n\n## 🚦 Release status\n\nVerified install path: `cargo install --git ...`, which builds `ecp` from source. Release installers already contain the checksum and provenance-verification flow, but require a published tag and release assets before the binary download path is end-to-end verified. Agent-facing onboarding skill: [docs/skills/ecp-onboard/ONBOARDING.md](./docs/skills/ecp-onboard/ONBOARDING.md). Assisted configuration/setup flow still being refined.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n[![Star History Chart](https://api.star-history.com/svg?repos=coseto6125/egent-code-plexus\u0026type=Date)](https://star-history.com/#coseto6125/egent-code-plexus\u0026Date)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoseto6125%2Fegent-code-plexus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoseto6125%2Fegent-code-plexus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoseto6125%2Fegent-code-plexus/lists"}