$npx skillfedfor your agent

gersemi

A formatter to make your CMake code the real treasure

Worth itPyPI Python ModulesReleased Jul 2026141.3K downloads / moMPL-2.0Platform wheel

Decision gist · record as of 2026-08-14

platform wheels — gersemi-0.28.0-cp310-cp310-macosx_10_12_x86_64.whl · gersemi-0.28.0-cp310-cp310-macosx_11_0_arm64.whl · gersemi-0.28.0-cp310-cp310-manylinux_2_28_aarch64.whl
v0.28.0 · released 2026-07-21 · Python >=3.8 · 1 runtime deps: pyyaml

Yes. gersemi is actively maintained, has no known vulnerabilities, and solves a real problem for CMake-based projects. The medium install friction is acceptable given the pre-built wheels and lightweight dependency. The copyleft license (MPL-2.0) does not restrict your use of the tool itself. Install it if you maintain CMake code and want automated, configurable formatting.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.8 or later.
  • pyyaml must be installed (handled automatically by pip).
  • Medium install friction due to pre-built wheels for multiple Python versions and architectures, but the single runtime dependency (pyyaml) is lightweight.

License · maintenance · safety

MPL-2.0 (copyleft) — gersemi is licensed under MPL-2.0 (copyleft). You must disclose source code modifications and distribute under the same license if you modify and redistribute the package, though using it as a tool does not impose restrictions on your CMake projects.

last release 2026-07-21 (24 days) · last repo commit 2026-08-04 · 340 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 141,256 downloads/mo, #11,244 on PyPI

Verify before relying

pip install gersemi

# Format a CMake file in-place
gersemi -i CMakeLists.txt

# Check if files need formatting
gersemi -c src/
  • Whether the formatter handles all CMake syntax variants and edge cases reliably in production use.
  • Performance characteristics when formatting large CMake projects with many files.
  • Compatibility with custom CMake extensions and third-party module ecosystems.
Same gist for agents: .md · .json

What it is and what it does

gersemi is a standalone CMake code formatter that reads CMake source files and rewrites them according to configurable style rules. It operates as a command-line tool that can check, diff, or in-place reformat CMakeLists.txt files and .cmake modules, with support for parallel processing across multiple files. The formatter respects configuration files (.gersemirc) placed in project directories and allows fine-grained control over line length, indentation style, list expansion behavior, and custom command definitions.

The tool is designed for developers and build system maintainers who want to enforce consistent CMake code style across projects. It integrates into CI/CD pipelines for formatting checks, supports stdin/stdout workflows, and includes caching to speed up repeated runs on unchanged files. Configuration can be stored in version-controlled .gersemirc files or supplied via command-line arguments, making it suitable for team environments.

Use it for

  • Enforce consistent CMake formatting across a multi-module C/C++ project as part of CI/CD.
  • Reformat legacy CMakeLists.txt files to a modern style before refactoring.
  • Check if CMake code meets team style guidelines in pre-commit hooks.
  • Integrate CMake formatting into an IDE or editor workflow via stdin/stdout.
  • Configure project-specific formatting rules in .gersemirc and share across team members.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

gersemi is actively maintained, has no known vulnerabilities, and solves a real problem for CMake-based projects. The medium install friction is acceptable given the pre-built wheels and lightweight dependency. The copyleft license (MPL-2.0) does not restrict your use of the tool itself. Install it if you maintain CMake code and want automated, configurable formatting.

Install

gersemi on PyPI

Before you install

Medium install friction due to pre-built wheels for multiple Python versions and architectures, but the single runtime dependency (pyyaml) is lightweight. Maintenance is active with a recent release 24 days ago and consistent commit activity.

Requires Python 3.8 or later. pyyaml must be installed (handled automatically by pip).

License in practice

gersemi is licensed under MPL-2.0 (copyleft). You must disclose source code modifications and distribute under the same license if you modify and redistribute the package, though using it as a tool does not impose restrictions on your CMake projects.

Quickstart

pip install gersemi

# Format a CMake file in-place
gersemi -i CMakeLists.txt

# Check if files need formatting
gersemi -c src/

Verify before relying

  • Whether the formatter handles all CMake syntax variants and edge cases reliably in production use.
  • Performance characteristics when formatting large CMake projects with many files.
  • Compatibility with custom CMake extensions and third-party module ecosystems.

Package facts

LicenseMPL-2.0 copyleft
Python supportSupports the current Python release >=3.8
Install frictionMedium. Platform-specific wheel
Runtime dependencies
1 package
pyyaml
MaintenanceActively maintained 24 days since the last release
Last repo commit
First released
Downloads141,256 / month, #11,244 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: Quality Assurance

Evidence: gersemi-0.28.0-cp310-cp310-macosx_10_12_x86_64.whl; gersemi-0.28.0-cp310-cp310-macosx_11_0_arm64.whl; gersemi-0.28.0-cp310-cp310-manylinux_2_28_aarch64.whl; gersemi-0.28.0-cp310-cp310-manylinux_2_28_x86_64.whl; gersemi-0.28.0-cp310-cp310-win_amd64.whl; gersemi-0.28.0-cp310-cp310-win_arm64.whl; gersemi-0.28.0-cp311-cp311-macosx_10_12_x86_64.whl; gersemi-0.28.0-cp311-cp311-macosx_11_0_arm64.whl; gersemi-0.28.0-cp311-cp311-manylinux_2_28_aarch64.whl; gersemi-0.28.0-cp311-cp311-manylinux_2_28_x86_64.whl; gersemi-0.28.0-cp311-cp311-win_amd64.whl; gersemi-0.28.0-cp311-cp311-win_arm64.whl; gersemi-0.28.0-cp312-cp312-macosx_10_13_x86_64.whl; gersemi-0.28.0-cp312-cp312-macosx_11_0_arm64.whl; gersemi-0.28.0-cp312-cp312-manylinux_2_28_aarch64.whl; gersemi-0.28.0-cp312-cp312-manylinux_2_28_x86_64.whl; gersemi-0.28.0-cp312-cp312-win_amd64.whl; gersemi-0.28.0-cp312-cp312-win_arm64.whl; gersemi-0.28.0-cp313-cp313-macosx_10_13_x86_64.whl; gersemi-0.28.0-cp313-cp313-macosx_11_0_arm64.whl

Tags

Capabilities
cmake code formattercmake style formattercmake lintercmake beautifiercmake code formatting toolcmake syntax formattercmake file formatter
Topics
cmakecode-formatterbuild-tools

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “cmake code formatter”

  • gersemigersemi is a command-line formatter for CMake code that automatically…
  • cmake-formatFormats, lints, and annotates CMake listfiles, and converts ctest…
  • cmakelangProvides command-line tools to format, lint, and annotate CMake…

Give your agent the search over MCP, or paste the wish link into any chat.

More Python Modules packages

idna Worth it
PyPI · Python Modules · released Jun 2026

Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.

Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.

BSD-3-Clausepure Python · 3.9+
1.8Bdownloads / mo
setuptools Worth it
PyPI · Python Modules · released Aug 2026

Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.

MITpure Python · 3.10+
1.6Bdownloads / mo
PyYAML Worth it
PyPI · Python Modules · released Sep 2025

PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.

MITcompiled wheel · 3.8+
1.2Bdownloads / mo
pydantic Worth it
PyPI · Python Modules · released May 2026

Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.

MITpure Python · 3.9+
1.1Bdownloads / mo
annotated-types Worth it
PyPI · Python Modules · released Jul 2026

Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.

Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…

MITpure Python · 3.10+
871.3Mdownloads / mo
typing-inspection Worth it
PyPI · Python Modules · released Aug 2026

Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.

MITpure Python · 3.10+
783.0Mdownloads / mo

See also cmake-format · cmakelint · cmakelang · reformat-gherkin · mdformat · mbake · beautysh · darker · mdformat-ruff · ruff-format