Repository navigation
Conversation
Ship the Claude Code plugin as the only Claude target and publish it from the release workflow, replacing the Claude Desktop MCPB bundle that the Claude directory no longer accepts. - Start the server through scripts/launch-node.sh, which finds Node.js 22.19+ on PATH or in Homebrew, nvm, fnm, Volta, mise and asdf locations, since Claude opened from the Dock lacks the shell PATH. A SessionStart hook runs the same check and tells the user and Claude when none is found. - Add a Claude README for the listing and a Claude recovery reference for the setup skill; leave out Codex skill metadata and npm .bin symlinks. - Publish the plugin in plugins/mobile-dev plus a root marketplace as the only content of release/claude, tagged claude-v<version>. - Point the manifest at the repository's current URLs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lauridskern
added a commit
that referenced
this pull request
Oct 29, 2026
#59) Brings over the parts of #56 that the Claude plugin still needs. Claude opened from the Dock starts plugins without the shell's PATH, so the server now starts through scripts/launch-node.sh, which also looks for Node.js 22.19 or later where Homebrew, nvm, fnm, Volta, mise and asdf install it. A SessionStart hook runs it with --check and tells the user and Claude when none is found, and the Claude skill's missing-tools recovery checks the launcher and offers an install. The plugin ships a Claude README, which the plugin directory lists, and leaves out Codex skill metadata and npm's .bin symlinks, which plugin directories reject; the smoke test checks all three and starts the server through the launcher. Co-authored-by: Mike Grabowski <grabbou@gmail.com>
Collaborator
|
closing in favor of #59 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Makes the Claude Code plugin the only Claude target and publishes it from the release workflow. This replaces the Claude Desktop MCPB bundle, which the Claude directory no longer accepts; local servers now ship inside a plugin.
scripts/launch-node.sh. It finds Node.js 22.19+ onPATH, or in the usual Homebrew (including keg-onlynode@22/node@24), nvm, fnm, Volta, mise and asdf locations, because Claude opened from the Dock doesn't inherit the shell'sPATH. ASessionStarthook runs the same script with--check. When no usable Node is found, it shows the user a message and tells Claude to offer an install (brew install nodeor nodejs.org) and a restart. The setup skill gets a Claude-specific recovery reference.agents/openai.yaml) and npm.binsymlinks, which the directory blocks. The MCPB manifest, its packaging and its smoke test are removed.release/claudebranch. Eachv*release also packages and smoke-tests the Claude plugin. A newpublish-claudejob makesrelease/claudehold only the plugin inplugins/mobile-devplus a root.claude-plugin/marketplace.json, and tags the commitclaude-v<version>. Older or repeated versions never replace it.callstackincubator/codex-mobile-dev-plugin.Install after the first release:
Verification
npm run package:claudeandnpm run test:claudepass. The smoke test runs the hook and starts the server through the launcher from a path with spaces.test:cursorstill passes.claude plugin validate --strict(Claude Code 2.1.311) passes for both the plugin folder and the branch layout's marketplace.CLAUDE_CONFIG_DIR:plugin marketplace addon the branch layout,plugin install mobile-dev@mobile-dev, thenclaude mcp listwith a Dock-likePATHshowsplugin:mobile-dev:mobile-dev … ✔ Connected.PATH=/usr/bin:/bin, prints valid hook JSON when none is found, and exits 1 with the install message.apps/claude/test/publish-release.test.tsis new and covers layout, tag, executable modes, advancing, version ordering and release-build checks. The Codex publish tests still pass.npm testlocally: 835 pass. The 2 failures that reproduce (Baguette Xcode-library relocation, socket QoS server startup) also fail on cleanmainon this machine, with Node 24.0.1. The others were load flakes that passed on rerun.Not covered: Claude directory submission
The directory stops validation for any plugin file over 5 MiB, or a repository over 50 MiB as GitHub archives it (pre-submission checklist). Today the package has:
dist/baguette/Baguetteat 25.3 MiB (11 MiB stripped).usdzdevice models at 5.1–5.7 MiBdist/server.mjsat 5.02 MiBGetting into the directory needs a follow-up: either a slimmer plugin that fetches its native runtime with a pinned hash, or an exception from Anthropic. The self-hosted marketplace on
release/claudedoesn't have these limits.🤖 Generated with Claude Code