typescript export/import graph analysis
Leverages the TypeScript Language Service to parse and analyze module dependency graphs, extracting all named exports, default exports, and import statements from TypeScript/JavaScript files. Uses the compiler API's SourceFile AST traversal to identify export declarations and their symbols, enabling precise mapping of what each module exposes and consumes without executing code.
Unique: Uses TypeScript's official Language Service API (not a custom parser) to analyze exports/imports, ensuring 100% compatibility with TypeScript's own module resolution rules and type-aware symbol tracking, rather than regex or AST-walking approaches that miss edge cases like namespace exports or conditional exports
vs alternatives: More accurate than regex-based tools because it respects TypeScript's actual module resolution algorithm and handles complex patterns (namespace exports, re-exports, type-only imports) that simpler parsers miss
symbol resolution and type checking
Integrates the TypeScript Language Service's symbol resolution engine to locate symbol definitions, trace their types, and report type errors at specific locations in code. Queries the compiler's getDefinitionAtPosition() and getQuickInfoAtPosition() APIs to resolve symbols to their declaration sites and retrieve type information without full compilation.
Unique: Directly wraps TypeScript's Language Service APIs rather than reimplementing type-checking logic, meaning it inherits TypeScript's exact type inference rules and error reporting, and can be updated automatically when TypeScript releases new type features
vs alternatives: More reliable than custom type checkers because it uses the same type inference engine as tsc, eliminating discrepancies between what the tool reports and what TypeScript itself would report
mcp server integration for llm context
Exposes TypeScript code intelligence capabilities as a Model Context Protocol (MCP) server, allowing LLM agents and Claude to query code structure, symbols, and type information through a standardized tool interface. Implements MCP resource and tool schemas that map code analysis operations to callable functions with structured input/output contracts.
Unique: Bridges TypeScript Language Service (a desktop/CLI tool) to the MCP protocol, enabling LLMs to access real-time code intelligence without embedding the entire TypeScript compiler in the LLM context, using a client-server architecture that keeps analysis on the developer's machine
vs alternatives: More efficient than sending full source code to an LLM because it only transmits structured metadata (exports, types, errors) rather than raw code, reducing token usage and enabling LLMs to work with larger codebases
batch file analysis and reporting
Processes multiple TypeScript files in a single invocation, collecting exports, imports, type errors, and symbol information across the entire codebase or a specified subset. Aggregates results into a unified report format (JSON, text, or structured output) that can be piped to other tools or stored for further analysis.
Unique: Aggregates TypeScript Language Service analysis across multiple files without re-initializing the compiler for each file, using a single LanguageServiceHost instance to maintain incremental compilation state and reduce memory overhead
vs alternatives: Faster than running tsc --noEmit for type checking because it only analyzes requested information (exports, errors) rather than performing full type inference and emit, making it suitable for quick CI/CD checks
cli command-line interface with structured output
Provides a command-line interface that wraps TypeScript code intelligence operations, accepting file paths, symbols, and options as CLI arguments and outputting results in multiple formats (JSON, text, JSONL). Implements standard CLI patterns (exit codes, error messages, help text) and integrates with Unix pipes and shell scripting for composability.
Unique: Implements a thin CLI wrapper around the TypeScript Language Service that preserves the service's incremental compilation state across multiple CLI invocations when used as a daemon or long-running process, rather than reinitializing the compiler for each command
vs alternatives: More composable than tsc because it outputs structured data (JSON) by default and supports Unix pipes, making it easier to integrate into shell scripts and CI/CD pipelines without custom parsing
incremental compilation state management
Maintains an in-memory Language Service instance that tracks file changes and reuses compilation state across multiple analysis queries, avoiding redundant parsing and type-checking of unchanged files. Uses TypeScript's incremental compilation APIs to update only affected files when the codebase changes.
Unique: Leverages TypeScript's built-in incremental compilation APIs (getSourceFile caching, program reuse) rather than implementing custom caching, ensuring compatibility with TypeScript's own optimization strategies and reducing maintenance burden
vs alternatives: Faster than re-running tsc for each query because it reuses the compiler's internal state and only re-analyzes changed files, providing sub-second response times for repeated queries on large projects