cMeta documentation
September 15, 2026 · View on GitHub
Start here. These guides are the full documentation for the framework; the project README is a summary that links into them.
Guides
| Guide | What it covers |
|---|---|
| motivation.md | Why cMeta exists: the problem, the six aims (collaborative, reproducible, reusable, scalable, portable, sustainable), how complexity becomes abstractions you can operate, the design principles, and FAIR by construction. |
| installation.md | Install as a global CLI (uv tool) or into a venv (uv / pip), from source, where repositories live, verify, first configuration, troubleshooting. |
| common-commands.md | Cheatsheet — the commands you use daily: discovery, the cx . current-directory shortcut, cx . info, artifacts, UIDs, repos, configs, index/cache, scripting and debugging flags. |
| using-cmeta.md | The getting-started and reference guide. Mental model, first checks, CLI flags and syntax, built-in categories, working with artifacts from the CLI and Python, ctx, alias/UID resolution, content repositories, config-driven configuration, adding your own category, the artifact metadata reference, and indexing / caching. |
| error-handling.md | The return-dict contract, checking results, soft errors (code 16), raising errors, and debugging with fail_on_error in VS Code / Visual Studio / PyCharm. |
| async-and-concurrency.md | Serial vs async (CMeta vs CMetaAsync), running calls in parallel, FastAPI usage, and the locking / atomic-write guards that make a shared <CMETA_HOME> safe. |
| configuration.md | The config category in depth — how categories and apps read their settings. |
| cplatform.md | Connecting cMeta to the cTuning.ai platform API and testing the connection. |
| history.md | Lineage (cTuning framework → CK → CM/CMX → cMeta), related publications, and how to cite. |
| known-issues.md | Tracked defects and planned improvements (KI-nnn), with reproductions and workarounds. |
Suggested reading order
- motivation.md — what problem this solves (5 minutes).
- installation.md — get
cxworking. - common-commands.md — the cheatsheet; keep it open.
- using-cmeta.md §1–§5 — mental model, first checks, flags, categories, artifacts.
- using-cmeta.md §7–§9 — repositories, configs, and adding your own category (plugin).
- error-handling.md — before you write a plugin of your own.
For AI agents extending cMeta
AGENTS.md— the canonical agent brief for the engine.CLAUDE.md— Claude Code specific notes..claude/skills/— portable, reusable skills:use-cmeta-python,use-cmeta-cli,add-plugin,add-repo,add-cserver-plugin.
Building the API reference
The docs/en/ tree is a Sphinx project whose API
pages are generated from the docstrings in the cmeta package. build_docs.py
discovers the modules, writes the .rst files under docs/en/api/, and
optionally runs the Sphinx build.
Install the build dependencies:
pip install -r docs/requirements.txt
Generate the .rst files only:
python docs/build_docs.py --docs-dir docs/en --cmeta-dir cmeta
Generate and build HTML:
python docs/build_docs.py --build --docs-dir docs/en --cmeta-dir cmeta
Useful flags: --clean (wipe the build directory first), --pdf,
--all (HTML + PDF), --site-dir <path> (write the rendered site elsewhere).
On Windows, _build_docs.bat (which runs _build_docs.ps1 at the repo root)
wraps the whole flow: it resolves the output site directory from the
cmeta-api-auto docs artifact, installs the requirements with uv, builds,
and archives the result.
Layout
docs/
├── README.md # this file — documentation index
├── *.md # the guides listed above (the editable originals)
├── build_docs.py # RST generator + guide copier + Sphinx build driver
├── requirements.txt # Sphinx build dependencies
└── en/ # Sphinx project (English)
├── conf.py # Sphinx config (version comes from cmeta/version.py)
├── index.rst # site root toctree [generated]
├── home.rst # project home page
├── api/ # API pages, one per module [generated]
├── guides/ # copies of ../*.md [generated, gitignored]
├── _static/ # custom.css
└── _templates/ # layout.html
Notes:
- Edit the guides in
docs/*.md, never indocs/en/guides/. Sphinx cannot read sources above its root, sobuild_docs.pycopies the guides intodocs/en/guides/on every build (wiping it first) and rewrites their repo-relative links — links between guides stay relative, links to anything outside (../README.md,../CITATION.cff,../.claude/skills/…) become GitHub URLs. Markdown is understood thanks to themyst_parserextension. - To add a guide: create
docs/<name>.md, add it to the table above, and add its filename toGUIDE_FILESindocs/build_docs.pyso it joins the TOC. conf.pyimports__version__fromcmeta/version.py— never hard-code a version in the Sphinx config. It imports thecmetapackage directly, so the build environment must be able toimport cmeta.index.rstandapi/*.rstare regenerated on every build. (build_docs.pywill preserve a hand-editedindex.rstonly if it contains the string "Download Documentation".)- Adding a new engine module needs no configuration: the generator discovers it automatically. Just keep docstrings in Google or NumPy style.
See also SPHINX_FASTAPI_INTEGRATION.md for serving the built docs from the FastAPI app.