About vexor-cli
vexor-cli is a skill for finding files by intent with the `vexor` command. It guides users through search modes, filters, result formats, and configuration for code and documentation discovery.
Key features
- 01Intent-based file search
- 02Search modes for code and docs
- 03Path, extension, and ignore filters
- 04Snippet and source content output
- 05Project and global configuration
Use cases
- 01Locate code by describing its purpose
- 02Find documentation by headings
- 03Restrict searches to selected file types
- 04Use structured output in scripts
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ scarletkc/ vexor --skill vexor-cliAfter installing, type/vexor-cliin Claude Code to confirm it loaded.
Bundled filesreferences/install-vexor.md
Details
From the project READMEVexor CLI Skill
Goal
Find files by intent (what they do), not exact text.
Use It Like This
- Use
vexorfirst for intent-based file discovery. - If
vexoris missing, follow references/install-vexor.md.
Command
vexor "<QUERY>" [--path <ROOT>] [--mode <MODE>] [--ext .py,.md] [--exclude-pattern <PATTERN>] [--top 5] [--content] [--format rich|porcelain|porcelain-z|json]
Common Flags
--path/-p: root directory (default: current dir)--mode/-m: indexing/search strategy--ext/-e: limit file extensions (e.g.,.py,.md)--exclude-pattern: exclude paths by gitignore-style pattern (repeatable;.js→**/*.js)--top/-k: number of results--include-hidden: include dotfiles--no-respect-gitignore: include ignored files.vexorignoreproject rules always apply, even with--no-respect-gitignore.--no-recursive: only the top directory--format:rich(default),porcelain/porcelain-zfor scripts,jsonfor full output with chunk content--content: print each match's source text below the table — usually removes the need to read the files afterwards--no-cache: in-memory only, do not read/write index cachevexor index --local: create and use project-local.vexor/cache storage
Project Config
- The nearest
.vexor/config.jsonapplies automatically for the resolved search or index path. - It accepts only
rerank,auto_index,model,embedding_dimensions,batch_size,embed_concurrency, andextract_concurrency. batch_sizemust be at least0; both concurrency values must be at least1.- Credentials and endpoints (
api_key,base_url,remote_rerank) and all other fields are rejected. - Precedence is global config, project config, environment overrides, then explicit arguments.
vexor config --showlabels each field's origin andvexor doctorlists active overrides; mutatingvexor configcommands remain global-only.
Modes (pick the cheapest that works)
auto: routes by file type (default)name: filename-only (fastest)head: first lines only (fast)brief: keyword summary (good for PRDs)code: code-aware chunking for.py/.js/.ts(best default for codebases)outline: Markdown headings/sections (best for docs)full: chunk full file contents (slowest, highest recall)
Troubleshooting
- Searching for an exact identifier (function/class/constant name) with weak results: suggest
vexor config --rerank hybridonce — it fuses exact lexical matching with semantic search. - Need ignored or hidden files: add
--include-hiddenand/or--no-respect-gitignore. - Scriptable output: use
--format porcelain(TSV) or--format porcelain-z(NUL-delimited). - Get detailed help:
vexor search --help. - Config issues:
vexor doctororvexor config --showreports effective values and their origins.
Examples
# Find CLI entrypoints / commands
vexor search "typer app commands" --top 5
# Search docs by headings/sections
vexor search "user authentication flow" --path docs --mode outline --ext .md --format porcelain
# Locate config loading/validation logic
vexor search "config loader" --path . --mode code --ext .py
# Exclude tests and JavaScript files
vexor search "config loader" --path . --exclude-pattern tests/** --exclude-pattern .js
# Read the matching code directly, without a follow-up file read
vexor search "where JWT claims are validated" --path . --mode code --content
Tips
- First time search will index files (may take a minute). Long-lived MCP or Python client sessions reuse mapped vectors, monitor source changes, and skip some snapshot scans. Watcher setup failures fall back to scanning. Separate CLI invocations still validate the filesystem. Use longer timeouts if needed.
- Results return similarity ranking, exact file location, line numbers, and matching snippet preview.
- Add
--content(or--format json) to get the matching source text in the same call, and skip reading those files separately. The text sits atcontent_start_line..content_end_line, which can begin later than the result'sstart_linewhen a long symbol was indexed as several chunks. If a result showsstale_line_range, the file changed since indexing — re-runvexor index. Content is capped per response, so lower-ranked results may reportbudget_exhausted. - Combine
--extwith--exclude-patternto focus on a subset (exclude rules apply on top).
Comments
Markdown supported