By DevonMorris
Generate and query ctags indexes for token-efficient code navigation by looking up symbol definitions and references instead of broad text searches
A Claude Code plugin that automatically generates and maintains a ctags index for efficient code navigation. Reduces token usage by providing precise symbol-to-location lookups instead of broad grep searches.
Requires Claude Code version 1.0.33 or later.
1. Add the marketplace:
/plugin marketplace add DevonMorris/claude-ctags
2. Install the plugin:
/plugin install claude-ctags@claude-ctags
Or use the interactive installer with /plugin and navigate to the Discover tab.
Universal Ctags must be installed and available in PATH:
macOS:
brew install universal-ctags
Ubuntu/Debian:
sudo apt install universal-ctags
Arch Linux:
sudo pacman -S ctags
The plugin works automatically once installed:
.claude/tagsUse /claude-ctags:refresh to manually regenerate the index.
Instead of:
grep -r "UserService" . # Returns 50+ matches
Claude can:
# Query tags file → src/services/user.ts:42
# Read just that file at the definition
Real-world test using the ripgrep codebase (~35k lines of Rust):
prioritized_alias function| Approach | Output | Results |
|---|---|---|
| Grep | ~300 chars | 3 matches (1 definition + 2 usages) |
| Ctags | ~100 chars | 1 match (definition only) |
Ctags output:
prioritized_alias crates/printer/src/hyperlink/aliases.rs /^const fn prioritized_alias($/ f
fn new( (common pattern)| Approach | Output | Results |
|---|---|---|
| Grep | ~4,500 chars | 74 matches across 35 files |
| Ctags | ~100 chars per lookup | Direct to specific struct's new |
When searching for a common symbol like new, grep returns 74 occurrences across 35 files. With ctags, you query the specific type (e.g., RegexMatcher::new) and get the exact location.
The tags file is stored at .claude/tags in your project root. This location is automatically added to .gitignore.
MIT
Modifies files
Hook triggers on file write and edit operations
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub devonmorris/claude-ctagsStructural codebase indexing for efficient navigation. Reduces token consumption by 60-80% through targeted line-range reads instead of full file scans.
Semantic code search for Claude Code. Automatically indexes your project and provides intelligent search capabilities.
Lightning-fast semantic code search with auto-indexing. Automatically manages sgrep watch during Claude sessions.
Full AI context layer over MCP — tree-sitter code-map, document RAG (PDF/Office/HTML/email + OCR + reranker), shared agent memory, on-demand web crawl, git history + blame + per-symbol diff. 300+ languages, 8 coding-agent harnesses, content-addressed Fjall + LanceDB.
Fast and token-friendly code reading for AI coding agents. Symbol-aware MCP tools that replace cat/grep with ~85% fewer tokens, sub-millisecond search, and a raw fallback that preserves cat/grep parity byte-for-byte.
Semantic code search powered by ColBERT. Replaces grep/ripgrep with natural language understanding for smarter code navigation.