Widget library manager for AI agents. Search, install, validate, and publish reusable code components across languages and domains.
Invoke when the user wants to understand or manage the cloud layer — publishing, governance, adopt/sync/unpublish, account authentication, registry configuration, or whether to use cg vs a self-hosted registry. Covers both conceptual questions ("what does X mean") and operational ones ("how do I log in", "how do I add a registry"). Fires on "how does cloud work", "explain publishing", "what's governance", "open vs protected", "why can't I push this widget", "what does adopt do", "should I use cg or my own registry", "manage my cloud account", "how do I log in to cartograph", "how do I add a registry", "list my registries", "who am I logged in as", "whoami", "how do I connect to a new registry". Does NOT fire on one-off agent MCP calls made as part of a task (e.g. the agent calling checkin_widget with publish=true). Does NOT fire on config/defaults intent — that's cg-config. Does NOT fire on reviewing an incoming proposals queue — that's cg-proposals.
Invoke when the user wants to understand, review, change, or get recommendations for their Cartograph *setup* — the stable preferences that shape every future checkin, search, and install. Fires on "what's my config", "walk me through my setup", "I want X to be the default", "change my settings", "what should my setup be", "how should I configure Cartograph if I want to <intent>", or any intent about defaults/preferences (private widgets by default, switch registries, point Cartograph at a custom engine binary). Does NOT fire when the user wants to take a one-off action on a specific widget. Does NOT fire when the agent just needs to read one config value for its own work — that's a direct MCP tool call.
Plan a feature by searching existing widgets and producing an install / improve / create plan. Works per-feature, not per-app. Stops at the plan — does not implement.
Invoke when the user wants to review, accept, or reject pending proposals on widgets they own. Fires on "review my proposals", "walk through pending proposals", "someone proposed a change to my widget", "accept this proposal", "reject this proposal", "show me the diff for proposal X". Does NOT fire on questions about what proposals or governance are — that's cg-cloud. Does NOT fire on one-off agent MCP calls made as part of another task. Does NOT fire on changing governance defaults — that's cg-config.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Agent plugin for Cartograph, the widget library manager for AI coding agents.
Ships the Cartograph MCP server plus a set of skills. Designed to work across hosts. Currently packaged for Claude Code, Codex, and Gemini CLI, with one shared body of skill content and per-host manifests in their respective conventions.
MCP server
The Cartograph MCP server exposes registry search, installed-widget
management, widget status, widget creation, validation, checkin, rules
management, and config. It is published to PyPI as cartograph-mcp
and runs through the cartograph-mcp console command (or
python -m cartograph_mcp.server when invoked as a Python module).
Each host registers the server its own way:
mcpServers block in .claude-plugin/plugin.json.mcp.json referenced from providers/codex/.codex-plugin/plugin.jsonmcpServers block in gemini-extension.jsonSkills
cg-plan drives widget-first decomposition for a feature.cg-config interprets the current Cartograph setup and recommends
named profiles when the user wants to change defaults.cg-cloud explains the cloud layer: publishing, governance,
adopt, sync, and what the available choices mean.cg-proposals walks the pending proposals queue on widgets the
user owns, one proposal at a time.How each host surfaces skills depends on the host. See the per-host sections below.
skills/ — base skill content shared across hosts..claude-plugin/ — Claude Code plugin manifest + Claude marketplace manifest.gemini-extension.json — Gemini CLI extension manifest at repo root..agents/plugins/marketplace.json + providers/codex/ — Codex marketplace manifest and provider package. Codex skills may diverge from the base skills when Codex needs provider-specific instructions.scripts/ — bootstrap helpers (cross-platform Python).Python 3.10 or newer with pip on the PATH. The Cartograph MCP server
is a Python package, and python must resolve to a Python 3 interpreter
on your PATH (true on Windows out of the box, and on modern macOS/Linux).
The cleanest setup on any host:
pip install cartograph-mcp
Claude Code can also do this for you on first session via a bootstrap hook (see "Install for Claude Code" below). Codex and Gemini CLI do not have an equivalent hook, so install once yourself.
Claude Code treats this repo as a plugin via the manifest at
.claude-plugin/plugin.json. The plugin auto-registers the MCP server
and (optionally) installs cartograph-mcp on first session.
/plugin marketplace add benteigland11/cartograph-plugin
/plugin install cartograph@cartograph-marketplace
Skills appear as /cartograph:cg-plan, /cartograph:cg-config,
/cartograph:cg-cloud, and /cartograph:cg-proposals, and also
auto-trigger based on natural language matching their descriptions.
git clone https://github.com/benteigland11/cartograph-plugin
claude --plugin-dir ./cartograph-plugin
After editing any SKILL.md, plugin.json, or the hook script, run
/reload-plugins to pick up the change without restarting Claude
Code.
The plugin ships a SessionStart hook at scripts/init-mcp.py
(cross-platform Python — works on Linux, macOS, and Windows). On the
first run it checks whether cartograph_mcp is importable. If the
import fails it runs pip install --target $CLAUDE_PLUGIN_DATA/lib cartograph-mcp, which also pulls in cartograph-cli as a dependency.
On every later session the check passes instantly and the hook exits
as a no-op.
Claude Code launches the MCP server as python -m cartograph_mcp.server
with PYTHONPATH set to the plugin data lib, so the auto-installed
package is always found.
If the auto-install fails (no network, restricted environment, a pip
configuration that blocks --target), the hook prints a clear fallback
instruction asking you to run pip install cartograph-mcp manually and
restart Claude Code. You can also pre-install at any time and the hook
becomes a no-op.
This bootstrap is a Claude-Code-specific convenience because Claude
Code has session-start hooks. The other hosts don't, so on those you
install cartograph-mcp once yourself.
Codex consumes the marketplace manifest at
.agents/plugins/marketplace.json and the plugin manifest at
providers/codex/.codex-plugin/plugin.json.
Install cartograph-mcp first:
pip install cartograph-mcp
Then add this plugin marketplace to Codex:
codex plugin marketplace add https://github.com/benteigland11/cartograph-plugin
npx claudepluginhub benteigland11/cartograph-pluginMemory compression system for Claude Code - persist context across sessions
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Streamline people operations — recruiting, onboarding, performance reviews, compensation analysis, and policy guidance. Maintain compliance and keep your team running smoothly.
Write feature specs, plan roadmaps, and synthesize user research faster. Keep stakeholders updated and stay ahead of the competitive landscape.