From arc
Search indexed corpora using semantic (vector) OR full-text (keyword) search via the arc CLI. Use when the user asks to search, find, look up, or query a corpus, collection, knowledge base, codebase, docs, PDFs, or markdown. Covers both conceptual queries and exact-term lookups.
npx claudepluginhub cwensel/arcaneum --plugin arcThis skill is limited to using the following tools:
A corpus is dual-indexed: semantic search hits Qdrant, full-text search hits MeiliSearch.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
A corpus is dual-indexed: semantic search hits Qdrant, full-text search hits MeiliSearch. Both are first-class — pick the one that matches the query, and use both when unsure.
Use semantic when the query is:
Use text (full-text) when the query is:
When unsure, run BOTH and merge results. Full-text is cheap and often surfaces hits semantic misses (rare tokens, code symbols, exact error messages). Do not default to semantic alone.
arc collection list # show every corpus/collection
arc corpus info MyCorpus # inspect one corpus (both sides)
arc search semantic "QUERY" --corpus NAME [OPTIONS]
Options:
--corpus NAME — repeat for multi-corpus search (--corpus A --corpus B)--limit N — number of results (default small; raise for broad surveys)--offset N — pagination--score-threshold 0.0-1.0 — drop low-confidence hits--filter "key=value" or --filter '{"key":"value"}' — metadata filter--vector-name NAME — pick a specific embedding model (auto-detected otherwise)--json — structured output for parsing-v / --verbose — show scores and metadataarc search text "QUERY" --corpus NAME [OPTIONS]
Options:
--corpus NAME — repeat for multi-corpus search--limit N, --offset N — pagination--filter "key=value" or --filter '{"key":"value"}' — metadata filter--json, -v — same as semanticNote: full-text has no --score-threshold or --vector-name (no embeddings involved).
# Find a function by name — full-text wins
arc search text "parse_frontmatter" --corpus Code
# Conceptual question — semantic wins
arc search semantic "how is the embedding cache invalidated" --corpus Code
# Unknown — run both
arc search semantic "retry backoff" --corpus Docs --limit 5
arc search text "retry backoff" --corpus Docs --limit 5
# Multi-corpus
arc search semantic "auth flow" --corpus Code --corpus Docs
# Filtered (e.g. only python files)
arc search text "TODO" --corpus Code --filter "language=python" --json
The subcommand (semantic | text) MUST come before the query:
arc search semantic "query" --corpus Xarc search "query" --corpus X --semanticarc search --corpus X "query"