All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.0 - 2026-02-28
Initial release.
Core infrastructure
- Daemon architecture: one long-lived process per project root over a Unix domain socket
- Auto-start: daemon spawned on first use, shuts down after inactivity
- Auto-install language servers to
~/.krait/servers/(vtsls, gopls, rust-analyzer) - SQLite symbol index with BLAKE3 file hashing and file-watcher-based cache invalidation
- Dynamic multi-root LSP: one language server process per language, workspace folders attached dynamically via
workspace/didChangeWorkspaceFolders - Monorepo support: auto-detect all workspace roots recursively (tested up to 76 workspaces)
- Output formats:
compact(LLM-optimized),json,human
Navigation commands
krait find symbol <name>— locate symbol definition via LSPworkspace/symbolkrait find refs <name>— find all references viatextDocument/referenceskrait list symbols <path>— semantic file outline viatextDocument/documentSymbolkrait read file <path>— file contents with line numbers, binary detectionkrait read symbol <name>— extract symbol body,--signature-onlyflag
Editing commands
krait edit replace <symbol>— replace symbol body from stdinkrait edit insert-after <symbol>— insert code after a symbol from stdinkrait edit insert-before <symbol>— insert code before a symbol from stdin- Atomic file writes via temp-file-then-rename (no partial file corruption)
Agent commands
krait hover <symbol>— type info and documentation viatextDocument/hoverkrait format <path>— LSP formatter viatextDocument/formattingkrait rename <symbol> <new-name>— cross-file rename viatextDocument/renamekrait fix [path]— apply LSP quick fixes viatextDocument/codeAction
Diagnostics
krait check [path]— LSP diagnostics,--errors-onlyflag, exit code 1 on errors (CI-friendly)krait status— daemon health, LSP state, cache stats, index dirty file count
Configuration
krait init— auto-detect workspaces and generate.krait/krait.tomlkrait init --dry-run— preview config without writingkrait daemon start|stop|status— daemon lifecycle management
Language support (v0.1)
- TypeScript / JavaScript via vtsls
- Go via gopls
- Rust via rust-analyzer
- C/C++ via clangd
Performance (benchmarked on open-source projects, warm daemon)
- Warm
find symbol: 32–59ms across TypeScript and Go projects - Warm
hover: 40–70ms (excluding one-time LSP type-load on first call) - Warm
check: 37–50ms - Cold start (daemon off, index cached): 146–586ms depending on workspace size