Skip to content

Plugins

Plugins are plain TypeScript modules registered with Coro without forks of runner core logic. Everything interesting—Git providers, ticketing, bespoke LLM executors—is expressible behind small surfaces the harness already understands.

The three canonical kinds

KindResponsibilityMCP flavour
SCMClone repos, manipulate branches/tags, PR lifecycle, webhook parsingNamespaced tools such as mcp__coro__scm_* guarded by Runner
TrackerIssues, assignments, transitions, mirrored child campaignsNamespaced tracker tools guarded by Runner
ExecutorHow executePhase() talks to-model (Anthropic Claude today, adapters later)Not exposed directly to Markdown—runner loads PhaseExecutor implementations

Agents stay Markdown-clean: they declare intent (“clone repo”, “merge PR”) referencing generic tool names—plugins translate to GitHub/GitLab/Bitbucket specifics.

MCP-first ergonomics

Tool schemas ship with the MCP server embedded in-runner. That buys:

  • Stable JSON shapes for dashboards and auditors
  • Straightforward mocking in integration tests for plugin authors
  • Clear delineation between agent-visible MCP tools vs internal Runner APIs (PluginRegistry)

Dive deeper into extension

Starter topics live under Extending Coro:

  • SDK overview — Scaffold and publish out-of-repo plugins compliant with @coro-ai/plugin-sdk.

Contribution guides for filesystem layout and packaging conventions sit alongside Contributing → local setup when preparing patches upstream.