pyrite

Plugins

Pyrite's plugin protocol lets extensions add custom entry types, MCP tools, CLI commands, validators, lifecycle hooks, and relationship semantics. Five extensions ship out of the box.

software-kb is the supported product. Three are example plugins — reference code showing how a plugin adds entry types, CLI commands, MCP tools and a preset. journalism-investigation is experimental: its MCP tools are unsupported until the 0.28 plugin/API contract.

Task management used to live here as an extension. It is now built in: task is a core entry type with its own MCP tools, a pyrite task command group, and per-type state machines.

software-kb — Software project management supported
Entry types
ADRs, components, backlog items, standards, runbooks
MCP tools
sw_adrs, sw_backlog, sw_new_adr, sw_components, sw_standards
zettelkasten — CEQRC maturity workflow example plugin
Entry types
Notes with maturity progression (capture → elaborate → question → refine → connect)
MCP tools
Maturity promotion, reading list management
encyclopedia — Articles with review workflow example plugin
Entry types
Articles, reviews, community voting
MCP tools
Article review, voting, quality scoring
social — Engagement tracking example plugin
Entry types
Social interactions, engagement metrics
MCP tools
Engagement tracking tools
journalism-investigation — Investigative research experimental
Entry types
Sources, claims, actors, evidence chains
MCP tools
Investigation setup, cross-KB source and claim search

Build your own

The plugin protocol exposes 19 extension points. A minimal plugin is a Python class with a name attribute and one or more methods.

# my_plugin/__init__.py

class MyPlugin:

name = "my-plugin"

def get_type_metadata(self):

return {

"recipe": {

"description": "A cooking recipe",

"fields": {

"prep_time": {"type": "number"},

"cuisine": {"type": "select", ...},

},

},

}