
Research
/Security News
737 Chrome VPN Extensions Linked to Brand Impersonation and Browser Traffic Redirection
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.
@ghostlygawd/codeweb
Advanced tools
Your agents break less code and burn fewer tokens. codeweb maps your repo into a deterministic call/import graph; 27 MCP tools answer impact, callers, and duplication before agents write. Claude Code plugin & MCP server; zero deps, runs 100% locally.
Free & MIT-licensed. Runs entirely on your machine — no account, no server, no telemetry. Reads your code; never executes it.
Website · See it in action · Install · Use · For agents (MCP) · How it works · Changelog
Your agents break less code and burn fewer tokens.
codeweb reads your code and maps it: every function, and every call between them (~3 s for 3,000 symbols). It's static analysis — no LLM — so the same code always produces the same map.
Your coding agents query the map instead of grepping. With grep, agents miss more than half of a function's real callers (measured). They break the code they can't see.
codeweb_impact, codeweb_callers,
codeweb_find_similar, and 24 more.The map also shows things you can't see from inside one file: duplicated logic, dead code, hotspots, and tangled domains.
cd your-project
npx -y @ghostlygawd/codeweb .
Three seconds for 3,000 symbols. Open .codeweb/report.html — that's your map.
Every screenshot below is a real generated report of axios (274 symbols, 8 domains). No mockups.
codeweb found 3 real duplications in axios and dismissed 12 false positives — the case study. Or click around the live map.
Click any function in the living map and its blast radius lights up: everything your change would touch.
Your agents get the same answer over MCP (codeweb_impact) — before they write a line.
AxiosError in axios lights up its 27 callers across the domains that depend on it — try it yourself in the living map.
A force-directed map of every symbol, collapsible to domains. Search, drag, zoom, and click any node to trace what depends on it and what it reaches.
Ranked duplication (the same function defined across many files), the most depended-on hotspots to change with care, and likely-dead code — every row clickable to inspect what calls it and what it calls.
Treemap — every file sized by lines of code; the brighter a block, the more of it is duplicated. The bright blocks are your consolidation targets, at a glance. |
Matrix — domain-to-domain coupling. A big off-diagonal cell means two domains are tangled: merge them, or put a clean interface between them. |
codeweb works at symbol resolution — functions, classes, and methods, and the call/import edges between them. File-level scanners can tell you two modules look alike; codeweb tells you two functions are the same work, who calls each, and what merging them would break.
Methodology, raw data, and per-claim receipts:
the evidence ledger. Benchmark your own
repo: npm run bench -- <path>/.codeweb/graph.json. CI re-runs the performance budgets on
every PR; breaking a published number fails the build.
codeweb also keeps a local tally of what it actually did for you — npm run stats:
codeweb this month: 41 pre-edit card(s) · 5 card-named caller(s) followed · 2 regression(s) flagged · 120 queries served
Considering a dependency? Point codeweb at any repo you don't own yet
(/codeweb https://github.com/owner/repo): it clones read-only, maps it, and appends an
adoption review. codeweb never executes target code.
Free & MIT-licensed. Runs entirely on your machine — no account, no server, no telemetry. Reads your code; never executes it.
node_modules, CI-verified.web-tree-sitter) sharpens extraction. Never required.npm audit signatures.Using Claude Code? The plugin adds the /codeweb command, ambient pre-edit impact cards, and
all 27 tools:
/plugin marketplace add GhostlyGawd/codeweb
/plugin install codeweb
Then restart Claude Code so the /codeweb command, agents, and skill register.
Using Cursor, Windsurf, or another MCP agent? Register the same zero-dependency stdio server (shown with Claude Code's syntax — swap in your client's add-server command):
claude mcp add codeweb -- npx -y -p @ghostlygawd/codeweb codeweb-mcp
Just want the map — no AI involved? One command, from your project directory:
cd your-project
npx -y @ghostlygawd/codeweb . # ~3 s for 3,000 symbols — then open .codeweb/report.html
Not sure? Run the npx one-liner — it's the whole map, no install, nothing to undo.
Or run the engine from a clone:
git clone https://github.com/GhostlyGawd/codeweb.git
node codeweb/scripts/run.mjs /path/to/your/project
Every bin, flag, and exit code is tabled in docs/cli.md.
In your editor: editor/vscode-codeweb shows a
N callers · blast M lens above every mapped symbol. Click through into the report.
Each link lands on full docs, flags, and examples in the reference.
diff verdict ·
the PR gate ·
the capability suiteoptimize ·
hotspots ·
campaign ·
trend/codeweb # map the current project
/codeweb src/payments --depth symbol # deep-dive one subsystem
/codeweb https://github.com/owner/repo # external review before adopting
/codeweb owner/repo --open # clone, map, and open the report
Flags: --depth module|symbol|auto, --engine hybrid|read|tools, --focus <glob>,
--mode internal|external, --open. See commands/codeweb.md.
Everything lands in <target>/.codeweb/ — graph.json for machines, report.html for you,
markdown twins for both. Every output file, explained →
scripts/mcp-server.mjs is a zero-dependency MCP (Model Context Protocol) stdio server. It gives
any MCP client all 27 tools, grouped by moment: orient, read the structure, check before
writing, gate the edit, clean up.
Installing the plugin registers the server automatically. Standalone:
claude mcp add codeweb -- npx -y -p @ghostlygawd/codeweb codeweb-mcp
Built for agents, not just reachable by them:
graph is optional everywhere — the server finds the nearest map on its own. No map yet?
The error names codeweb_map, which builds one.codeweb_refresh.All 27 tools, grouped and explained →
For JavaScript, TypeScript, Python, Rust, Go, Java, C#, Ruby, PHP, Kotlin, and Swift the default is a deterministic Node pipeline — one
command, no LLM in the loop, reproducible byte-for-byte. scripts/run.mjs chains five stages
into a per-target workspace:
extract-symbols.mjs) — parse every source file into atomic nodes (functions,
classes, methods) and call/import edges. When a bare call could belong to several definitions,
codeweb drops the edge rather than guess. Per-file caching keeps re-extraction incremental,
byte-identical to a full rebuild.cluster3.mjs) — strip genuine utility hubs, then group nodes into
directory-anchored semantic domains.overlap.mjs) — detect duplicated logic and parallel implementations, then
confirm each candidate against the real function bodies (token-shingle similarity) so findings
are body-backed, not name coincidences. A structural pass over identifier-normalized skeletons
also catches renamed (Type-2) clones (find-similar --structural).build-report.mjs) — turn graph.json into the self-contained report.html
(and report.md).For languages the extractor can't parse, codeweb falls back to the agent path:
codeweb-dissector agents extract nodes and edges per subsystem, and codeweb-domain-mapper
tags domains and overlaps.
Both paths emit the same graph.json schema. In external mode, either path appends an
adoption verdict.
Curious how the repo is laid out? The component map lives in the reference.
scripts/grammars/PROVENANCE.md).Recently shipped: the agent-intelligence suite (hotspots, campaign, reading-order, Type-2 clone detection, suppression memory — 27 tools today) · a live interactive demo · Go and Rust on the fast path · duplication-over-time trend · the one-command CI regression gate + GitHub Action.
codeweb follows Semantic Versioning and keeps a
Keep a Changelog-formatted CHANGELOG.md. Every
capability, benchmark, and fix is recorded there and ships as a tagged GitHub release.
One source of truth keeps it honest: the version lives in package.json, the MCP tool count in
scripts/mcp-server.mjs. Everything else is derived and verified:
npm run version-sync # propagate version + tool count -> plugin.json, SKILL.md, README badge
npm run check-consistency # fail if any public-facing surface has drifted
npm run build:site # regenerate the docs/ website (zero-dependency, deterministic)
npm run release -- --minor # roll the changelog, bump, sync, rebuild; prints the git/tag steps
check-consistency runs in CI. It gates version strings on every surface, every prose mention of
the tool and language counts, the CHANGELOG entry for the current version, and every evidence
file the ledger cites.
Built by GhostlyGawd. Much of the code was written with AI
agents; the commit co-author trailers say which. Issues and questions welcome. Security
reporting: SECURITY.md.
Stay current: codeweb never phones home. To hear about new versions, watch Releases on GitHub (Watch → Custom → Releases).
Everything that runs on your machine is free forever. No accounts, no telemetry, no license keys.
Sponsoring supports the project — and it's advertising: top sponsors get their logo at the top of this README, and every sponsor joins the supporters list beneath it. Details on the support page.
Running codeweb at an org and want help? Email via the GitHub profile.
codeweb's outputs feed naturally into refactor-cleaner, codebase-onboarding, and code-tour,
if you have them. None are required.
The ideal second step either way: apply the top ready merge from optimize.md, re-run
codeweb, and watch the findings count drop.
FAQs
Your agents break less code and burn fewer tokens. codeweb maps your repo into a deterministic call/import graph; 27 MCP tools answer impact, callers, and duplication before agents write. Claude Code plugin & MCP server; zero deps, runs 100% locally.
The npm package @ghostlygawd/codeweb receives a total of 65 weekly downloads. As such, @ghostlygawd/codeweb popularity was classified as not popular.
We found that @ghostlygawd/codeweb demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.