diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 15d0f6a..107a939 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1,10 +1,10 @@ { "$schema": "https://anthropic.com/claude-code/marketplace.schema.json", - "name": "tasict-opencode-plugin-cc", + "name": "johnnyvicious-opencode-plugin-cc", "version": "1.0.0", "description": "OpenCode plugins to use in Claude Code for delegation and code review.", "owner": { - "name": "OpenCode Community" + "name": "JohnnyVicious" }, "plugins": [ { diff --git a/README.md b/README.md index 33970db..24ee9b1 100644 --- a/README.md +++ b/README.md @@ -33,34 +33,30 @@ they already have. ## Install -Inside Claude Code, run: +Add the marketplace in Claude Code: ``` -! curl -fsSL https://raw.githubusercontent.com/tasict/opencode-plugin-cc/main/install.sh | bash +/plugin marketplace add JohnnyVicious/opencode-plugin-cc ``` -Then reload the plugin: +Install the plugin: ``` -/reload-plugins +/plugin install opencode@johnnyvicious-opencode-plugin-cc ``` -You should see: +Reload plugins: ``` -Reloaded: 1 plugin · 7 skills · 6 agents · 3 hooks ... +/reload-plugins ``` -Finally, verify your setup: +Then verify your setup: ``` /opencode:setup ``` -> **What the installer does**: Clones the repo to `~/.claude/plugins/marketplaces/`, -> caches the plugin files, and registers it in Claude Code's plugin config. -> It tries SSH first and falls back to HTTPS automatically. - ### Set up an AI Provider If OpenCode is installed but no AI provider is configured, set one up: @@ -78,10 +74,14 @@ To check your configured providers: ### Uninstall ``` -/plugin uninstall opencode@tasict-opencode-plugin-cc +/plugin uninstall opencode@johnnyvicious-opencode-plugin-cc /reload-plugins ``` +> **Migrating from the upstream `tasict-opencode-plugin-cc` install?** Run +> `/plugin uninstall opencode@tasict-opencode-plugin-cc` once before the +> install command above so the old marketplace entry is removed. + ## Command Mapping (codex-plugin-cc -> opencode-plugin-cc) | codex-plugin-cc | opencode-plugin-cc | Description | @@ -113,21 +113,11 @@ When enabled via `/opencode:setup --enable-review-gate`, a Stop hook runs a targ
Plugin not loading after install (0 plugins) -1. Re-run the installer: `! curl -fsSL https://raw.githubusercontent.com/tasict/opencode-plugin-cc/main/install.sh | bash` -2. Run `/reload-plugins` again. +1. Confirm the marketplace is registered: `/plugin marketplace list` should include `johnnyvicious-opencode-plugin-cc`. If not, re-run `/plugin marketplace add JohnnyVicious/opencode-plugin-cc`. +2. Re-run `/plugin install opencode@johnnyvicious-opencode-plugin-cc` and then `/reload-plugins`. 3. If still failing, restart Claude Code.
-
-Install script fails to clone - -The script tries SSH first, then HTTPS. If both fail: - -- Check your network connection -- For SSH: ensure `ssh -T git@github.com` works -- For HTTPS: run `gh auth login` to set up credentials -
-
OpenCode commands not working @@ -157,7 +147,7 @@ codex-plugin-cc opencode-plugin-cc ``` opencode-plugin-cc/ ├── .claude-plugin/marketplace.json # Marketplace registration -├── install.sh # One-line installer +├── .github/workflows/ci.yml # GitHub Actions CI ├── plugins/opencode/ │ ├── .claude-plugin/plugin.json # Plugin metadata │ ├── agents/opencode-rescue.md # Rescue subagent definition diff --git a/install.sh b/install.sh deleted file mode 100755 index db6fa85..0000000 --- a/install.sh +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env bash -# One-line installer for opencode-plugin-cc -# Usage (inside Claude Code): -# ! curl -fsSL https://raw.githubusercontent.com/tasict/opencode-plugin-cc/main/install.sh | bash -# -# Or clone + run locally: -# ! bash <(curl -fsSL https://raw.githubusercontent.com/tasict/opencode-plugin-cc/main/install.sh) - -set -euo pipefail - -REPO="tasict/opencode-plugin-cc" -PLUGIN_NAME="opencode" -MARKETPLACE_NAME="tasict-opencode-plugin-cc" -BRANCH="main" - -CLAUDE_DIR="$HOME/.claude" -MARKETPLACES_DIR="$CLAUDE_DIR/plugins/marketplaces" -CACHE_DIR="$CLAUDE_DIR/plugins/cache/$MARKETPLACE_NAME/$PLUGIN_NAME" -KNOWN_MKT="$CLAUDE_DIR/plugins/known_marketplaces.json" -INSTALLED="$CLAUDE_DIR/plugins/installed_plugins.json" - -# Colors -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -NC='\033[0m' - -info() { echo -e "${GREEN}[opencode-plugin]${NC} $1"; } -warn() { echo -e "${YELLOW}[opencode-plugin]${NC} $1"; } -error() { echo -e "${RED}[opencode-plugin]${NC} $1"; exit 1; } - -# --- Pre-checks --- -[ -d "$CLAUDE_DIR" ] || error "Claude Code directory not found at $CLAUDE_DIR. Is Claude Code installed?" - -mkdir -p "$CLAUDE_DIR/plugins/marketplaces" "$CLAUDE_DIR/plugins/cache" - -# --- Step 1: Clone marketplace --- -MKT_DIR="$MARKETPLACES_DIR/$MARKETPLACE_NAME" - -if [ -d "$MKT_DIR" ]; then - info "Marketplace already exists, pulling latest..." - git -C "$MKT_DIR" pull --ff-only origin "$BRANCH" 2>/dev/null || true -else - info "Cloning marketplace from GitHub..." - # Try SSH first, fall back to HTTPS - if git clone --depth 1 -b "$BRANCH" "git@github.com:$REPO.git" "$MKT_DIR" 2>/dev/null; then - info "Cloned via SSH." - elif git clone --depth 1 -b "$BRANCH" "https://github.com/$REPO.git" "$MKT_DIR" 2>/dev/null; then - info "Cloned via HTTPS." - else - error "Failed to clone repository. Please check your network and GitHub access." - fi -fi - -# --- Step 2: Read plugin version --- -PLUGIN_JSON="$MKT_DIR/plugins/$PLUGIN_NAME/.claude-plugin/plugin.json" -[ -f "$PLUGIN_JSON" ] || error "plugin.json not found at $PLUGIN_JSON" - -VERSION=$(python3 -c "import json; print(json.load(open('$PLUGIN_JSON'))['version'])" 2>/dev/null || echo "1.0.0") -GIT_SHA=$(git -C "$MKT_DIR" rev-parse HEAD 2>/dev/null || echo "unknown") -NOW=$(date -u +"%Y-%m-%dT%H:%M:%S.000Z") - -info "Plugin version: $VERSION (sha: ${GIT_SHA:0:12})" - -# --- Step 3: Copy plugin to cache --- -CACHE_VERSION_DIR="$CACHE_DIR/$VERSION" -rm -rf "$CACHE_VERSION_DIR" -mkdir -p "$CACHE_VERSION_DIR" -cp -R "$MKT_DIR/plugins/$PLUGIN_NAME/." "$CACHE_VERSION_DIR/" -info "Plugin cached at $CACHE_VERSION_DIR" - -# --- Step 4: Register marketplace in known_marketplaces.json --- -if [ ! -f "$KNOWN_MKT" ]; then - echo '{}' > "$KNOWN_MKT" -fi - -python3 -c " -import json, sys -with open('$KNOWN_MKT', 'r') as f: - data = json.load(f) -data['$MARKETPLACE_NAME'] = { - 'source': {'source': 'github', 'repo': '$REPO'}, - 'installLocation': '$MKT_DIR', - 'lastUpdated': '$NOW' -} -with open('$KNOWN_MKT', 'w') as f: - json.dump(data, f, indent=2) - f.write('\n') -" || warn "Could not update known_marketplaces.json (non-fatal)" - -# --- Step 5: Register plugin in installed_plugins.json --- -if [ ! -f "$INSTALLED" ]; then - echo '{"version": 2, "plugins": {}}' > "$INSTALLED" -fi - -python3 -c " -import json -with open('$INSTALLED', 'r') as f: - data = json.load(f) -if 'plugins' not in data: - data['plugins'] = {} -data['plugins']['$PLUGIN_NAME@$MARKETPLACE_NAME'] = [{ - 'scope': 'user', - 'installPath': '$CACHE_VERSION_DIR', - 'version': '$VERSION', - 'installedAt': '$NOW', - 'lastUpdated': '$NOW', - 'gitCommitSha': '$GIT_SHA' -}] -with open('$INSTALLED', 'w') as f: - json.dump(data, f, indent=2) - f.write('\n') -" || error "Failed to update installed_plugins.json" - -# --- Done --- -echo "" -info "Installation complete!" -echo "" -echo -e " ${GREEN}Next step:${NC} Run this command inside Claude Code:" -echo "" -echo -e " ${YELLOW}/reload-plugins${NC}" -echo "" -echo -e " Then verify with:" -echo "" -echo -e " ${YELLOW}/opencode:setup${NC}" -echo "" diff --git a/package-lock.json b/package-lock.json index 8beb9d7..5ba1271 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "@opencode-ai/opencode-plugin-cc", + "name": "@johnnyvicious/opencode-plugin-cc", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@opencode-ai/opencode-plugin-cc", + "name": "@johnnyvicious/opencode-plugin-cc", "version": "1.0.0", "license": "MIT", "devDependencies": { diff --git a/package.json b/package.json index 55eb6d1..94d3d69 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@opencode-ai/opencode-plugin-cc", + "name": "@johnnyvicious/opencode-plugin-cc", "version": "1.0.0", "private": true, "type": "module",