jCodeMunch vs Repomix (by yamadashy)
| jCodeMunch | Repomix | |
|---|---|---|
| Token reduction on code exploration | ✓ ~95 % | ~ Single-shot pack of the whole repo; --compress strips bodies via tree-sitter; pack ships in every prompt: no per-query reduction |
| Symbol-level extraction (functions, classes) | ✓ 79 languages (incl. YAML/Ansible, Razor/Blazor, SQL/dbt, Erlang, Fortran, Pascal, MATLAB, Ada, COBOL, Zig, PowerShell) | ~ Whole-file pack; --compress extracts signatures via tree-sitter (~70-90% body strip); no on-demand per-symbol retrieval |
| Doc section search | ✓ via jDocMunch | ✗ |
| Requires pre-indexing | ✓ One-time, incremental; SHA-based freshness managed automatically via freshness_mode config (relaxed/strict); list_repos exposes git_head for agent-side freshness reasoning; index_file for single-file surgical updates; watch-claude auto-discovers Claude Code worktrees | ✗ Single-shot pack at invocation; nothing to pre-build, but every run re-packs from scratch |
| Works with AI agents (MCP) | ✓ Native MCP server (stdio, SSE, streamable-http); Claude Code hook integration (PreToolUse/PostToolUse → index-file); 5 built-in MCP prompt templates (workflow, explore, assess, triage, trace). Adaptive tool surface keeps the agent's tool budget in check: core/standard/full tiers, or tool_surface=counter collapses to a 3-tool front door (order/menu/route) that fits any tool-count cap (e.g. a 50-tool limit) with zero capability loss | ~ MCP server bundled (repomix --mcp): 7 tools: pack_codebase, pack_remote_repository, attach_packed_output, read_repomix_output (line-range partial reads), grep_repomix_output (regex search in pack), file_system_read_file, file_system_read_directory. Pack-first paradigm, but grep+partial-read now offer per-query slicing |
| Import graph / reference tracing | ✓ find_importers (with has_importers flag), find_references, check_references, get_blast_radius (depth-scored risk + has_test_reach per file), get_changed_symbols, get_dependency_graph; get_untested_symbols (import-graph test reachability); TS/SvelteKit path alias resolution; cross-repo via cross_repo=true on find_importers, get_blast_radius, get_dependency_graph + dedicated get_cross_repo_map | ✗ Pure file packer: no graph, no edges |
| Architecture-decision context (revert/tradeoff/root-cause history surfaced during analysis) | ✓ get_blast_radius / get_impact_preview surface git-mined decision-bearing commits (revert/perf/refactor/rename/bugfix) + a volatility read (v1.108.59, opt-in include_decisions); get_symbol_provenance adds a per-symbol decision narrative. Read-only: surfaced from the commit record, never persisted | ✗ |
| Write / modify files | ✗ Read-only by design | ✗ Read-only |
| Runs fully offline / local | ✓ Local index, no backend | ✓ Pure CLI; web UI optional |
| Commercial use permitted | ✓ Paid license available | ✓ |
| License | Free non-commercial; paid commercial | MIT |
| Dead code detection | ✓ find_dead_code: free; confidence-scored; cascading dead-code chains; entry-point heuristics | ✗ |
| Semantic / hybrid search | ✓ Opt-in BM25+vector (embed_repo); 3 providers: sentence-transformers, Gemini (task-aware), OpenAI; pure BM25 when disabled | ✗ Pure text pack: no embeddings |
| Token-budgeted retrieval | ✓ get_ranked_context (BM25 + PageRank strategies) + get_context_bundle budget params | ~ Per-file token counts reported; no retrieval-side budget: the whole pack ships every call |
| Works alongside the others | ✓ Complements all of them | ✓ Different layer (whole-pack vs symbol-extract); pack first, query precisely with jCodeMunch when needed |
Repomix packs your entire repository into a single AI-friendly file (XML, Markdown,
or plain text) and hands it to the model in one shot. It is the most popular tool
in the “dump the codebase to the LLM” category: 28,069 stars,
JSNation Open Source Awards 2025 nominee (Powered by AI category), browser
extensions for Chrome and Firefox, a hosted website at repomix.com, a community
VS Code extension, an official three-plugin Claude Code marketplace
(repomix-mcp, repomix-commands, repomix-explorer),
and one-click MCP install URLs. v1.18.0 (August 2026) is current; v1.14.0 delivered a 2.4×
perf overhaul (3.3s → 1.4s on its own repo, ~58% pack-time reduction).
Its --compress mode uses tree-sitter to strip function bodies and keep
signatures; v1.14.0+ also ships --skill-generate for Claude Agent
Skills output, --include-logs / --include-diffs for git
history in the pack, and --stdin for piped file lists. The MCP server
now exposes 7 tools, including grep_repomix_output (regex
search inside the pack), read_repomix_output with line-range
partial reads, and two sandbox-mode-only filesystem readers, meaningfully softening the “every prompt re-ships the
pack” criticism. Still pack-and-prompt at its core, but with selective retrieval
bolted on after the pack exists.
npx repomixemits a single AI-friendly file containing the entire codebase (XML / Markdown / Plain Text)--compressuses tree-sitter to strip bodies and keep signatures (~70-90% size reduction)--include/--ignoreglobs; respects.gitignore+.repomixignore;--stdinaccepts piped file lists fromfind/fd/fzf/ripgrep--include-logs/--include-diffsembed git history + working-tree diffs in the pack--skill-generateemits Claude Agent Skills format under.claude/skills/<name>/; v1.14.0 adds monorepo-aware per-package tech-stack detection--remote yamadashy/repo/ branch URL / commit SHA;--remote-trust-configopt-in for remote config execution (security fix in v1.13.0)- Secretlint integration scrubs credentials before packing; v1.13.0 brought
npm auditto 0 vulnerabilities - MCP server with 7 tools:
pack_codebase,pack_remote_repository,attach_packed_output(reuse existing pack),read_repomix_output(line-range partial reads),grep_repomix_output(regex search with context lines),file_system_read_file,file_system_read_directory - Distribution polish: Chrome + Firefox extensions, VS Code Marketplace community extension (Repomix Runner), hosted web UI at repomix.com, official Claude Code plugin marketplace with 3 plugins (mcp / commands / explorer), one-click MCP install URLs, Discord community, DeepWiki
- v1.14.0 perf: ~58% pack-time reduction via gpt-tokenizer (replaced WASM tiktoken), pipeline parallelization, lazy CLI dispatch
- ✗ No AST symbol graph: grep is regex over packed text, not symbol-aware (`find_references`, call hierarchy, blast radius all unavailable)
- ✗ The pack is the unit of work; selective retrieval is after-the-fact slicing, not a query-driven index
- ✗ No incremental index: re-running on a changed repo re-packs (mitigated by
attach_packed_outputif you can reuse a recent pack)
- AST-extracted symbols indexed once;
get_symbol_sourcereturns one function body per call, not the whole repo - SHA-256 incremental indexing;
index_filere-parses one file in milliseconds; multi-process shared index (v1.106.0) coordinates concurrent agents on the same repo find_references,find_importers,get_blast_radius,get_call_hierarchy: symbol-aware graph tracing Repomix cannot do (regex on text doesn't know "imports" vs "references")- 70+ languages with custom parsers (Razor/Blazor, Erlang, Fortran, dbt SQL) where tree-sitter is incomplete
- 90+ MCP tools covering retrieval, architecture health, refactoring preflight (
check_rename_safe/check_delete_safe/find_similar_symbols), session analytics, runtime trace ingestion - Token-budgeted retrieval (
get_ranked_context,assemble_task_context): agent says "top symbols within 4k tokens for this query" and the tool packs to fit - jDocMunch for section-level doc retrieval; jDataMunch for tabular CSV/Excel exploration
jcm install <agent>(v1.105.1) one-click for Claude Code / Cursor / Windsurf / Continue / Claude Desktop; v1.107.0 adds--skillsto emit a Claude Agent Skill bundle (loaded on demand instead of always-on baseline policy)- v1.108.0
index_folder(paths=[...]): agent re-indexes exactly the files git just touched (or any explicit list / subdir set) without paying the cost of a full-tree walk.jcodemunch-mcp index . --paths-from -composes withgit diff --name-only/rg/fd - v1.108.0: monorepo intelligence:
list_workspacesenumerates pnpm / yarn / npm / turborepo / lerna / rush / Go-workspaces / Cargo-workspaces members;get_project_intel(scope_path=...)answers "what is this package?" instead of repo-wide aggregates - ✗ No bulk “here is everything” pack: one-shot pack-and-prompt is a different operating mode
grep_repomix_output + read_repomix_output
let agents slice into an existing pack rather than re-shipping it, which is a real
improvement over older versions. But it's still slicing into a packed text file,
not querying a symbol-aware index: regex matches don't know which hits are
definitions, which are call sites, and which are unrelated comments. jCodeMunch
optimises for the agent loop: thousands of small symbol-aware retrievals across a
long session, with structural relationships (importers, references, blast radius)
that text grep cannot compute.
For multi-turn agent loops with thousands of small retrievals, jCodeMunch's symbol-aware index wins on substance: structural relationships (`find_references`, `find_importers`, `get_blast_radius`, `get_call_hierarchy`) that regex over packed text cannot compute, refactoring preflight (`check_rename_safe` / `check_delete_safe` / `find_similar_symbols`) that requires a graph not a grep, runtime trace ingestion that requires symbol identity, and the v1.106.0 multi-process shared index for parallel agents on the same repo. Use Repomix for one-and-done prompts and quick architectural reviews; use jCodeMunch for any multi-turn agent workflow that benefits from symbol-aware retrieval and graph relationships.
More comparisons
jCodeMunch vs caveman · jCodeMunch vs RTK · jCodeMunch vs Headroom · jCodeMunch vs CodeGraph · jCodeMunch vs GitNexus · jCodeMunch vs Serena · jCodeMunch vs Context Mode · jCodeMunch vs RepoMapper · jCodeMunch vs codebase-memory-mcp · jCodeMunch vs Ponytail
The full comparison of all 47 tools, with every one side by side in a single table.
caveman vs Ponytail vs RTK vs Headroom vs jCodeMunch: which one saves which tokens.