Ask the codebase
Semantic search over your project. Press Ctrl+Shift+K, type a question in plain English, get ranked file:line hits in under half a second.
How to open it
- Keyboard:
Ctrl+Shift+K(Windows/Linux) or⌘⇧K(Mac). - Top bar chip: Ask code.
What it does
KrowForge keeps an embedding index of your project. When you query:
- Your query is embedded with the same model used for the index.
- The top-K nearest chunks are returned.
- A lexical (ripgrep-style) pass is layered for keyword recall.
- Results are merged, deduped, and ranked.
You see file paths, line numbers, and a 2-3 line preview of the matching chunk. Click any result to jump to that line in the editor.
When the index updates
- On save. Every successful save triggers a background re-embed of the changed file. Updates land within ~2 seconds. The save itself never waits on the index.
- On bulk import. When a large number of files arrive (git pull, archive extract), the indexer batches them.
- On first run. A new workspace gets indexed in the background after first open. Until the index exists, queries fall back to lexical-only search (still useful, just less fuzzy).
Index status
curl -b cookies.txt https://your-workspace.krowforge.com/api/semantic/status
Returns:
{
"exists": true,
"model": "all-MiniLM-L6-v2",
"provider": "local",
"dim": 384,
"count": 12450,
"files": 873,
"bytes": 19123200,
"created_at": "2026-04-25T17:32:11Z"
}
A 50k-LOC project typically lands at ~30-80 MB of vectors.bin and updates within a couple seconds of each save.
Asking questions vs running searches
The codebase search is a retrieval surface — it finds relevant code. The agent uses the same retrieval internally when you ask it questions in chat.
Use the search overlay when you want to see hits and jump. Use the agent chat when you want a synthesized answer.
What to type
Good queries:
- *"where is the password hashing done"*
- *"the function that parses CSV imports"*
- *"how do we register Flask blueprints"*
Less good (the lexical layer handles these — try real grep instead):
- A literal symbol name you know exists.
- Regex patterns.