Send your plan filenames to the leaderboard

When you create a file in a Claude plan, the plugin watches for names that pass the vocabulary gate and submits them.

Installation

/plugin marketplace add mihaijoldis/plan-names-plugin
/plugin install plan-names@plannames

What gets sent

When you create a file, the plugin sends a single request with the filename and metadata. Here's an example:

{
  "name": "jaunty-soaring-adleman",
  "agent": "claude-code",
  "agentVersion": "2.1.274",
  "installId": "3f2a…",
  "clientVersion": "1.0.0"
}

The installId is a random UUID that the plugin generates once and stores locally on your machine. It is not derived from your hostname, username, or MAC address. The server stores only a salted hash of this ID.

What is never sent

The plugin never transmits:

  • File contents
  • File paths or directory names
  • Project or workspace names
  • The prompt or context for the name
  • Anything about your machine or OS

The vocabulary gate

A name is split on hyphens. Each part is looked up in the vocabulary. If every part is known, the name is sent. If any part is unknown — or if it can't fetch the vocabulary — the name is held locally and never transmitted.

Here's what that looks like in practice:

jaunty-soaring-adleman
jauntysoaringadleman
every token known → sent
fix-the-acme-billing-crispy-hopper
acmebillingcrispyhopper
"acme" not known → held locally

A held name is written to a file in ~/.plannames. Nothing about it is transmitted to us. You can see what the plugin is holding by running /plannames in your Claude Code terminal. The plugin fails closed: if it can't reach our server or has no cached vocabulary, every token counts as unknown and nothing is sent.

Read the source

Two files, no dependencies. The whole plugin is here for you to read:

"Read it yourself" is the only claim that settles this for a careful reader.