lci-search

Maps and compares lci content search across CLI, MCP, and HTTP surfaces.

Updated Apr 27, 2026
One-click install
npx skills add https://github.com/standardbeagle/lci-cpp --skill lci-search-standardbeagle
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: lci-search
Source: https://github.com/standardbeagle/lci-cpp/tree/main/.agents/skills/lci-search
Command: npx skills add https://github.com/standardbeagle/lci-cpp --skill lci-search-standardbeagle

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Working on lci's search engine requires knowing which of the four surfaces (CLI search, CLI grep, MCP search tool, HTTP POST /search) owns a behavior, where ranking and trigram narrowing live in the C++ tree, and which goldens and differential tests pin the contract. ## Core Features & Use Cases - Surface and code map: Entry points, flags, and file:line references for lci search, lci grep, the MCP search tool, and POST /search, down to the trigram bloom, postings index, and scoring functions. - Invariants and traps: Documents certified-absence narrowing, regex literal-seed rules, the 0-based byte column contract, and MCP result caps so changes do not reintroduce silent-zero bugs. - Honest product comparison: Benchmarks and claims (sub-millisecond search, 80% context reduction) checked against ripgrep, Zoekt, Sourcegraph, and embedding search, with measured gaps called out. - Use Case: When fixing a bug where lci grep -E refuses a pure-meta regex, use this Skill to find the seed-extraction logic in src/cli/grep_filters.cpp, the pinning tests, and the probe commands to reproduce it. ## Quick Start Use the lci-search skill to locate the code and tests behind lci search ranking and compare it against ripgrep.

Frequently Asked Questions about lci-search

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I search code with lci from the command line?▼

Run `lci search PATTERN [paths...]` for literal substring search, adding `-E` for RE2 regex, `-i` for case-insensitive, and `-j` for JSON output. `lci grep` provides grep-shaped flags like `-n`, `-C`, `-c`, and `-l`.

How does lci search compare to ripgrep and Zoekt?▼

lci keeps an in-memory trigram bloom plus token postings index with symbol-aware ranking, while ripgrep is a stateless scan and Zoekt uses an on-disk trigram index. lci lacks disk persistence, smart-case, and multi-repo support, and one agent-level measurement showed grep ahead on literal-search F1.

Why does lci grep refuse some regex patterns?▼

lci grep -E rejects pure-meta regexes that contain no literal run of at least 3 characters, because the trigram fast path needs a seed to stay lossless. `lci search -E` handles the same pattern by falling back to a full RE2 scan.

Does the lci MCP search tool support semantic or synonym expansion?▼

Yes, the MCP search tool expands multi-word patterns through a configurable SynonymTable when `semantic=true`, with synonym-injected patterns matching case-insensitively. The `enable_fuzzy` config key is parsed but not read by the engine.

What are the limitations of lci search result caps?▼

The MCP search tool caps results at 100 and returns `truncated:true` with a `dirs` histogram so callers can narrow with `path=`. The CLI pages the server up to a 100000-result ceiling, and each file contributes at most 100 matches.