prep is a Go command-line tool for indexing local projects and finding them quickly by project name or by filenames inside the project.
It is aimed at project discovery, not full-text search. Each indexed project stores:
- project name
- full path
- source root
- inferred language
- last modified timestamp
- README preview
- recursive filenames
By default, prep treats every immediate child directory of these roots as a project:
~/Compiled~/PycharmProjects
Inside each project, it recursively indexes filenames while skipping noisy directories such as:
.gitnode_modules.venvvenvdistbuildtarget__pycache__
prep follows XDG-style paths:
- config:
~/.config/prep/config.toml - index:
~/.local/state/prep/index.sqlite
On first run, it creates the config file automatically with sensible defaults.
prep index
prep search <query>
prep show <project>Scans configured roots, rebuilds the SQLite index, captures README previews, and records the latest modification time found in each project.
Searches for projects using:
- project name matches first
- filename matches second
Results are shown as a compact list with project name, language, last modified timestamp, and path.
Shows project details and the first five lines of the README preview. If multiple projects match, use the full path.
go build -o prep ../prep index
./prep search docker
./prep show /home/rose/Compiled/prepprepuses SQLite through a pure Go driver.- Unreadable files or directories are skipped with warnings instead of aborting the whole index run.
MIT
