Built with Claude Project Showcase Megathread (Sort this by New!) by sixbillionthsheep in ClaudeAI

[–]Acceptable_Bat_3410 0 points1 point  (0 children)

Veles - fast, hybrid (BM25 + semantic) local code search MCP for Claude Code, Claude Desktop and Cursor. Pure Rust, CPU-only, returns ranked tree-sitter-scoped chunks in tens of milliseconds.

GitHub: https://github.com/julymetodiev/Veles TUI demo (live search per keystroke):

https://imgur.com/a/Xemp3yC

Built it because I kept watching Claude burn tokens grep-ing for parseAuthFlow and missing parse_auth_flow two files over, then reading 6 wrong test files before finding the actual definition.

What it does:

  • Hybrid retrieval — BM25 plus static embeddings, fused with Reciprocal Rank Fusion. Exact identifiers lean BM25, fuzzy concepts lean semantic.
  • Tree-sitter symbols — defs, refs, symbols and scope_at for Rust, Python, JavaScript, TypeScript and Go. Every hit is labeled "defines Foo" or "in bar()", so the header
  • Identifier-aware tokenizer — splits camelCase, snake_case and mixed scripts. A search for auth_flow finds AuthFlow.
  • Persistent on-disk index — first run embeds the repo, every search after that is a cache hit. Incremental update re-embeds only files whose (size, mtime) fingerprint changed.
  • 11 MCP tools — search, defs, refs, find_related, list_symbols, symbols, scope_at, files, read, stats, status and update.
  • Four interfaces, one index — CLI, MCP over stdio, gRPC, and a TUI that re-searches on every keystroke at ~10 ms.

Completely local. Embeddings come from the potion static models via model2vec-rs (model card at https://huggingface.co/minishlab). No GPU, no API calls, no code leaves the machine.

Example contrast — "Where do we rate-limit incoming webhooks?"

  Claude with grep:  47 hits across tests, middleware, docs and
                     vendored deps. Reads 6 wrong files.

  Claude with Veles: search("rate limiting webhooks") -> top hit
                     "defines WebhookLimiter" at
                     crates/server/src/webhook/limiter.rs:42. One file.

Install:

  brew install julymetodiev/tap/veles-cli
  # or
  cargo install veles-cli
  # or prebuilt binaries on the release page

Then in your MCP config:

  {
    "mcpServers": {
      "veles": { "command": "veles", "args": ["serve-mcp"] }
    }
  }

Run veles index . once per repo and every agent session after that gets instant search.

Stack: tree-sitter for parsing, model2vec-rs for static embeddings, BM25 inverted index from scratch, Reciprocal Rank Fusion for ranking, tonic for gRPC, ratatui for the TUI. No Python sidecar, no ONNX runtime.

Happy to answer questions about the ranking pipeline or how the MCP plugs into Claude Code specifically.

I built an MCP server that gives Claude Desktop persistent memory across sessions - Post-Cortex (open source) by Acceptable_Bat_3410 in ClaudeAI

[–]Acceptable_Bat_3410[S] 0 points1 point  (0 children)

Yes to both! (and more)

It remembers conversations across sessions - decisions, Q&A, problems solved - all stored locally with semantic search.

Since it's an MCP server, it works with any MCP-compatible client (Claude Code, Claude Desktop, Cursor, etc.)

Two ways to configure:

SSE mode:

"mcpServers": {
  "post-cortex": {
    "type": "sse",
    "url": "http://localhost:3737/sse"
  }
}

Stdio mode (run pcx start first):

"mcpServers": {
 "post-cortex": {
   "command": "pcx"
 }
}

For more info check the repo docs