A fast file indexer with full-text search. Single static executable, no installation required.
- Full-text search for
.txtand.mdfiles using SQLite FTS5 - Filename search for all file types
- Metadata tracking (path, size, timestamps) for all indexed files
- Cross-platform: macOS (ARM/Intel), Windows (ARM/Intel), Linux
- Single static binary - no dependencies, no installation
- Local database stored in
~/.jitjot/index.db
# Index a directory
./jitjot . # Current directory
./jitjot ~/projects # Specific directory
# Search (any args that aren't a directory become search query)
./jitjot rust tutorial # Search for "rust" OR "tutorial"
./jitjot "config file" # Search phrase
# Stats
./jitjot --stats # Show index statistics
# Help
./jitjot --helpSearch results show:
- Filename matches first (files where the query matches the filename)
- Content matches (files where the query matches content inside
.txt/.mdfiles)
Each result shows: path, size, last modified date, and a snippet with highlighted matches for content results.
- Rust 1.70+ with Cargo
cargo build --release
# Binary at: target/release/jitjot (or jitjot.exe on Windows)Install cross-compilation targets:
# macOS targets
rustup target add x86_64-apple-darwin # Intel Mac
rustup target add aarch64-apple-darwin # Apple Silicon
# Windows targets
rustup target add x86_64-pc-windows-gnu # 64-bit Windows
rustup target add aarch64-pc-windows-msvc # ARM64 Windows
# Linux targets
rustup target add x86_64-unknown-linux-musl # Intel Linux (static)
rustup target add aarch64-unknown-linux-musl # ARM64 Linux (static)Build for specific targets:
# macOS Intel
cargo build --release --target x86_64-apple-darwin
# macOS Apple Silicon
cargo build --release --target aarch64-apple-darwin
# Windows 64-bit (from Linux/Mac, requires mingw-w64)
cargo build --release --target x86_64-pc-windows-gnu
# Linux static binary (musl)
cargo build --release --target x86_64-unknown-linux-muslFor Windows builds from non-Windows systems, you'll need the appropriate toolchain:
- mingw-w64 for GNU targets
- Or use cross (
cargo install cross) for easier cross-compilation
cargo install cross
cross build --release --target x86_64-pc-windows-gnu
cross build --release --target x86_64-unknown-linux-musl
cross build --release --target aarch64-unknown-linux-musl- Database:
~/.jitjot/index.db(SQLite with FTS5) - First run: Automatically creates
~/.jitjot/directory
- Uses SQLite FTS5 for full-text search (statically linked)
- rusqlite with
bundledfeature compiles SQLite into the binary - Hidden files/directories (starting with
.) are automatically skipped - Files larger than 10MB are not content-indexed
- Re-indexing a directory updates existing entries (upsert behavior)
MIT