Skip to Content
BlogA plugin is a snippet

A plugin is not a second table. It is a snippet

You want a tiny “pick a date, then insert” tool.

The usual reflex is another launcher, another table, another sync story. CodeExpander does not keep a second plugin database. A plugin is a snippet with plugin_mode on. It sits in the same group tree as the signature and the incident reply. After install, the list gained a snippet, not a new kind of object.

A script inserts stdout into focus. That is Developer boilerplate. A plugin is the thing you click, fill, then insert. Start at the Plugin Hub.

@codeexpander/plugin-timestamp
Install
Timestamp
ts
JSON format
json
QR code
qr

Plugin Hub: install by npm package name. A plugin is a snippet with plugin_mode, not a separate table.

Hub, dev window, search tab — one row

Develop snippet plugin
Create from a template, import a folder, or use Cursor + CodeExpander MCP.
1Create a plugin
Use Cursor (MCP)Recommended

Enable the MCP server in Settings, then ask the AI to generate a snippet.

codeexpander-plugins

Public repo: spec and examples.

2Import into CodeExpander
Import from folder

Pick a folder with plugin.json and an entry file.

Choose folder
Import as dev linkLocal dev

Stores the manifest only; files are read live. Limited by dev_plugin_base_dirs.

Choose folder

Plugin Dev window: step 1 create via Cursor MCP; step 2 import folder or soft-link. A plugin is a plugin_mode snippet, not another table.

Open the hub from the main window or the search window. Install by npm package name (official packages use @codeexpander/plugin-*), or import a local folder that already has plugin.json. npm install needs Node.js and npm on the machine. What you installed shows up in the snippet list. You can group it, search it, and uninstall it by removing that row.

To build one, open the plugin dev window, start from a template, or import a folder you already have. The manifest names the title, the entry page, and optional command triggers. A word like ts appears next to snippets in the search window; Enter runs it. The walkthrough is Plugin development.

The search window has a Plugin tab (Marketplace): browse what is installed, run a command, pin favorites onto the empty state. Drag a file in and a file-aware plugin can take it. Three doors, one snippet.

  1. Install one official utility and confirm it is a row in the snippet list.
  2. Type its command in the search window and watch the insert land in focus.
  3. Open the dev window only when you need your own UI. Do not invent a second table first.

MCP in Settings can generate a plugin from the spec. The result still joins this list. How an agent talks to the machine is Talk via MCP.

Pin the ones you actually open so they sit on the search window’s empty state. Hide the rest. You are changing visibility of a snippet, not maintaining a second inventory.

A smaller window, on purpose

A plugin runs in its own small window. It cannot browse your snippet library directly. Clipboard and toasts wait for you. It can touch fewer files than the main window. That is intentional. When you develop, only the local folders you allow in Settings are loadable.

Do not widen a plugin window until it matches the main app. A plugin is not a second main window, and it is not a page that may load anything it wants. Timeouts and how many backends may run at once live under Settings → Extensions → Plugin backend, on this computer only.

Do not

  • Do not stand up a separate “extensions” database. It is a snippet.
  • Do not cram an internal admin console into the small window. Snippets insert. Plugins are small tools.
  • Do not grant the plugin window the same reach as the main window.

Related: Plugin Hub, Developer boilerplate, Search window.

Last updated