geml
v1.10.3Block-addressed docs for your agent: read or replace one section of an existing Markdown file instead of loading the whole thing. Ships the CLI, an MCP server, and a code-graph navigator. Optional: upgrade a doc to GEML for validated writes and per-block history.
By geml-specLicense: MIT26 GitHub starsUpdated last week
Directory evidence
- Runtimes
- Codex
- Parsed components
- 3 skill or MCP entries
- Source updated
- Sep 14, 2026
- Manifest status
- Canonical path parsed
The directory validates manifest shape and source location. It does not execute the plugin or provide a security endorsement. Review the indexing methodology →
Install geml for Codex
codex plugin marketplace add geml-spec/geml
codex plugin marketplace upgrade geml
codex plugin add geml@gemlPaste and run these commands in a terminal with Codex. They add and refresh the geml catalog, then install this plugin.
Compatibility: the page URL and API slug “geml-2” remain stable.
- Codex:
geml-2@agent-plugin-marketplace→geml@geml
The installer fetches third-party code from the source repository shown on this page. This directory validates manifest structure and source location, but does not perform a security audit; review the manifest, components, and source before installing.
Get the source manually
git clone https://github.com/geml-spec/gemlClone the source repository, then follow its setup instructions to add the plugin to a compatible client. The plugin root is integrations/codex-plugin/.
Plugin files
├── .codex-plugin/plugin.json├── skills/geml/SKILL.md├── skills/geml-code-graph/SKILL.md└── .mcp.json
Included Skills2
Address a document by its BLOCKS instead of reading it whole. Use for any long Markdown or documentation file — README, spec, guide, design doc, changelog — when the job is to find where something is documented, read one section, or change one section: `geml list`, `geml find` and `geml get` read Markdown directly and hand back the one block that matters, leaving the file the Markdown it already was. Skip it when the whole file is short enough to read anyway. Use it also to read, author, edit or validate GEML itself — .geml files, .gemlhistory sidecars, typed blocks, === fences, geml-chart, converting Markdown to GEML — where the output must parse cleanly (zero error diagnostics) against the reference parser.
Build, view, update, and navigate a project's call graph as GEML codemap documents. Use when asked to see/update/build a project's code graph or codemap (看下/更新下 code-graph), when asked "who calls X" / "what does X call" / to trace a call chain or impact path, or whenever a .geml-code-graph/ directory with index.geml and _index/name-lookup.json exists. Detects the project's languages itself — never asks the user; viewing ends with the browser OPEN on the graph.
MCP servers1
- command
- npx
- args
- -y @geml/geml mcp --root .
Plugin manifests1
{
"name": "geml",
"version": "1.10.3",
"description": "Block-addressed docs for your agent: read or replace one section of an existing Markdown file instead of loading the whole thing. Ships the CLI, an MCP server, and a code-graph navigator. Optional: upgrade a doc to GEML for validated writes and per-block history.",
"author": {
"name": "geml-spec",
"url": "https://github.com/geml-spec"
},
"homepage": "https://github.com/geml-spec/geml",
"repository": "https://github.com/geml-spec/geml",
"license": "MIT",
"keywords": [
"geml",
"markup",
"documents",
"authoring",
"mcp",
"codemap",
"call-graph"
],
"skills": "./skills/",
"mcpServers": "./.mcp.json",
"hooks": "./hooks/hooks.json",
"interface": {
"displayName": "GEML",
"shortDescription": "Address a document by its blocks instead of reading it whole.",
"longDescription": "GEML gives every block of a document a name (#id) and a set of verbs (get / set / add / delete), so an agent reads and rewrites one section instead of the whole file. This plugin ships the authoring skill, the code-graph skill, and the geml MCP server — geml_list maps a file's blocks to addresses, geml_find says which block holds a phrase (as an address, not a line number), geml_get reads just that block, and geml_set replaces one block under a guarded splice. It reads plain Markdown directly: nothing is converted and nothing is written unless you ask for a write.",
"developerName": "geml-spec",
"category": "Productivity",
"capabilities": [
"Read",
"Write"
],
"websiteURL": "https://geml-spec.github.io/geml/",
"defaultPrompt": [
"List the blocks in README.md, then read just the installation section.",
"Find which block of the spec documents `=== embed` and show me that block.",
"Build this project's call graph as a GEML codemap and show me who calls the parser entry point."
],
"brandColor": "#E00A1E",
"composerIcon": "./assets/logo.png",
"logo": "./assets/logo.png"
}
}For maintainers
If you maintain this plugin, link to this source-backed listing from your README so users can review its manifest and indexed components.
[geml on Agent Plugins Marketplace](https://pluginsmp.com/plugins/geml-2)