lci-config

Maps lci's .lci.kdl configuration keys, env vars, and ignore rules to their source code.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When working with the lci code index, it is hard to know which .lci.kdl config key, environment variable, or CLI flag actually controls a behavior, where it is parsed in the C++ source, and whether it is even consumed. This Skill answers those questions directly. ## Core Features & Use Cases - Config surface map: Traces every KDL key (index, performance, server, search, insight, synonyms, attributes) to its struct field and production consumer, flagging dead keys. - Layering and precedence: Explains how defaults, user config, project file, CLI flags, and LCI_* env vars overlay each other. - Ignore semantics: Documents gitignore parity, include/exclude glob behavior, hidden-directory skipping, and budget limits. - Use Case: A user asks why their .lci.kdl exclude block stopped ignoring node_modules; the Skill explains that a project exclude block replaces the ~110 default globs rather than extending them. ## Quick Start Ask which config key controls the index file size limit and where it is enforced in the lci source code.

Frequently Asked Questions about lci-config

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

FAQPage Schema
How do I configure which files lci indexes?▼

Use include and exclude blocks in .lci.kdl at the project root, or pass --include and --exclude CLI flags. Note that a project exclude block replaces the roughly 110 default exclude globs rather than extending them, and --include replaces the config include list.

How does lci config layering work between user and project files?▼

lci layers struct defaults, then ~/.config/lci/config.kdl, then the project .lci.kdl, then CLI flags, then LCI_ERROR_REPORT. When a project file exists it clears include/exclude first, so user-level include/exclude only apply with no project file.

Does lci respect .gitignore when indexing?▼

Yes, lci reads root and nested .gitignore files when index.respect_gitignore is true, which is the default. Parity is tested against real git check-ignore, but .git/info/exclude, core.excludesFile, and .ignore files are not supported.

Why is my lci config key not taking effect?▼

Several keys are parsed but never consumed, including smart_size_control, priority_mode, debounce_ms, startup_delay_ms, and all search.* keys. Unknown keys produce warnings rather than errors, while wrong-typed known keys fail config load with exit 1.

How do I validate an lci .lci.kdl config file?▼

Run lci config validate, which exits 1 on load or validation errors and prints heuristic warnings. You can also use lci config show to inspect the effective config, though its JSON output omits server, insight, synonyms, and attributes sections.

What are the limitations of lci configuration compared to ripgrep?▼

lci lacks a tool-agnostic .ignore file, global gitignore support, per-key origin reporting in config show, and a schema for editor completion. Unlike ripgrep's RIPGREP_CONFIG_PATH, lci drops user include/exclude rules whenever a project file exists.