A vector-powered CLI for semantic search over filenames.
Project description
Vexor is a vector-powered CLI that searches file names semantically. It uses Google GenAI's gemini-embedding-001 model to embed file names and queries, then ranks matches with cosine similarity.
Install
Download from releases without python, or with:
pip install vexor # or use pipx, uv
The CLI entry point is vexor.
Configure
Set the Gemini API key once and reuse it everywhere:
vexor config --set-api-key "YOUR_KEY"
Optional defaults:
vexor config --set-model gemini-embedding-001
vexor config --set-batch-size 0 # 0 = single request
Configuration is stored in ~/.vexor/config.json.
Workflow
- Index the project root (includes every subdirectory):
vexor index --path ~/projects/demo --include-hidden
- Search from anywhere, pointing to the same path:
vexor search "api client config" --path ~/projects/demo --top 5
Output example:Vexor semantic file search results ────────────────────────────────── 1 0.923 ./src/config_loader.py 2 0.871 ./src/utils/config_parse.py 3 0.809 ./tests/test_config_loader.py
Tips:
- Keep one index per project root; subdirectories need separate indexes only if you explicitly run
vexor indexon them. - Toggle
--no-recursive(or-n) on bothindexandsearchwhen you only care about the current directory; recursive and non-recursive caches are stored separately. - Hidden files are included only if both
indexandsearchuse--include-hidden. - Re-running
vexor indexonly re-embeds files whose names changed (or were added/removed); if more than half the files differ, it automatically falls back to a full rebuild for consistency.
Commands
| Command | Description |
|---|---|
vexor index --path PATH [--include-hidden] [--no-recursive] [--clear] |
Scans PATH (recursively by default), embeds file names, and writes a cache under ~/.vexor. |
vexor search QUERY --path PATH [--top K] [--include-hidden] [--no-recursive] |
Loads the cached embeddings for PATH (matching the chosen recursion and hidden settings) and ranks matches for QUERY. |
vexor doctor |
Checks whether the vexor command is available on the current PATH. |
vexor update |
Fetches the latest release version and shows links to update via GitHub or PyPI. |
vexor config --set-api-key/--clear-api-key |
Manage the stored Gemini API key. |
vexor config --set-model/--set-batch-size/--show |
Manage default model and batch size. |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vexor-0.3.0.tar.gz.
File metadata
- Download URL: vexor-0.3.0.tar.gz
- Upload date:
- Size: 17.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
401669b1986a11d7babd63d2ac38d16161fc593aaabb1fd2ba49b5865ba15bec
|
|
| MD5 |
8116334ce1048208761d8384ba466577
|
|
| BLAKE2b-256 |
054ccec64b1dc9b96fd416bd9e99b265b892f307546eb4eade9ee658593b40fc
|
Provenance
The following attestation bundles were made for vexor-0.3.0.tar.gz:
Publisher:
publish.yml on scarletkc/vexor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vexor-0.3.0.tar.gz -
Subject digest:
401669b1986a11d7babd63d2ac38d16161fc593aaabb1fd2ba49b5865ba15bec - Sigstore transparency entry: 686415326
- Sigstore integration time:
-
Permalink:
scarletkc/vexor@ce9031c6ecbfc692d9fffc1087e75c44ae1078cb -
Branch / Tag:
refs/heads/main - Owner: https://github.com/scarletkc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ce9031c6ecbfc692d9fffc1087e75c44ae1078cb -
Trigger Event:
push
-
Statement type:
File details
Details for the file vexor-0.3.0-py3-none-any.whl.
File metadata
- Download URL: vexor-0.3.0-py3-none-any.whl
- Upload date:
- Size: 22.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d22e07238e42ab884fd648e6c517fa2c0110129319f359df8d8a62d7fe0ffd02
|
|
| MD5 |
4b51436e6bcc0afed98347ec96a4121d
|
|
| BLAKE2b-256 |
ecd43525470a1ec0854c67dfc5fbd3b1a1ced6ef8663753dc449eb29377a74fa
|
Provenance
The following attestation bundles were made for vexor-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on scarletkc/vexor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vexor-0.3.0-py3-none-any.whl -
Subject digest:
d22e07238e42ab884fd648e6c517fa2c0110129319f359df8d8a62d7fe0ffd02 - Sigstore transparency entry: 686415360
- Sigstore integration time:
-
Permalink:
scarletkc/vexor@ce9031c6ecbfc692d9fffc1087e75c44ae1078cb -
Branch / Tag:
refs/heads/main - Owner: https://github.com/scarletkc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ce9031c6ecbfc692d9fffc1087e75c44ae1078cb -
Trigger Event:
push
-
Statement type: