How it works

One file. One command.

A plugin is a small JSON manifest. Cursor Voice turns each one into a tool the assistant can call by voice.

1

Describe a tool

A name, a one-line description (so the model knows when to use it), its arguments, and an action.

2

Drop it in

Save it to your plugins folder, or click Install in app on any plugin.

3

Just say it

The assistant can now call your tool by voice — exposed as plugin_<name>.

Where plugins live

~/Library/Application Support/CursorVoice/plugins/

Every .json in that folder becomes a tool. The Install in app button drops it there for you.

Manifest format

{
  "name": "search wikipedia",
  "description": "Open a Wikipedia search for a topic in the browser.",
  "parameters": {
    "type": "object",
    "properties": { "topic": { "type": "string" } },
    "required": ["topic"]
  },
  "run": {
    "type": "open_url",
    "template": "https://en.wikipedia.org/w/index.php?search={{topic}}"
  }
}

Then say “search Wikipedia for the Eiffel Tower.” Run types:

open_url

Opens a URL. Arguments are URL-encoded.

shell

Runs a zsh command. Args are shell-quoted; the destructive-command guard and Dry-run still apply.

applescript

Runs AppleScript. Args are escaped.