Checkly skills for AI coding agents packaged as a single plugin that targets Codex, Claude Code, Cursor, and generic agent SDKs. It also bundles the Checkly MCP server for live account operations.
.codex-plugin/ Codex plugin manifest
.claude-plugin/ Claude Code marketplace + plugin manifest
.cursor-plugin/ Cursor plugin manifest
.plugin/ Generic agent plugin manifest
skills/ Skills (one directory per skill)
.mcp.json Checkly MCP server configuration
scripts/sync.ts Pulls externally-authored skills from their source repos
scripts/package.ts Builds the ZIP for OpenAI plugin submission
skills.config.ts Declares where each externally-authored skill comes from
codex plugin marketplace add checkly/checkly-plugin
codexThen open Codex and enable the Checkly plugin via /plugins.
/plugins
npx plugins add checkly/checkly-plugin
/plugin marketplace add checkly/checkly-plugin
/plugin install checkly@checkly
Point Cursor at this repo to install the plugin.
| Skill | Source |
|---|---|
| checkly | checkly/checkly-cli — tracks main, synced daily |
| playwright-best-practices-for-agents | checkly/docs — tracks main, synced daily |
npm run package
Writes dist/checkly-plugin-<version>.zip as an Agent Plugins portable package: a root plugin.json and mcp.json generated from the repo's compatibility manifests, plus skills/, assets/, LICENSE, and README.md. The verbatim file list comes from git ls-files, so untracked files such as .env never end up in the archive.
Both manifests are generated rather than copied, and the repo files are left alone so Claude Code, Cursor and Codex marketplace installs keep working:
plugin.jsonkeeps the portable identity fields at the root and movesinterfaceunderextensions["com.openai"], which replaces the.codex-plugin/plugin.jsonoverlay entirely.skillsandmcpServersare dropped, because portable packages discoverskills/andmcp.jsonby path.mcp.jsonrenames the transport from Claude Code'shttpto the portablestreamable-http, moves the OAuth scopes intoextensions["com.openai"].auth.baseScopes, pinsdefaultScopesto[]so the portal can't fall back to every scope the server advertises, and declaresclient.mode: "cimd"as the registration method..app.jsonand the manifestappsfield stay out: a directory submission can't reference a registered MCP app.
Upload the ZIP at the OpenAI plugin dashboard.
- Externally-authored (lives in another repo, synced here): add an entry to
skills.config.tsand runnpm run sync. - Plugin-native (authored here directly): drop a
skills/<name>/SKILL.mdinto theskills/directory.
See CONTRIBUTING.md for details.