Cartero discovers local plugin manifests from the plugins/ directory.
Plugin manifests describe trust boundaries and capabilities. First-party plugins in this repo also have corresponding Go command implementations that operate entirely on local workspace data by default.
schema_version: v1
name: local-preview
version: 1.0.0
kind: renderer
mode: local-only
safe: true
capabilities:
- preview.render
trust:
level: first-party
review_required: false
description: Writes previews into a local review sink.schema_version: currently must bev1name: lowercase plugin identifier using letters, digits, and hyphensversion: semantic version such as1.0.0kind:renderer,content-pack,importer,exporter, orintegrationmode:local-only,operator-review, orexternal-servicesafe: whether the plugin stays within Cartero's safe local execution boundarycapabilities: one or more declared extension pointstrust.level:first-party,reviewed, orunreviewedtrust.review_required: must betruefor unreviewed or external-service plugins
preview.render: render local previews or review artifactscampaign.template: provide reusable campaign or landing-page contentcampaign.import: ingest source content into Cartero campaign draftsaudience.sync: sync local or remote audience segment definitionsresults.export: write operator or executive reporting outputsevents.ingest: collect reported-mailbox or training telemetrywebhook.deliver: emit signed campaign lifecycle events
- capabilities must be compatible with the declared
kind safe: trueis only valid forlocal-onlyandoperator-reviewpluginstrust.review_requiredmust staytruewhensafe: false,mode: external-service, ortrust.level: unreviewed- invalid manifests are reported with field-level diagnostics during discovery and
doctor
- make available integrations visible to operators
- keep the CLI offline-first and easy to audit
- support future extension points without coupling the command layer to one transport
cartero plugin list
cartero plugin synclocal-preview: renders local previews and review outputtemplate-library: seeds a curated local template pack into the embedded workspace storeclone-importer: converts reviewed.emlor raw message files into safe Cartero draftsanalytics-export: exports workspace analytics to JSON or CSVaudience-sync: imports local CSV segments into the embedded workspace storeengagement-recorder: stores non-sensitive engagement telemetry for reporting
First-party plugins use the embedded SQLite workspace store at .cartero/cartero.sqlite. This replaces the old MongoDB-dependent model with a portable local database that needs no separate service, credentials, or runtime management.
- add a workspace fixture under
internal/plugin/conformance/testdata/workspaces/<plugin-name>/plugins/ - capture the expected plain-text operator output in
plugin-list.plain.golden - register the fixture in
internal/plugin/conformance/harness_test.go - run
go test ./...to execute manifest validation, fixture loading, and golden output checks
This workflow runs in CI through the normal Go test step, so new plugins inherit the same contract without extra pipeline wiring.