Add claude-code-remote role + per-project plugin bootstrap#17
Merged
Conversation
Make personal repos work well in Claude Code on the web (cloud), where the repo is cloned fresh with no global ~/.claude. Per-repo plugins: claude-project-setup.sh stamps a committed .claude/settings.json (extraKnownMarketplaces + enabledPlugins) from a new shared manifest claude/marketplaces.jsonc, merging without clobbering existing keys. The manifest is also read by claudeconfig.sh's configure_marketplaces(), so the marketplace list has one source of truth. read_json moved to functions.sh to share it. Cloud role: detect CLAUDE_CODE_REMOTE=true as DOTPICKLES_ROLE=claude-code-remote (ahead of container/hostname) across install.sh, fish, and .zshenv. The role disables the dotfiles sandbox (cloud already isolates), declares no agent SSH identity (git goes through the GitHub integration), and leaves macOS bits inert. Folds in role cleanup: claudeconfig default personal -> home; rename personal.jsonc -> home.jsonc so home loads a role file; add container.jsonc; rework gitconfig.sh case to home|container|claude-code-remote (no more exit 1 on home). ADRs 0039 + 0040; architecture + claude README updated. claudeconfig.sh and gitconfig.sh were the only 2 of 42 committed .sh files failing the repo's prettier (stale case indentation); reformatting them to conform accounts for most of their diff. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011jxLeLwfFGKgVUT9C13GQi
Pre-existing failure (committed unformatted in a52dab6, also red on main): prettier wants 2-space indentation for the aliases block. Unrelated to the plugin/role work in this PR, but it's the only thing keeping CI red. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011jxLeLwfFGKgVUT9C13GQi
Per PR review: not in use, so remove it from the shared manifest. It was only cloned globally by claudeconfig.sh and wasn't referenced by any profile, so nothing else changes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011jxLeLwfFGKgVUT9C13GQi
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.
Make personal repos work well in Claude Code on the web (cloud), where the
repo is cloned fresh with no global ~/.claude.
Per-repo plugins: claude-project-setup.sh stamps a committed .claude/settings.json
(extraKnownMarketplaces + enabledPlugins) from a new shared manifest
claude/marketplaces.jsonc, merging without clobbering existing keys. The manifest
is also read by claudeconfig.sh's configure_marketplaces(), so the marketplace
list has one source of truth. read_json moved to functions.sh to share it.
Cloud role: detect CLAUDE_CODE_REMOTE=true as DOTPICKLES_ROLE=claude-code-remote
(ahead of container/hostname) across install.sh, fish, and .zshenv. The role
disables the dotfiles sandbox (cloud already isolates), declares no agent SSH
identity (git goes through the GitHub integration), and leaves macOS bits inert.
Folds in role cleanup: claudeconfig default personal -> home; rename
personal.jsonc -> home.jsonc so home loads a role file; add container.jsonc;
rework gitconfig.sh case to home|container|claude-code-remote (no more exit 1 on
home). ADRs 0039 + 0040; architecture + claude README updated.
claudeconfig.sh and gitconfig.sh were the only 2 of 42 committed .sh files
failing the repo's prettier (stale case indentation); reformatting them to
conform accounts for most of their diff.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_011jxLeLwfFGKgVUT9C13GQi