Skip to content

Installation

Reflex is a local-first code search engine that combines trigram indexing for full-text search with Tree-sitter parsing for symbol extraction and static analysis for dependency tracking. Unlike symbol-only tools, Reflex finds every occurrence of a pattern with deterministic, repeatable results.

Choose your preferred installer:

Terminal window
# npm (recommended — includes prebuilt binaries)
npm install -g reflex-search
# Shell installer (Linux, macOS)
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/reflex-search/reflex/releases/latest/download/reflex-search-installer.sh | sh
# PowerShell installer (Windows)
powershell -ExecutionPolicy Bypass -c "irm https://github.com/reflex-search/reflex/releases/latest/download/reflex-search-installer.ps1 | iex"
# cargo (builds from source, requires Rust toolchain)
cargo install reflex-search

The npm package and the shell/PowerShell installers download a prebuilt binary for Linux and macOS (x86_64 and arm64) or Windows (x86_64). The installers place rfx in $CARGO_HOME/bin (usually ~/.cargo/bin).

Terminal window
rfx --version

You should see output like rfx 2.0.0.

Navigate to your project root and run:

Terminal window
rfx index

This creates a .reflex/ directory containing the search index. Add it to your .gitignore:

Terminal window
echo '.reflex/' >> .gitignore

That’s it — Reflex is ready. The index is fully local; no data leaves your machine.

FilePurpose
meta.dbSQLite metadata: file list with per-file fingerprints (size, mtime, blake3 hash), symbol cache, dependency graph, stats
meta.db-wal, meta.db-shmSQLite write-ahead log files, present while meta.db is open (it runs in WAL mode)
trigrams.binTrigram inverted index for fast full-text search (memory-mapped)
content.binFull file contents for result display (memory-mapped)
config.tomlProject-level configuration
index.lockWorkspace lock file, locked while an index write is in progress
indexing.lock, indexing.statusLock and progress file for the background symbol pass (rfx index status reads the status)
trigram_temp/Transient: partial trigram batches during a large rebuild, removed when indexing finishes
  • Node.js 14+ (for npm install) or Rust 1.89+ (for cargo install)
  • Works on Linux, macOS, and Windows
  • No external services or network access required

Head to the Quick Start to index your first project and run queries, or see Configuration to customize Reflex for your workflow.