C++20 modules skill for modern C++ projects. An agent skill from mohitmishra786/low-level-dev-skills.

MITAuto-check passedBackend & APIs

Install Cpp Modules

skills CLI
$ npx skills add mohitmishra786/low-level-dev-skills --skill cpp-modules -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mohitmishra786/low-level-dev-skills cpp-modules --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mohitmishra786/low-level-dev-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/compilers/cpp-modules .claude/skills/cpp-modules && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
cpp-modules
GitHub stars
253
Token cost
~1.6k tokens
SKILL.md length
294 words
Files
2 (incl. references)
Skills in repo
138
Repo updated
First seen
Licence
MIT

At a glance

C++20 modules skill for modern C++ projects. An agent skill from mohitmishra786/low-level-dev-skills.

  • Works in 9 steps: Module concepts overview → Named module — minimal example → Module partitions → …
  • Working with named modules
  • SKILL.md covers Purpose, Triggers, Workflow and Related skills
  • Calls cmake

What it does

Cpp Modules is an agent skill from mohitmishra786/low-level-dev-skills. C++20 modules skill for modern C++ projects. Use when working with named modules, module partitions, header units, CMake MODULESOURCES, Clang -fmodules-ts, BMI caching issues, or migrating from headers to modules. Activates on queries about C++20 modules, import statements, module interface units, header units, or BMI files.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/modules-cmake-support.md`).

It sits in Backend & APIs, covering Caching. It works with C++. The repository describes itself as: A curated suite of AI agent skills for systems and low-level programming with C/C++, Rust, and Zig toolchains, covering compilers, debuggers, profilers, build systems…. The licence is MIT.

When your agent uses it

  • Working with named modules
  • Module partitions
  • CMake MODULESOURCES
  • Clang -fmodules-ts

Example prompts

  • “/cpp-modules”

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Module concepts overview
  2. Named module — minimal example
  3. Module partitions
  4. Header units — bridging legacy headers
  5. Building with Clang
  6. Building with GCC
  7. CMake integration (CMake ≥3.28)
  8. Common errors
  9. Interop with legacy headers

What it can do on your machine

Read from SKILL.md and the folder at commit bdc5847. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • cmake

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Cpp Modules loads about 1.6k tokens when it runs, and up to ~2.2k if it reads all its reference files. Until then it costs about 85 tokens; SKILL.md has 294 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~85
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mohitmishra786/low-level-dev-skills at commit bdc5847, republished under its MIT licence (© mohitmishra786). 294 words, ~1,569 tokens.

Download SKILL.mdSave it as .claude/skills/cpp-modules/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
cpp-modules
description
C++20 modules skill for modern C++ projects. Use when working with named modules, module partitions, header units, CMake MODULE_SOURCES, Clang -fmodules-ts, BMI caching issues, or migrating from headers to modules. Activates on queries about C++20 modules, import statements, module interface units, header units, or BMI files.
user-invocable
true
triggers
C++20 modules, import statement C++, module interface unit, header units C++20, BMI file caching, cmake C++ modules, Clang fmodules-ts, migrate headers to C++…

C++20 Modules

Purpose

Guide agents through authoring, building, and debugging C++20 modules: named modules vs header units, module partitions, CMake integration, compiler-specific flags, and interoperability with legacy headers.

Triggers

  • "How do I write a C++20 module?"
  • "How do I import a module in CMake?"
  • "What's the difference between a named module and a header unit?"
  • "My module gives 'cannot find module' errors"
  • "How do I use C++20 modules with Clang?"
  • "How do I migrate from headers to modules?"

Workflow

1. Module concepts overview
C++20 module kinds:
├── Named module interface unit  (.cppm / .ixx)  — exports declarations
├── Module implementation unit   (.cpp)           — defines module members
├── Module partition             (.cppm)          — internal module subdivision
└── Header unit                  (any header)     — import a legacy header as module

Named modules are the primary target. Header units are a bridge for legacy code. Avoid Global Module Fragment unless required for macro access.

2. Named module — minimal example
cpp
// math.cppm — module interface unit
export module math;          // declares the module name

export int add(int a, int b) { return a + b; }
export double pi = 3.14159;

// Non-exported (module-private)
int internal_helper() { return 42; }
cpp
// main.cpp — consumer
import math;                 // import the module
#include <iostream>          // legacy header (still works)

int main() {
    std::cout << add(2, 3) << "\n";  // 5
    std::cout << pi << "\n";
}
3. Module partitions
cpp
// math-core.cppm — partition
export module math:core;     // partition 'core' of module 'math'

export int add(int a, int b) { return a + b; }
cpp
// math.cppm — primary module interface
export module math;
export import :core;         // re-export the partition
cpp
// math-impl.cpp — implementation unit (no export)
module math;                 // belongs to 'math' module, not a partition
// has access to all math declarations, but exports nothing
4. Header units — bridging legacy headers
cpp
// Import a standard library header as a module unit
import <iostream>;           // header unit (compiler generates BMI)
import <vector>;

// Or import a project header (must be compilable as header unit)
import "myheader.h";

Header units do NOT provide macros to importers. For macro access, use the Global Module Fragment:

cpp
module;                      // Global Module Fragment starts here
#include <cassert>           // macros like assert() are available
export module mymod;
// ... rest of module
5. Building with Clang
bash
# Compile module interface → produces .pcm (precompiled module)
clang++ -std=c++20 --precompile math.cppm -o math.pcm

# Compile implementation using the .pcm
clang++ -std=c++20 -fmodule-file=math=math.pcm -c math.cpp -o math.o

# Compile consumer
clang++ -std=c++20 -fmodule-file=math=math.pcm main.cpp math.o -o prog
6. Building with GCC
bash
# GCC ≥11 supports modules (experimental ≥11, better ≥14)
# Compile interface unit → produces .gcm in gcm.cache/
g++ -std=c++20 -fmodules-ts math.cppm -c -o math.o

# Compiler auto-discovers .gcm files in gcm.cache/
g++ -std=c++20 -fmodules-ts main.cpp math.o -o prog
7. CMake integration (CMake ≥3.28)
cmake
cmake_minimum_required(VERSION 3.28)
project(myproject LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)

add_library(math)
target_sources(math
    PUBLIC
        FILE_SET CXX_MODULES FILES    # module interface units
            src/math.cppm
            src/math-core.cppm
    PRIVATE
        src/math-impl.cpp             # implementation unit
)

add_executable(myapp main.cpp)
target_link_libraries(myapp PRIVATE math)
bash
# Requires a generator that supports modules (Ninja ≥1.11 or MSBuild)
cmake -S . -B build -G Ninja
cmake --build build

For CMake 3.25–3.27 (experimental):

cmake
cmake_minimum_required(VERSION 3.25)
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "3c375311-a3c9-4396-a187-3227ef642046")
set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP ON)
8. Common errors
ErrorCauseFix
module 'math' not foundBMI not found in search pathCompile interface unit first; check -fmodule-file= flags
cannot import header in module#include inside module purviewMove #include to Global Module Fragment or use import <>
redefinition of module 'math'Two .cppm files declare same moduleOnly one primary interface per module
macro not available after importMacros don't cross module boundariesMove macro-dependent code to GMF or use #include
ODR violationSame name in multiple partitionsEach name exported from exactly one partition
BMI cache stale.pcm/.gcm not rebuilt after changeClean build or ensure dependency tracking is working
9. Interop with legacy headers
cpp
// Wrapping a C library for module use
export module cjson;

module;                       // Global Module Fragment
#include <cjson/cJSON.h>      // C header with macros

export module cjson;          // back to module purview

// Re-export key types (optional)
export using ::cJSON;
export using ::cJSON_Parse;

For CMake module support details, see references/modules-cmake-support.md.

  • Use skills/build-systems/build-acceleration for PCH as a modules alternative
  • Use skills/compilers/gcc or skills/compilers/clang for compiler-specific module flags
  • Use skills/build-systems/cmake for CMake project configuration

© mohitmishra786, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in skills/compilers/cpp-modules of mohitmishra786/low-level-dev-skills.

  • SKILL.md
  • references/modules-cmake-support.md

Open the folder on GitHubat commit bdc5847

Compare with similar skills

Cpp Modules next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Cpp Modules compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cpp Modules this skillmohitmishra786/low-level-dev-skills253—~1.6kAutomated safety check: PassMIT
Vcpkggithub/awesome-copilot40k—~2.6kAutomated safety check: PassMIT
New Effect Noden1m21n/Infinite260—~3.5kAutomated safety check: PassCustom licence
Stripe Projectsfossasia/eventyay1.7k5 repos~2kAutomated safety check: NotesApache-2.0
FoundatioFoundatioFx/Foundatio2.1k—~3.9kAutomated safety check: PassApache-2.0
OmniRoute LLM Cachediegosouzapw/OmniRoute74k1 repos~529Automated safety check: PassMIT

Similar skills

  • Vcpkg

    github/awesome-copilot

    Official

    Guide for setting up vcpkg in C++ projects, managing dependency versions, and cross-compiling.

    40k GitHub stars~2.6k tokensUpdated today
    DevOps & CloudAuto-check passed
  • New Effect Node

    n1m21n/Infinite

    Procedure for adding an Effects/Color node: FilterDef table entry vs C++ class, shared GLSL preamble, the caching trap, exit criterion.

    260 GitHub stars~3.5k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Stripe Projects

    fossasia/eventyay

    A skill your agent uses when the user wants to provision infrastructure or third-party services using Stripe Projects.

    1.7k GitHub starsUsed in 5 repos~2k tokens
    Backend & APIsAuto-check: notes
  • Foundatio

    FoundatioFx/Foundatio

    A skill your agent uses when working with Foundatio infrastructure abstractions for .NET -- caching, queuing, messaging, file storage, distributed locking, or background jobs.

    2.1k GitHub stars~3.9k tokensUpdated today
    Backend & APIsAuto-check passed
  • OmniRoute LLM Cache

    diegosouzapw/OmniRoute

    Documents OmniRoute's cache endpoints for reading cache statistics and clearing entries, statistics or the reasoning cache, with notes on TTL and similarity settings.

    74k GitHub starsUsed in 1 repo~529 tokens
    Backend & APIsAuto-check passed
  • Wp Block Themes

    gambitph/Stackable

    A skill your agent uses when developing WordPress block themes: theme.json (global settings/styles), templates and template parts, patterns, style variations, and Site Editor troubleshooting (style…

    350 GitHub starsUsed in 3 repos~985 tokens
    Backend & APIsAuto-check passed

More from mohitmishra786/low-level-dev-skills

All 138 skills in this repo
  • ARM and AArch64 Assembly

    mohitmishra786/low-level-dev-skills

    Guides reading and writing AArch64 and ARM Thumb assembly: compiler output, inline asm, registers, the AAPCS calling convention and NEON or SVE basics.

    253 GitHub stars~1.9k tokensUpdated 3 mo ago
    Auto-check passed
  • RISC-V Assembly Guide

    mohitmishra786/low-level-dev-skills

    Reference for RISC-V assembly on RV32 and RV64: register names and calling convention, extension naming, GCC and Clang inline asm, and QEMU with GDB debugging.

    253 GitHub stars~1.8k tokensUpdated 3 mo ago
    Auto-check passed
  • x86-64 Assembly Reference

    mohitmishra786/low-level-dev-skills

    Explains x86-64 registers, the System V AMD64 calling convention, and how to read compiler-generated or inline assembly.

    253 GitHub stars~1.5k tokensUpdated 3 mo ago
    Auto-check passed
  • Bazel for C and C++

    mohitmishra786/low-level-dev-skills

    Guides your agent through Bazel for C/C++ projects: BUILD files, Bzlmod dependencies, toolchain registration, remote execution, dependency queries and sandbox debugging.

    253 GitHub stars~1.5k tokensUpdated 3 mo ago
    Auto-check passed
  • Binary Hardening

    mohitmishra786/low-level-dev-skills

    Binary hardening skill for security-hardened C/C++ builds. An agent skill from mohitmishra786/low-level-dev-skills.

    253 GitHub stars~2k tokensUpdated 3 mo ago
    Auto-check passed
  • Binutils

    mohitmishra786/low-level-dev-skills

    GNU binutils skill for binary manipulation and analysis. An agent skill from mohitmishra786/low-level-dev-skills.

    253 GitHub stars~1.2k tokensUpdated 3 mo ago
    Auto-check passed

Works with

Categories

Questions about Cpp Modules

What does Cpp Modules do?

C++20 modules skill for modern C++ projects. An agent skill from mohitmishra786/low-level-dev-skills. Cpp Modules is an agent skill from mohitmishra786/low-level-dev-skills. C++20 modules skill for modern C++ projects.

When should I use Cpp Modules?

Cpp Modules fits situations like: working with named modules; module partitions; CMake MODULESOURCES; clang -fmodules-ts.

How do I install Cpp Modules in Claude Code?

Run `npx skills add mohitmishra786/low-level-dev-skills --skill cpp-modules -a claude-code`. Or copy the skill folder (skills/compilers/cpp-modules in mohitmishra786/low-level-dev-skills) into .claude/skills/cpp-modules in your project. Claude Code loads it when a task matches its description.

How do I install Cpp Modules in Codex?

Run `npx skills add mohitmishra786/low-level-dev-skills --skill cpp-modules -a codex`. Or copy the skill folder (skills/compilers/cpp-modules in mohitmishra786/low-level-dev-skills) into .agents/skills/cpp-modules in your project. Codex loads it when a task matches its description.

Can I use Cpp Modules in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mohitmishra786/low-level-dev-skills --skill cpp-modules -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cpp-modules, .gemini/skills/cpp-modules, .github/skills/cpp-modules and .opencode/skills/cpp-modules in your project.

What does Cpp Modules need to run?

Going by SKILL.md and its folder, Cpp Modules needs the command-line tools its instructions call (cmake).

Does Cpp Modules access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Cpp Modules safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Cpp Modules use?

Cpp Modules is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cpp Modules use?

About 1.6k tokens (SKILL.md is roughly 6.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 608 tokens, read only when the agent opens those files.

What are the alternatives to Cpp Modules?

Skills that share tags, products or a category with Cpp Modules: Vcpkg (github/awesome-copilot, 40k stars), New Effect Node (n1m21n/Infinite, 260 stars), Stripe Projects (fossasia/eventyay, 1.7k stars) and Foundatio (FoundatioFx/Foundatio, 2.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cpp Modules?

mohitmishra786 (a GitHub user) maintains it in mohitmishra786/low-level-dev-skills, which has 253 GitHub stars. The repository holds 138 skills in this directory. The repository was last updated on June 27, 2026.

Source: mohitmishra786/low-level-dev-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.