Skip to content

Claude plugin: rename box to simular-box for the plugin directory - #55

Merged
011235813 merged 5 commits into
mainfrom
261110-claude-plugin-rename-simular-box
Nov 10, 2026
Merged

011235813 merged 5 commits into
mainfrom
261110-claude-plugin-rename-simular-box

Conversation

@011235813

@011235813 011235813 commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

  • Directory review: plugin name is taken

  • Existing installs keep working

    • Problem: people who already have box@simular-box would keep the old plugin, or end up with box listed twice.
    • Solution: connect installs simular-box@simular-box, then uninstalls the old plugin; remove and doctor know about the old name too.
  • Directory review: say what offload runs and sends

    • Problem: the directory reads only claude/ and shows its README as the listing description, and the reviewer asked us to say plainly what /box:offload runs and sends.
    • Solution: claude/README.md copies the top-level README and adds sections on what the plugin contains and what offload runs, uploads, where it goes, and how secrets and permissions work in the box.

Changes

  • claude/.claude-plugin/plugin.json and .claude-plugin/marketplace.json: name is now simular-box; plugin version 0.2.3 → 0.3.1. The offload skill and README pin the CLI @simular-ai/box@1.1.0. displayName stays "box by Simular", and the MCP server inside stays box.
  • New IDs: simular-box@simular-box, /simular-box:offload, /simular-box:back, MCP server plugin:simular-box:box.
  • cli/src/clients/claude-code.js:
    • connect refreshes an existing simular-box marketplace before install, since one added before the rename lists only box.
    • It uninstalls box@simular-box only after the new plugin is set up, so a failed install doesn't leave the user with no box.
    • status reports the old plugin as legacy (so doctor flags it), and remove uninstalls both names.
  • Docs: README.md, cli/README.md, the offload skill, and the offload "bring it back" message use the new names.
  • .claude-plugin/marketplace.json: "renames": {"box": "simular-box"}, so Claude Code itself migrates an installed box@simular-box to the new ID (see the host-marketplace docs). The e2e against real Claude Code 2.1.322 passes with it, and Claude Code made the migration before connect ran. The marketplace name stays simular-box: directory installs load as simular-box@synced, so our marketplace name only matters for people who add this repo directly.
  • claude/README.md (new): the top-level README, with links made absolute because the directory reads only this folder, plus "What this plugin contains" and "What /simular-box:offload runs", "What gets uploaded from your repo", "Where it goes", "How secrets are handled" and "How permissions work on the box".
  • claude/skills/box-offload/SKILL.md: before offloading, Claude stages the new files the task needs with git add, and asks about the untracked files the CLI warns about. That's because the CLI leaves untracked files behind (simular-ai/box-cli#98). The skill also drops --kind cursor, which the box refuses (it runs only claude and codex).
  • Tests: unit tests for replacing the old plugin and for removing it. The e2e install-matrix now seeds the real old plugin (named box, at the old URL), so CI checks the move and the rename together.

Wiring block diagram

npx @simular-ai/box connect  (Claude Code, default URL)
        │
        ├─ marketplace "simular-box" missing? ── add simular-ai/box-plugin
        │                          present?  ── marketplace update (picks up the new name)
        ├─ claude plugin install simular-box@simular-box
        └─ box@simular-box installed? ── claude plugin uninstall box@simular-box
                                                  │
                                                  ▼
                      /mcp → plugin:simular-box:box → Authenticate

Interactions

  • CLI pin moved to 1.1.0. claude/ pins @simular-ai/box@1.1.0 (released 2026-11-10 from box-cli#99, with box-cli#97 and #98), so claude/README.md describes the CLI the plugin runs. Plugin version 0.3.1.
  • Rust CLI: the same migration is in simular-ai/box-cli#97, released in @simular-ai/box 1.1.0 (npm latest). Until this PR merges, 1.1.0's connect can't do a fresh Claude Code install, because the marketplace doesn't list simular-box@simular-box yet. An existing box@simular-box stays installed, since the install fails before anything is uninstalled.
  • Users who installed through /plugin themselves get nothing new from /plugin update box@simular-box, because that plugin is gone from the marketplace. They need npx @simular-ai/box connect, or to uninstall box and install simular-box@simular-box.
  • Moving from box to simular-box is a new install as far as Claude Code is concerned, so users sign in to box again through /mcp.
  • Hermes, OpenAI and OpenClaw plugins are untouched.

Tests

  • npm test in cli/: 68 pass. eslint is clean.
  • claude plugin validate claude and claude plugin validate . both pass.
  • node e2e/install-matrix.mjs claude-code against real Claude Code 2.1.322 passes. Old box plugin at the old URL → connect installs simular-box@simular-box and uninstalls box@simular-box → rerun is a no-op → doctor is clean → remove cleans up.
  • Fresh install: in Claude Code, /plugin marketplace add simular-ai/box-plugin (from this branch), then /plugin install simular-box@simular-box. Check that /mcp lists plugin:simular-box:box, and that /simular-box:offload and the simular-box:box skill show up.
  • Upgrade: with box@simular-box installed, run node cli/bin/simular-box.js connect --client claude-code. Check that /plugin lists only simular-box.

🤖 Generated with Claude Code

The directory already has a plugin named box. connect installs
simular-box@simular-box and then uninstalls the old box@simular-box;
remove and doctor know the old name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@011235813

Copy link
Copy Markdown
Contributor Author

Companion PR for the Rust CLI: simular-ai/box-cli#97. Merge this one first, then box-cli#97, then cut a CLI release right away and bump the offload skill's CLI pin to it.

011235813 and others added 4 commits November 10, 2026 10:47
…ew files

The directory reads only claude/ and shows its README. It copies the
top-level README and adds what the plugin contains and what
/simular-box:offload runs and sends: the pinned npx package, what is
uploaded and what stays, where it goes, and how secrets and permissions
are handled in the box.

The offload skill stages the new files a task needs, since the CLI
(box-cli#98) leaves untracked files on this computer, and drops cursor,
which the box does not run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude Code migrates an installed box@simular-box to simular-box@simular-box
from this map (host-marketplace docs, "Migrate users with a renames map").
connect's own migration stays for older Claude Code versions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.1.0 installs the plugin as simular-box@simular-box (box-cli#97) and
leaves untracked files on this computer (box-cli#98), as claude/README.md
describes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@011235813
011235813 merged commit a692b1b into main Nov 10, 2026
27 checks passed
@011235813
011235813 deleted the 261110-claude-plugin-rename-simular-box branch November 10, 2026 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant