| name | arc-corpus |
| description | Dual-index corpus management for combined semantic and full-text search. Use when user mentions corpus, dual indexing, syncing content to both Qdrant and MeiliSearch, checking parity between systems, deleting corpora, or managing content that needs both search types. |
| allowed-tools | Bash(arc:*), Read |
Corpus Management (Dual-Index)
A corpus maintains both a Qdrant collection (semantic search) and a MeiliSearch index (full-text search) in sync.
For adding or updating content, always prefer arc corpus sync over arc index, arc collection, or arc indexes.
The corpus commands manage Qdrant and MeiliSearch together. Single-system commands
(arc index, arc collection, arc indexes) are for advanced workflows that need one system without the other.
arc corpus create MyCorpus --type pdf
arc corpus create MyCorpus --type code
arc corpus create MyCorpus --type markdown
arc corpus create MyCorpus --type pdf --models stella,jina
arc corpus delete MyCorpus
arc corpus delete MyCorpus --confirm
arc corpus delete MyCorpus --confirm --json
arc corpus sync MyCorpus /path/to/files
arc corpus sync MyCorpus /path/one /path/two /path/three
arc corpus sync MyCorpus /path/to/files --parity
arc corpus sync MyCorpus /path/to/files --parity --dry-run
arc corpus sync MyCorpus /path/to/files --force
arc corpus sync MyCorpus /path/to/files --verify
arc corpus sync MyCorpus /path/to/files --verbose
arc corpus sync MyCorpus /path/to/files --no-gpu
arc corpus repair MyCorpus
arc corpus repair MyCorpus --dry-run
arc corpus repair MyCorpus --quality-threshold 0.5
arc corpus repair MyCorpus --verbose
arc corpus info MyCorpus
arc corpus info MyCorpus --json
arc corpus items MyCorpus
arc corpus items MyCorpus --json
arc corpus parity MyCorpus
arc corpus parity MyCorpus --dry-run
arc corpus parity MyCorpus --verify
arc corpus parity MyCorpus --repair-metadata
arc corpus parity MyCorpus --verbose
arc corpus parity
arc corpus parity --dry-run
arc corpus parity --confirm
arc corpus parity --create-missing --dry-run
arc corpus parity --create-missing --confirm
When to Use Corpus vs Collection/Index
- Use Corpus: When you need both semantic search (conceptual queries) AND full-text search (exact phrases)
- Use Collection alone: When you only need semantic/conceptual search
- Use Index alone: When you only need exact keyword/phrase search
Parity Behavior
The --parity flag on arc corpus sync and the standalone arc corpus parity
command both ensure both systems hold the same content, but operate differently:
arc corpus sync --parity <path>: Runs during a sync. In addition to indexing
new/changed files in <path>, it detects renamed/moved files by content hash
and removes indexed entries for files that no longer exist on disk (scoped
to the directories being synced).
arc corpus parity: Standalone cross-system repair with no directory scan.
Backfills missing entries between Qdrant and MeiliSearch but does not remove
missing-from-disk files.
Cross-system backfill direction (both commands):
- Qdrant -> MeiliSearch: Copies metadata (fast, no file access needed)
- MeiliSearch -> Qdrant: Re-chunks and embeds files (requires file access)
Creating Missing Indexes:
Use --create-missing to promote single-sided Qdrant collections into full corpora:
- Creates MeiliSearch indexes for
qdrant_only collections
- Reads corpus type from Qdrant metadata
- Applies appropriate index settings automatically
- Then proceeds with normal parity sync
Note: meili_only corpora cannot be auto-created (require --type and --model).
GPU Acceleration and Apple Silicon
By default, corpus sync uses GPU acceleration (MPS on Apple Silicon, CUDA on NVIDIA).
Large models on Apple Silicon: Models like stella (1.5B params) may cause system
instability on Macs with limited memory. If you experience lockups:
arc corpus sync MyCorpus /path --no-gpu
ARC_NO_GPU=1 arc corpus sync MyCorpus /path
arc corpus sync MyCorpus /path --models bge
Model sizes:
bge, bge-base, bge-small: Safe for all systems
stella (1.5B): May cause issues on Macs with <16GB RAM
nomic-code (7B): Requires dedicated GPU with significant VRAM