Skip to content

Searching

Not sure which kit feature to reach for? Use this page as a mental map of search-and-discovery tools – from plain-text grep all the way to LLM-powered semantic retrieval.

Your goalBest toolOne-linerDocs
Find an exact string or regexrepo.search_text()repo.search_text("JWT", "*.go")Text search
List symbols in a filerepo.extract_symbols()repo.extract_symbols("src/db.py")Repository API
See where a function is usedrepo.find_symbol_usages()repo.find_symbol_usages("login")^
Get a concise overview of a file / functionSummarizersummarizer.summarize_file(path)Code summarization
Semantic search over raw code chunksVectorSearcherrepo.search_semantic()Semantic search
Semantic search over LLM summariesDocstringIndexer + SummarySearchersee belowDocstring index
Build an LLM prompt with only the relevant codeContextAssemblerassembler.from_chunks(chunks)Context assembly

Tip: You can mix-and-match. For instance, run a docstring search first, then feed the matching files into ContextAssembler for an LLM chat.

Fast, zero-setup, works everywhere. Use when you know what string you’re looking for.

repo.search_text("parse_jwt", file_pattern="*.py")

extract_symbols() uses tree-sitter queries (Python, JS, Go, etc.) to list functions, classes, variables – handy for nav trees or refactoring tools.

Generate natural-language summaries for files, classes, or functions with Summarizer. Great for onboarding or API docs.

VectorSearcher chunks code (symbols or lines) → embeds chunks → stores them in a local vector database. Good when wording of the query is similar to the code.

DocstringIndexer first summarizes code, then embeds the summary. The resulting vectors capture intent, not syntax; queries like “retry back-off logic” match even if the code uses exponential delays without those words.


Still unsure? Start with text-search (cheap), move to vector search (smart), and layer summaries when you need meaning over matching.