Monorepo for Cursor plugins by zotoio.
Plan and verify your specs. Generate and update your evals. Watch every agent. Three Cursor plugins shipped together as peers — independent, composable, free. Install one, install all; they cooperate but none depends on another.
| Plugin | Description |
|---|---|
| zoto-spec-system | Decompose complex initiatives into reviewable specs, judge them independently, then execute with adversarial verification at every subtask. |
| zoto-eval-system | Stamp static (pytest) and LLM (@cursor/sdk) eval suites side-by-side, detect drift when AI primitives change and update evals with user confirmation, and compare runs across models on a single /canvas. |
| zoto-cursor-top | Live, htop-style CLI that lists every Cursor agent on the current machine — IDE windows, cursor-agent CLI sessions, and Cloud Agent VMs — in one expandable parent-to-subagent tree with scrolling log tails. |
pnpm installBuild all plugins (compiles hook scripts to JS for distribution):
pnpm buildRun tests across all plugins:
pnpm testRun the official Cursor template validation (marketplace manifest, frontmatter, path references):
pnpm validate-templateRun per-plugin structural validation:
pnpm validateInstall a plugin locally so Cursor discovers it on next restart:
cd plugins/zoto-spec-system
pnpm install-localRemove a locally-installed plugin:
cd plugins/zoto-spec-system
pnpm uninstall-localBoth scripts support --dry-run to preview changes without writing.
- Create a new directory under
plugins/with a.cursor-plugin/plugin.jsonmanifest. - Add the plugin's content (agents, commands, skills, rules, hooks, etc.).
- Add a
package.jsonwith scripts for build, test, and validate. - Add skill evaluations under
skills/*/evals/evals.json.
Based on the cursor/plugin-template conventions.
zoto-agents/
├── .cursor-plugin/
│ └── marketplace.json # Marketplace manifest (registers all plugins)
├── .cursor/
│ └── .gitignore
├── scripts/
│ └── validate-template.mjs # Official Cursor template validation
├── docs/
│ └── add-a-plugin.md # Guide for adding new plugins
├── package.json # Workspace root
├── pnpm-workspace.yaml # pnpm workspace definition
├── tsconfig.base.json # Shared TypeScript config
├── plugins/
│ └── zoto-spec-system/
│ ├── .cursor-plugin/ # Plugin manifest (plugin.json)
│ ├── agents/ # Agent definitions (markdown + frontmatter)
│ ├── assets/ # Logo and static assets
│ ├── commands/ # Command definitions (markdown + frontmatter)
│ ├── docs/ # Plugin documentation
│ ├── hooks/ # Hook scripts (TypeScript → compiled JS)
│ ├── rules/ # Rule files (.mdc + frontmatter)
│ ├── skills/ # Skill definitions + evals
│ ├── templates/ # Config templates
│ ├── scripts/ # Dev scripts (TypeScript)
│ └── tests/ # Test suite (vitest)
- Each plugin has a valid
.cursor-plugin/plugin.json. - Plugin names are unique, lowercase, and kebab-case.
.cursor-plugin/marketplace.jsonentries map to real plugin folders.- All frontmatter metadata is present in rule, skill, agent, and command files.
- Logos are committed and referenced with relative paths.
node scripts/validate-template.mjspasses.pnpm testpasses.
Each plugin is individually licensed. See the LICENSE file in each plugin directory.