Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

vector-search — Claude Code skill: what it does, how to install

Runs vector search over corpora via HNSW embeddings and routes queries across up to 11 hot patterns in WASM.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add ruvnet/ruflo --skill vector-search -a claude-code
Open on GitHub

What vector-search does

The skill includes two separate search mechanisms. For corpora above 500 items, it relies on @claude-flow/memory HNSW native bindings via embeddings_* tools. Benchmarks show a 3.2×–4.7× speedup at 5,000 vectors compared to brute-force scans with recall@10 around 0.99.

For collections with 5,000 vectors or more, RaBitQ 1-bit quantization reduces memory consumption by 32×. The embeddings_rabitq_search call returns only candidate IDs, so full-precision reranking through embeddings_search remains the caller's duty. Below 5,000 vectors, rebuilding the index costs more than it saves.

The second path uses a WASM router with a hard ceiling of 11 patterns for sub-millisecond intent classification. Hierarchical data like code trees can also be mapped into Poincare ball space via embeddings_hyperbolic.

What it helps with

  • search text corpora with over 500 documents
  • cut vector index memory consumption by 32× using RaBitQ
  • route queries through up to 11 hot patterns via WASM
  • index hierarchical code structures using Poincare ball embeddings

Example prompts for the agent

  • Search the memory index for 'authentication patterns' with limit 10
  • Build a RaBitQ quantized index and find candidate vectors for 'caching strategy'
  • Route this incoming query against hot patterns using ruvllm_hnsw

How to install vector-search

1Skills CLI (Vercel)

npx skills add ruvnet/ruflo --skill vector-search -a claude-code

2Manually: put the files in place

~/.claude/skills/vector-search/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/vector-search/

From the same set104

The whole set →
ruflo ruvnet This skill adds multi-agent orchestration, memory, routing, and MCP tools to a project. Use it for swarm tasks and multi-step workflows. Claude Code CX Codex Cursor +1 4,000installs Swarm Orchestration ruvnet Skill for managing agent swarms with parallel execution, dynamic topology, and automatic load balancing. Use when a single agent is not enough and you need to orchestrate specialists of different types. Claude Code CX Codex Cursor +1 2,100installs github-project-management ruvnet Turns issue triage and board upkeep into gh and ruv-swarm calls: labels, subtasks, duplicate lookup. Useful when the tracker holds more tickets than order. Claude Code CX Codex Cursor +1 1,400installs github-workflow-automation ruvnet Automates GitHub Actions with AI agent coordination. Generates optimised pipelines, manages pull requests, analyzes failed runs, and deploys updates with risk assessment. Claude Code CX Codex Cursor +1 1,300installs github-code-review ruvnet Runs a swarm of specialized AI agents to inspect GitHub pull requests for security, performance, and architecture issues. Claude Code CX Codex Cursor +1 1,300installs stream-chain ruvnet Chains sequential agent steps together using streaming JSON flow and provides ready-to-run pipelines. Claude Code CX Codex Cursor +1 1,200installs flow-nexus-swarm ruvnet Deploy cloud-based AI agent swarms and define event-driven workflows with message queues. Use it to coordinate tasks, inspect runs, and scale a swarm. Claude Code CX Codex Cursor +1 1,200installs performance-analysis ruvnet Detects bottlenecks in Claude Flow swarms, profiles agent operations, and generates reports with actionable optimization recommendations. Claude Code CX Codex Cursor +1 1,200installs

Similar

text-to-speech elevenlabs Turns text into speech with ElevenLabs. Use it for voiceovers, audio output, or speech features in an application. Claude Code CX Codex Cursor +1 16,600installs ml-paper-writing Orchestra Research Guides ML and AI paper drafting from a research repository, with literature checks and preparation for conference submissions. Claude Code CX Codex Cursor +1 2,300installs bailian-cli modelstudioai Skill for managing Aliyun Bailian and DashScope resources via the bl CLI. It routes app calls, quota lookups, and knowledge base queries. Claude Code CX Codex Cursor +1 18,700installs gmgn-track GMGNAI Stream real-time trades from large wallets, KOLs, and your followed accounts via GMGN API. Spot what smart money is buying and copy trades across Solana, BSC, Base, Ethereum. Claude Code CX Codex Cursor +1 17,100installs skill-creator official anthropics Creates and refines skills, then tests them with prompts, evaluations, and performance checks. Claude Code Claude.ai 414,180installs writing-for-agents Matt Pocock Guidance for writing skills and agent-facing documents. Use it when editing AGENTS.md, CLAUDE.md, or reference files reached from them. Claude Code 466,719installs media-use heygen-com Finds or generates media for HyperFrames videos, including voiceovers, music, cutouts, and color grades. Stores files locally in assets. Claude Code CX Codex Cursor +1 1,100,000installs mcp-builder official anthropics This skill walks through building an MCP server in TypeScript or Python, from reading the protocol spec to writing tests and evaluation questions. Claude Code Claude.ai 130,949installs

Questions about vector-search

How to install vector-search in Claude Code?

Run npx skills add ruvnet/ruflo --skill vector-search -a claude-code in your project terminal.

What does vector-search do?

It provides native HNSW search for large text corpora and a WASM router for classifying queries against up to 11 predefined patterns.

When should RaBitQ quantization be used?

Use it for collections of 5,000 vectors or more to achieve 32× lower memory usage. For smaller datasets, the rebuild overhead cancels out the memory savings.

Source text

SKILL.md · MIT
---
name: vector-search
description: Vector search via embeddings_* (large-scale HNSW) and ruvllm_hnsw_* (WASM router for ≤11 hot patterns), with RaBitQ 1-bit quantization for 32× memory reduction
argument-hint: "<query> [--limit N] [--quantized]"
allowed-tools: mcp__plugin_ruflo-core_ruflo__embeddings_generate mcp__plugin_ruflo-core_ruflo__embeddings_search mcp__plugin_ruflo-core_ruflo__embeddings_compare mcp__plugin_ruflo-core_ruflo__embeddings_init mcp__plugin_ruflo-core_ruflo__embeddings_status mcp__plugin_ruflo-core_ruflo__embeddings_hyperbolic mcp__plugin_ruflo-core_ruflo__embeddings_neural mcp__plugin_ruflo-core_ruflo__embeddings_rabitq_build mcp__plugin_ruflo-core_ruflo__embeddings_rabitq_search mcp__plugin_ruflo-core_ruflo__embeddings_rabitq_status mcp__plugin_ruflo-core_ruflo__ruvllm_hnsw_create mcp__plugin_ruflo-core_ruflo__ruvllm_hnsw_add mcp__plugin_ruflo-core_ruflo__ruvllm_hnsw_route mcp__plugin_ruflo-core_ruflo__memory_search_unified Bash
---

# Vector Search

Two distinct vector-search paths live in this plugin. Pick the right one — they're not interchangeable.

| Path | Tool family | Backing | Capacity | Latency |
|------|-------------|---------|----------|---------|
| **Large-scale corpus** | `embeddings_*` | `@claude-flow/memory` HNSW (Rust/Native) | large corpora (measured here only at N=5k and N=20k) | ~1.9× at N=20k, ~3.2×–4.7× at N=5k vs brute-force (measured; recall@10 ≈ 0.99). ANN wins above the crossover |
| **Hot-path router** | `ruvllm_hnsw_*` | WASM-backed router (v2.0.1) | **~11 patterns max** (`ruvllm-tools.ts:58`) | sub-ms; designed for high-priority routing, not corpus search |

The speedups in the Performance section apply to the large-scale `embeddings_search` path (the older "12,500×" headline was a brute-force-fallback artifact and is retired). The WASM router is **not** that path.

## When to use

| Need | Path |
|---|---|
| Search a corpus of N ≥ 500 documents | `embeddings_search` |
| Memory-constrained corpus (≥5,000 vectors) | RaBitQ quantized — see "Quantized search" below |
| Compare two strings | `embeddings_compare` |
| Hierarchical / taxonomic data | `embeddings_hyperbolic` (Poincare ball) |
| Route a query to one of ≤11 hot patterns | `ruvllm_hnsw_route` |
| Cross-namespace search | `memory_search_unified` |

## Standard search

1. **Check status** — `mcp__plugin_ruflo-core_ruflo__embeddings_status` to verify the embedding engine.
2. **Initialize** — `mcp__plugin_ruflo-core_ruflo__embeddings_init` if not active.
3. **Generate** — `mcp__plugin_ruflo-core_ruflo__embeddings_generate` for text input.
4. **Search** — `mcp__plugin_ruflo-core_ruflo__embeddings_search` with the query.
5. **Compare** — `mcp__plugin_ruflo-core_ruflo__embeddings_compare` to measure similarity.
6. **Unified search** — `mcp__plugin_ruflo-core_ruflo__memory_search_unified` for cross-namespace.

## Quantized search (32× memory reduction)

For corpora ≥5,000 vectors and/or memory-constrained environments, use the RaBitQ 1-bit quantization workflow. Below 5,000 vectors the rebuild cost outweighs the savings — use the standard path instead.

| Step | Tool | Purpose |
|---|---|---|
| 1 | `embeddings_init` | Engine warm |
| 2 | `embeddings_rabitq_build` | One-time build of the 1-bit index after corpus is loaded |
| 3 | `embeddings_rabitq_search` | Hamming-prefilter returns top-N candidate IDs (cheap) |
| 4 | `embeddings_search` | Optional exact rerank on the candidate set (full-precision) |
| 5 | `embeddings_rabitq_status` | Index health, memory footprint, build time |

> **Note**: `embeddings_rabitq_search` returns candidate IDs only — the rerank in step 4 is the user's responsibility (mirrors the docstring at `embeddings-tools.ts:911`). Without rerank, results are approximate; with rerank, you get full-precision quality at 32× lower memory.

## Tuning

HNSW exposes three knobs that trade recall against latency. The Performance numbers below were measured at default settings; tune deliberately for your workload and re-measure:

| Profile | `efSearch` | `M` | When to use |
|---------|-----------|-----|-------------|
| `recall-first` | 200 | 32 | Pattern recall during planning; quality matters more than ms |
| `balanced` (default) | 64 | 16 | General-purpose semantic recall |
| `latency-first` | 16 | 8 | Hot-path routing where p99 latency matters |

`efSearch` is passed via `ruvllm_hnsw_create` (`ruvllm-tools.ts:64`). `M` is registry-level today; raise as a follow-up if it should be MCP-tunable. `efConstruction` defaults to 200 in the lite index (`hnsw-index.ts:537`).

## HNSW pattern router (WASM, ≤11 patterns)

For routing a small number of high-priority patterns:
- `mcp__plugin_ruflo-core_ruflo__ruvllm_hnsw_create` — create the WASM index (cap ~11)
- `mcp__plugin_ruflo-core_ruflo__ruvllm_hnsw_add` — add a pattern
- `mcp__plugin_ruflo-core_ruflo__ruvllm_hnsw_route` — route an incoming query

This is **not** a corpus index. Treat it as a fast classifier over a curated set of patterns.

## Hyperbolic embeddings

For hierarchical data (code trees, org charts), use `mcp__plugin_ruflo-core_ruflo__embeddings_hyperbolic` which maps to Poincare ball space. Distance is geodesic, not cosine.

## CLI alternative

```bash
npx @claude-flow/cli@latest embeddings search --query "authentication patterns"
npx @claude-flow/cli@latest embeddings init
npx @claude-flow/cli@latest memory search --query "your query"
```

## Performance

Measured numbers (source: `scripts/benchmark-intelligence.mjs`, ruvector NAPI backend; recall@10 ≈ 0.99). The older "150×–12,500×" figures were brute-force-fallback artifacts and have been retired — see project CLAUDE.md "V3 Performance Targets".

| Method | Measured speedup vs brute-force |
|--------|---------------------------------|
| Brute-force scan | Baseline |
| HNSW (N=5,000) | ~3.2×–4.7× faster |
| HNSW (N=20,000) | ~1.9× faster |
| HNSW (below crossover, small N) | ties/loses vs brute-force |
| RaBitQ quantization | 32× memory reduction; 0.60 ms/query at N≈14.7k |
| `ruvllm_hnsw_route` (n≤11) | sub-ms per route, fixed cost |

© ruvnet · MIT · ruvnet/ruflo

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor