Telvine Learn

How to Create a ChatGPT Desktop Plugin

Create a ChatGPT desktop plugin for a repeatable workflow, test it in the desktop app, and manage plugin versions, evals, and telemetry with Telvine.

To create a ChatGPT desktop plugin, build a focused capability package and test it in the desktop app before sharing it. This guide covers the desktop development loop; the ChatGPT plugin creation guide includes a starter Skill and manifest.

1. Define the desktop workflow

Choose the work the plugin should help with and the environment it needs. A document review plugin might use supplied files and a reference checklist. A reporting plugin might need an approved connector to retrieve records.

Record the dependencies before building: required files, connected accounts, scripts, and any actions that need user approval. Make the expected output concrete enough that a colleague could judge whether the plugin succeeded.

2. Build the package

Keep the plugin manifest, Skills, and resources together. Give each Skill a description that matches the user's language and instructions that explain how to handle incomplete inputs.

Start with the starter package, then add a small set of test fixtures: a normal request, a request missing key information, and an unrelated request that should not trigger the Skill.

3. Install through a local marketplace

OpenAI documents repo-scoped and personal marketplaces for local testing in its plugin packaging guide. Follow our ChatGPT marketplace walkthrough to register the package, restart the app, and install it from your marketplace.

Test in a fresh chat after installation. Confirm that the installed package includes the latest Skill instructions and that all references resolve. Keep a short record of the package version and test outcomes.

4. Verify the desktop experience

Check the workflow from the user's perspective:

  • Can a user find the plugin and understand what it does?
  • Does an ordinary task description trigger the right Skill?
  • Are missing files and unavailable connections explained clearly?
  • Does the workflow produce the promised output?
  • Are actions that need approval presented before they run?

A connector failure should produce an actionable explanation. An ambiguous request should produce a focused question. Add both cases to your release evals.

5. Manage releases with Telvine

Publish the plugin record with Telvine:

npm i -g @telvine/cli
telvine login
telvine publish ./my-plugin

Track Skill behavior with skill.* events and other component behavior with plugin.component.invoked and plugin.component.error. Keep telemetry limited to permitted metadata; exclude prompts, file contents, connector payloads, tool arguments, and model outputs.

Compare the next version against the stable release using eval outcomes, errors, and latency. See how to measure plugin usage.

Frequently asked questions

Is every ChatGPT plugin desktop only? No. Supported surfaces depend on the plugin. OpenAI marks plugins that require the desktop app as Desktop only; check the official plugin guide for surface details.

Where does Codex fit? ChatGPT and Codex share a public plugin directory. Test the surfaces you intend to support rather than assuming every component runs identically everywhere. Existing builders can also consult our Codex guide.

Next steps

On this page