Fast symbol search for SCIP code intelligence indexes
Search for symbol definitions and references across large codebases using SCIP (Sourcegraph Code Intelligence Protocol) indexes. Perfect for understanding code structure, finding usage locations, and navigating complex projects.
- Type-aware search - Distinguishes same-named symbols from different files/packages
- Fast queries - Searches large codebases (<100k LOC) in under 1 second
- Flexible filtering - Filter by defining file (
--from) or folder (--folder) - Multiple formats - Output as grep-like text or structured JSON
- Zero-config discovery - Automatically finds
index.scipin current directory
- Node.js 18+
- SCIP index file
npm install -g scip-finder# Install scip-typescript
npm install -g @sourcegraph/scip-typescript
# Generate index for your project (excludes node_modules, dist, build)
scip-index# Find all usages of a symbol
scip-finder MyFunction
# Filter to symbols from a specific file
scip-finder --from lib/main.ts SymbolName
# Filter results to a specific folder
scip-finder --folder src/ SymbolName
# Output as JSON for programmatic use
scip-finder --format json SymbolName$ scip-finder SymbolName
lib/main.ts:10:1: Definition
services/handler.ts:25:10:
services/handler.ts:42:20:# Only symbols defined in specific file
scip-finder --from models/User.ts User
# Only occurrences within a folder
scip-finder --folder server/ handleRequest$ scip-finder --format json SymbolName
{
"symbol": "SymbolName",
"occurrences": [
{
"file": "lib/main.ts",
"line": 10,
"column": 1,
"role": "Definition"
}
]
}The CLI auto-detects property vs method search based on query syntax:
# Property search - names containing "." are treated as property queries
scip-finder MyThing.myProp
# Method search - names containing "()" are treated as method queries
scip-finder MyThing.method()
# Wildcard search - bare names match both properties and methods
scip-finder processNo special flags required - queries are backward compatible with existing symbol search.
Search for symbols in SCIP indexes.
scip-finder [options] <symbol>Options:
| Option | Description |
|---|---|
--scip <path> |
Path to SCIP file (auto-discovers index.scip) |
--from <file> |
Filter to symbols defined in specific file |
--folder <path> |
Filter occurrences to files within folder |
--format <type> |
Output format: text or json (default: text) |
Generate SCIP index from TypeScript project.
scip-indexAutomatically finds all tsconfig*.json files (excluding node_modules, dist, build, .git) and creates index.scip.
Options:
| Option | Description |
|---|---|
--depth <number> |
Maximum depth to search for tsconfig files (default: 2) |
--config <paths...> |
Explicit tsconfig file paths (comma-separated, skips auto-discovery) |
Examples:
# Default: search depth 2, auto-discover tsconfig files
scip-index
# Search deeper for nested tsconfig files (monorepo structure)
scip-index --depth 4
# Specify exact tsconfig files to index
scip-index --config tsconfig.json,src/tsconfig.json,packages/*/tsconfig.json
# Get help
scip-index --help- Generate SCIP -
scip-typescriptindexes your TypeScript/JavaScript project - Search - scip-finder loads the SCIP index and queries symbol occurrences
- Filter - Narrow results by defining file or folder path
- Output - Get results in text or JSON format
Contributions are welcome! This project uses TypeScript and Jest.
MIT