Back to skills
SKILL.md
Carapace
ASecurityUse when working with carapace shell completion — integrating into CLIs, writing YAML specs, creating custom actions, building completion-aware lexers for DSLs, looking up macros, setting up shell completion, configuring choices/bridges, using the MCP server, or adding man page documentation.
- 2,009 stars
- 0 votes
- 0 copies
- 0 views
- Added November 7, 2026
Works with
Security analysis
100/100Pro scans all 14 files and shows the line behind each finding
npx -y skills add carapace-sh/carapace-bin --skill carapace --agent claude-codeAre you the author of Carapace?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/carapace-sh-carapace)---
name: carapace
description: >
Use when working with carapace shell completion — integrating into CLIs, writing YAML specs,
creating custom actions, building completion-aware lexers for DSLs, looking up macros,
setting up shell completion, configuring choices/bridges, using the MCP server, or adding
man page documentation.
user-invocable: true
---
# Carapace Usage Reference
Reference for using [carapace](https://carapace.sh) shell completion — integrating into CLIs, writing specs, creating actions, and configuring completions.
## Sub-Resources
Load the reference that matches your task. When in doubt, load multiple references.
| Keywords | Reference |
|----------|----------|
| Integrate carapace, cobra, PreRun, PreInvoke, bridge, standalone mode, flag config, non-POSIX flags | [references/integrate.md](references/integrate.md) |
| Effective actions, ActionValues, ActionCallback, ActionExecCommand, modifiers, naming, caching, batch, MultiParts, UID, tags, linting, carapace:curated | [references/action.md](references/action.md) |
| YAML spec, user spec, flags, subcommands, parsing modes, exclusiveflags, aliases, completion, macros, modifiers, runnable specs | [references/spec.md](references/spec.md) |
| Macro format, MacroN, MacroI, MacroV, $files, macro signatures, modifier chaining | [references/macro.md](references/macro.md) |
| Choices, variants, bridges, CARAPACE_BRIDGES, --choice, --list, group priority | [references/choice.md](references/choice.md) |
| Setup, shell integration, environment variables, overlays, extensions, install | [references/setup.md](references/setup.md) |
| Environment variable completion, env YAML, conditions, ActionNames, ActionValues | [references/env.md](references/env.md) |
| Convert spec to Go, codegen, macro-to-Go mapping, modifier translation | [references/convert.md](references/convert.md) |
| Update existing completer, incremental update, new flags, new subcommands, surgical edits | [references/update.md](references/update.md) |
| Scrape spec, generate from source, Docker, supported frameworks, patch-and-container | [references/scrape.md](references/scrape.md) |
| MCP server, complete tool, list_macros tool, codegen tool, JSON-RPC, stdio transport | [references/mcp.md](references/mcp.md) |
| Man pages, carapace-man, UID documentation, YAML man pages, inline descriptions, scheme, host, path | [references/man.md](references/man.md) |
| Lexer, parser, DSL completion, CompletionContext, ParseForCompletion, grammar package, completion-aware parser, argstream | [references/lexer.md](references/lexer.md) |
## Quick Guide
- **How do I add carapace to my cobra CLI?** → [references/integrate.md](references/integrate.md)
- **How do I create a custom completion action?** → [references/action.md](references/action.md)
- **How do I write a YAML user spec?** → [references/spec.md](references/spec.md)
- **How do I format macro arguments?** → [references/macro.md](references/macro.md)
- **How do completers/bridges/choices work?** → [references/choice.md](references/choice.md)
- **How do I set up shell completion?** → [references/setup.md](references/setup.md)
- **How do I add environment variable completions?** → [references/env.md](references/env.md)
- **How do I convert a spec to a native Go completer?** → [references/convert.md](references/convert.md)
- **How do I update an existing completer for a new CLI version?** → [references/update.md](references/update.md)
- **How do I generate a spec from CLI source code?** → [references/scrape.md](references/scrape.md)
- **How do I use the MCP server?** → [references/mcp.md](references/mcp.md)
- **How do I add inline documentation for completion values?** → [references/man.md](references/man.md)
- **How do I build a lexer for a DSL value?** → [references/lexer.md](references/lexer.md)
## Cross-Project References
For internal library development (Action API internals, traverse engine, shell formatters, style system), use the **carapace-dev** skill (in the carapace repo).
Files in this skill
- SKILL.md
- references/action.md
- references/choice.md
- references/convert.md
- references/env.md
- references/integrate.md
- references/lexer.md
- references/macro.md
- references/man.md
- references/mcp.md
- references/scrape.md
- references/setup.md
- references/spec.md
- references/update.md
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.