smithery.ai

jsharpener

Use when finding dead JS/TS code, tracing callers (call graphs), or analyzing module and circular dependencies in a JS/TS project.

First seen Apr 18, 2026

Installation

$ npx skills add https://smithery.ai

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 1,586 B
  • docs SUMMARY.md 170 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

JSharpener — JS/TS static analysis

TypeScript Compiler API-based analyzer (sibling of CSharpener). Runs on any JS/TS project without it needing to compile.

Running it

node "C:\Users\matthew.heath\Git\JSharpener\dist\cli\index.js" <command> [path]

If dist\cli\index.js is missing, rebuild: cd C:\Users\matthew.heath\Git\JSharpener && npm install && npm run build

Commands

  • analyze [path] — project overview (files/functions/classes/imports/exports)
  • treeshake [path] --entry src/index.ts — unused exports, functions, variables, imports. Always pass --entry (repeatable) or reachability is guessed and results are noisy.
  • callgraph [path] -o out.dot --function processData — Graphviz DOT call graph focused on a function; add --reverse for "who calls this"; --depth <n> to limit; --module-level for an architecture-level module dependency view
  • deps [path] --circular — circular dependency chains; --external for external package usage

Common flags: --include "src/**/*.ts", --exclude "**/*.test.ts", -o <file>, --format json (treeshake), --config jsharpener.json (include/exclude/entryPoints in one place).

Known limitations (first version)

Method calls through object instances aren't fully tracked in call graphs; dynamic import() and JSX/TSX support is limited — treat treeshake results on React code as suggestions, not proof.