zoobzio January 18, 2026 Edit this page

Vicky

Vicky is a code search and retrieval service that uses chisel for semantic code chunking.

The Pipeline

Repository → Enumerate Files → Chunk (chisel) → Embed (vex) → Store (pgvector) → Search
  1. Enumerate — Vicky clones/fetches the repository
  2. Chunk — Chisel parses files into semantic units
  3. Embed — Vex generates embeddings for each chunk
  4. Store — Chunks and embeddings go into PostgreSQL with pgvector
  5. Search — Queries are embedded and matched against stored chunks

What Chisel Provides

Vicky needsChisel provides
Semantic boundariesChunks split at function/class boundaries
Symbol nameschunk.Symbol for display and filtering
Kind classificationchunk.Kind for faceted search
Source locationschunk.StartLine, chunk.EndLine for navigation
Parent contextchunk.Context for hierarchical browsing
Embeddable contentchunk.Content with docs and implementation

Configuration

Vicky selects chisel providers based on file extension:

ExtensionProvider
.gogolang.New()
.ts, .tsxtypescript.New()
.js, .jsxtypescript.NewJavaScript()
.pypython.New()
.rsrust.New()
.mdmarkdown.New()

Files with unrecognized extensions are skipped.

Metadata Storage

Vicky stores chunk metadata alongside embeddings:

CREATE TABLE chunks (
    id         UUID PRIMARY KEY,
    repo_id    UUID REFERENCES repos(id),
    file_path  TEXT NOT NULL,
    symbol     TEXT,
    kind       TEXT,
    start_line INTEGER,
    end_line   INTEGER,
    context    TEXT[],
    content    TEXT NOT NULL,
    embedding  vector(1024)
);

This enables queries like:

  • "Find functions named Authenticate"
  • "Show all classes in pkg/auth"
  • "Methods in the UserService class"

Learn More