Skip to main content

A vector-powered CLI for semantic search over filenames.

Project description

Vexor

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

pip install -e .

The CLI entry point is vexor (or python -m 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

  1. Index the project root (includes every subdirectory):
    vexor index --path ~/projects/demo --include-hidden
    
  2. 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 index on them.
  • Hidden files are included only if both index and search use --include-hidden.

Commands

Command Description
vexor index --path PATH [--include-hidden] Recursively scans PATH, embeds file names, and writes a cache under ~/.vexor.
vexor search QUERY --path PATH [--top K] [--include-hidden] Loads the cached embeddings for PATH and ranks matches for QUERY.
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.

Development

Run tests with:

pip install -e .[dev]
pytest

Tests rely on fake embedding backends, so no network access is required.

Cache files and configuration live in ~/.vexor. Adjust _label_for_path or VexorSearcher._prepare_text if you need to encode additional context (e.g., relative paths).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vexor-0.1.0.tar.gz (29.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vexor-0.1.0-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file vexor-0.1.0.tar.gz.

File metadata

  • Download URL: vexor-0.1.0.tar.gz
  • Upload date:
  • Size: 29.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for vexor-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f50a41e7f39d04504d3214dffd12fee4f38eb175236945d47afa1eb11a456c2a
MD5 a5720e5ffebbc406ff80fd2a49bebd68
BLAKE2b-256 7d82f7aaf48e77e7a4abb74aa6f31922c3c4d33de19f09a9d99ddcdd09098646

See more details on using hashes here.

File details

Details for the file vexor-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: vexor-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for vexor-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b18081c00ba9630efb5bf654aa5d1a1a47af6ef1de613da58ecbdb642427546
MD5 a150852399ae72168826e29958319989
BLAKE2b-256 bfcd05ec8273b05fb171967a7c83b80e08db5d48b5375d526a4d1c2cef13a23d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page