#coding-agent #indexer #vt #tui

vtcode-indexer

Workspace file indexer, fuzzy search, and markdown-backed storage for VT Code

466 releases (96 breaking)

Uses new Rust 2024

new 0.135.8 Jul 14, 2026
0.134.15 Jul 9, 2026
0.96.9 Mar 31, 2026
0.55.1 Dec 29, 2025
0.47.6 Nov 30, 2025

#1164 in Parser implementations

Download history 7/week @ 2026-03-17 2/week @ 2026-03-24 12/week @ 2026-03-31 3/week @ 2026-04-07 4/week @ 2026-04-14 5/week @ 2026-04-21 10/week @ 2026-04-28 34/week @ 2026-05-05 82/week @ 2026-05-12 60/week @ 2026-05-19 86/week @ 2026-05-26 63/week @ 2026-06-02 50/week @ 2026-06-09

57 downloads per month
Used in 3 crates (via vtcode-core)

MIT license

600KB
14K SLoC

vtcode-indexer

Workspace-friendly code indexer extracted from VT Code.

vtcode-indexer offers a lightweight alternative to heavyweight search/indexing stacks. It recursively walks a workspace, computes per-file hashes, and stores metadata in Markdown-friendly summaries so changes remain easy to audit in git.

Workspace-friendly file indexer and file utilities for VT Code.

vtcode-indexer provides:

  • A lightweight workspace file indexer with markdown-backed persistence
  • Fast parallel fuzzy file search (via file_search module)
  • Markdown-backed storage utilities (via markdown_store module)

Features

  • Recursive .gitignore-aware workspace walking via the ignore crate
  • Per-file content hashing for change detection
  • Markdown-backed snapshot persistence (index.md)
  • Pluggable storage and traversal filter traits

Public entrypoints

  • SimpleIndexer — main indexer; walk, hash, query, and persist file metadata
  • SimpleIndexerConfig — builder for workspace root, index directory, and exclusion rules
  • FileIndex — per-file metadata record (path, hash, size, timestamps)
  • IndexStorage trait — persistence backend (default: MarkdownIndexStorage)
  • TraversalFilter trait — directory/file filtering hook (default: ConfigTraversalFilter)

Usage

use vtcode_indexer::SimpleIndexer;

let mut indexer = SimpleIndexer::new("/path/to/workspace".into());
indexer.init()?;
indexer.index_directory(std::path::Path::new("/path/to/workspace"))?;

let rust_files = indexer.find_files(r"\.rs$")?;
println!("Found {} Rust files", rust_files.len());

API reference

See docs.rs/vtcode-indexer.

Dependencies

~27–39MB
~489K SLoC