srcnav - Code Navigation for AI Agents

srcnav

grep is not enough — Your codebase is symbols, not just text

Index once. Query in milliseconds. Give your AI exactly what it needs — not 10,000 wasted context tokens, just the definition and references.

srcnav

$ srcnav index -p ./myproject

Building: Indexing ./myproject...

Found 39,166 files

Parsed 281,944 symbols in 76s

Done: Index ready

$ srcnav find "useUserProfile"

function useUserProfile(userId: string)

→ src/hooks/useUserProfile.ts:42

→ 3 references found

Why grep falls short

grep output
$ grep -rn "createUser" src/
src/models/user.ts:42:  createUser(
src/models/user.ts:156: // TODO: createUser
src/services/auth.ts:89:  await createUser()
src/services/auth.ts:156: // createUser called
src/utils/validation.ts:42:  // validation
... 847 matches

Returns 847 matches. Comments, strings, everything.

srcnav output
$ srcnav find "createUser"
export async function createUser(
  email: string,
  password: string
): Promise<User> models/user.ts:42:8

private function createUser(...) 
  services/auth.ts:156:3

Found 2 definitions, 12 refs

2 actual definitions. Full signatures. References.

📝

Text vs Symbols

grep finds text. srcnav finds definitions, usages, types.

🔗

No Import Awareness

grep can't trace imports. srcnav knows every dependency.

🐢

Scans vs Indexes

grep scans every line. srcnav indexes once, queries in ~5ms.

🤖

AI Context Waste

Paste 10k tokens to AI. srcnav gives 500 — same answer.

Real Performance Numbers

Project Files Lines Symbols Index Time Query
React 4,435 ~532k 61,583 7s ~3ms
Next.js 17,914 ~1.1M 71,376 11s ~4ms
VS Code 6,437 ~1.7M 257,969 21s ~5ms
TypeScript 39,166 ~455k 281,944 76s ~5ms

* Tested on standard dev hardware. Query time after indexing.

The Context Problem

What you're doing now
// AI, explain this function:
import { useState, useEffect } from 'react';
import { useRouter } from 'next/router';
import { getUserById } from '../lib/api';
// ... 400 more lines of boilerplate

export function useUserProfile(userId: string) {
  const [user, setUser] = useState<User | null>(null);
  // ... 50 more lines
}
~15,000 tokens Wasted: imports, boilerplate, comments
What srcnav gives you
{
  "symbol": "useUserProfile",
  "kind": "function",
  "file": "hooks/useUserProfile.ts",
  "line": 42,
  "params": ["userId: string"],
  "returnType": "User | null",
  "references": [
    {"file": "pages/profile.tsx", "line": 15},
    {"file": "pages/settings.tsx", "line": 28}
  ]
}
~500 tokens 95% reduction — same answer
95%
less context tokens

Give AI the answer, not the entire file

$15
per 1M tokens

Claude Opus 3.5 pricing

$360
saved/month

At 1000 queries/day

What srcnav gives you

Fast Indexing

Index 280k symbols in 76s. SQLite-backed. Local only.

🔍

Symbol Search

Find definitions, not text matches. Filter by kind.

🔗

Dependency Graph

Trace imports. Find circular deps. Map architecture.

💥

Impact Analysis

Changing this breaks what? Know before you refactor.

📊

Multiple Outputs

JSON, Mermaid, DOT. Integrate into your pipelines.

🤖

AI Agent Ready

Structured data your agent can actually use.

Supported Languages

🐍 Python
🦀 Rust
🐹 Go
Java
🔧 C
⚙️ C++
💙 TypeScript
🟨 JavaScript

Ready to upgrade?

Stop grepping. Stop wasting context. Start understanding your code.

✉️

djtinkers365@protonmail.com

Send an Email

© 2025 srcnav. All rights reserved.