Quickstart
Publish a plugin product, import evals, and verify production-safe telemetry.
Plugins are the installable products in Claude, Codex, Copilot Cowork, and
other agent harnesses. Skills are the task-specific capabilities inside them.
Telvine records the plugin package and attaches execution telemetry to each
observable component, including each SKILL.md capability, without flattening
individual behavior. Use it to improve both the plugin product and the Skills it
contains.
For Telvine-backed distribution and metrics, install the public npm package
@telvine/cli@0.1.0:
npm i -g @telvine/cli@0.1.0
telvine login
telvine publish ./my-plugin --dry-run # inspect manifests, components, Skills, evals
telvine publish ./my-plugin # register plugin, versions, evals, write key
telvine publish does three things:
- Reads
.codex-plugin/plugin.jsonor.claude-plugin/plugin.json, then records the plugin package and versioned component inventory. - Discovers
skills/*/SKILL.md, computes version hashes, and links each Skill to the plugin version. - Imports
evals/**/cases.jsonlas human-review eval suites, then mints a plugin-scoped write key (tel_wk_...). The key is printed once — store it somewhere safe.
For legacy single-Skill instrumentation, publish a Skill directory with
--skill-id. See plugin components for the component
inventory schema and event types.
Runtime installers that need a short-lived write key use
POST /v1/runtime/write-key. This endpoint requires a Clerk session token or a
read-scoped Telvine key for the same org/plugin; it will not mint keys from only
a public plugin id or slug.
Record first-run installation
Marketplace hosts do not always send install webhooks. To avoid overstating adoption, Telvine dashboards show observed instances from events, not raw marketplace installs.
When your plugin first runs in a harness, persist an installation id and emit
plugin.install once:
{
"event_type": "plugin.install",
"plugin_id": "plg_yourpluginid",
"version": "0.1.0",
"installation_id": "inst_generated_once_per_plugin_install",
"occurred_at": "2026-05-28T12:00:00.000Z",
"idempotency_key": "plugin-install-inst_generated_once_per_plugin_install-0.1.0",
"runtime": "codex-app",
"properties": {
"via": "marketplace",
"source": "marketplace",
"install_context": "self_serve",
"initial_version": "0.1.0"
}
}
After that, emit skill.invocation.* for Skills and plugin.component.* for
observable connectors, hooks, MCP config, commands, agents, and runtime
components.
Add evals to the plugin repo
PM-authored evals should live with the plugin and Skill they judge:
my-plugin/
skills/my-skill/SKILL.md
evals/my-skill/eval.yaml
evals/my-skill/cases.jsonl
Keep eval fixtures synthetic or approved for testing. Do not use production prompts, connector payloads, browser captures, screenshots, account values, or customer content. Treat evals as versioned evidence that complements production traces, outcomes, and feedback.
Agent experience feedback is enabled by default for eval suites. During an eval run, the harness can ask the AI agent using the plugin to score how usable the plugin felt from 1-5 and return a short metadata-only note. Turn the setting off on a suite when self-review would be noisy or inappropriate.
The Telvine Create Plugin workflow includes this as the default eval companion
for new plugins: scaffold an agent-experience-reviewer Skill, or use the
equivalent harness prompt when the runtime does not support Skills.
See events arriving
telvine plugins metrics <plugin-id> --since 1h
telvine plugins events <plugin-id> --limit 20
For a production rollout checklist, see Production Onboarding.