import { morph } from 'morph'Better, faster, cheaper search via subagents
Use cases
Code Search · Log Search · Package Search. Read the docs →
const result = await morph.warpGrep.execute({ query: 'Find where billing invoices are emailed', repoRoot: './my-project',}) // Clean results, no context pollutionconsole.log(result.contexts) // Relevant code onlyconsole.log(result.summary) // Search findingsSearch codebases without
blowing context
Isolated context window
Searches your codebase in a separate context window. Your main agent only sees clean results—never raw grep output or dead-end searches.
import { morph } from 'morph' // WarpGrep searches in isolationconst result = await morph.warpGrep.execute({ query: 'Find where billing invoices are generated', repoRoot: '.', excludes: ['node_modules', '.git'], includes: ['src/**/*.ts']}) // Returns only relevant code sectionsfor (const ctx of result.contexts) { console.log(ctx.file, ctx.content)}Multi-turn reasoning
Up to 36 parallel tool calls across 3 turns. Reasons about what to search, runs grep/read/list_dir in parallel, returns relevant code in seconds.
Best-in-class F1 score
WarpGrep achieves 0.73 F1 in just 3.8 steps—3x fewer than comparable agentic approaches. Deep logic queries show 2x-6x better performance.
WarpGrep achieves 0.73 F1 in 3.8 steps — 3x fewer than comparable agentic approaches
How WarpGrep works
Parallel breadth-first search

Search any GitHub repo. No clone required.
Point WarpGrep at any public GitHub repository and search it remotely. Ask complex questions about unfamiliar codebases without downloading a single file.
Search pytorch/pytorch, facebook/react, or any repo by name
Pin specific branches or tags for version-locked search
Works as an MCP tool, SDK call, or in the playground
