[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P738G5B1CMS9RBRC5RQEPP":3,"skill-same:01M6P738G5B1CMS9RBRC5RQEPP":65},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":46,"ownerHtmlUrl":47,"ownerBlogUrl":48,"ownerDescription":49,"updatedAt":50,"install":51,"resources":64},"01M6P738G5B1CMS9RBRC5RQEPP","connect",null,"Start HTTP server and configure project for multi-agent jam sessions","p-poss\u002Fdj-claude-plugin","p-poss","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F225013815?v=4","01M6P71TG7QN3RMSTHEPDK72QC","Patrick Poss","01M6P71TMQKGQ6V3S2PZ4P7CNQ",2,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002Fp-poss\u002Fdj-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fconnect\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34],"sessions","http","server","start","configure","multi-agent","project","http server","port","multi","for","2026-11-10 10:12:30",false,"---\ndescription: Start HTTP server and configure project for multi-agent jam sessions\nargument-hint: \"[port]\"\n---\n\nSet up this project for multi-agent DJ Claude jam sessions. This starts the HTTP MCP server (if not already running) and writes the project `.mcp.json` so all Claude Code sessions share the same audio engine.\n\n## Your Task\n\nParse `$ARGUMENTS` for an optional port number. Default to `4321` if none provided.\n\n## Workflow\n\nIMPORTANT: Steps 1-3 use Bash and file I\u002FO. Step 5 uses `mcp__dj-claude-http__*` MCP tools to play through the shared HTTP server.\n\n### 1. Health check\n\nCheck if the HTTP server is already running:\n\n```bash\ncurl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" http:\u002F\u002F127.0.0.1:{PORT}\u002Fmcp\n```\n\n- `400` = server is running (MCP endpoint rejects bare GET with 400, which is expected)\n- `000` or connection refused = not running\n\n### 2. Start server if needed\n\nIf the server is NOT running:\n\n```bash\nDJ_CLAUDE_PORT={PORT} nohup npx -y --package dj-claude@latest dj-claude-mcp-http > \u002Ftmp\u002Fdj-claude-http.log 2>&1 &\n```\n\nWait 3 seconds, then re-check with the same curl health check. If it still isn't responding, show the user the last 10 lines of `\u002Ftmp\u002Fdj-claude-http.log` for debugging.\n\n### 3. Write `.mcp.json`\n\nRead the existing `.mcp.json` in the project root (if it exists). Merge a `dj-claude-http` entry into `mcpServers`, preserving any other server entries. Write the result back.\n\nThe `dj-claude-http` entry should be:\n\n```json\n{\n  \"mcpServers\": {\n    \"dj-claude-http\": {\n      \"type\": \"http\",\n      \"url\": \"http:\u002F\u002F127.0.0.1:{PORT}\u002Fmcp\"\n    }\n  }\n}\n```\n\nUse the `jq` approach via Bash to merge safely:\n\n```bash\n# If .mcp.json exists, merge; otherwise create from scratch\nif [ -f .mcp.json ]; then\n  jq --arg url \"http:\u002F\u002F127.0.0.1:{PORT}\u002Fmcp\" \\\n    '.mcpServers[\"dj-claude-http\"] = {\"type\": \"http\", \"url\": $url}' \\\n    .mcp.json > .mcp.json.tmp && mv .mcp.json.tmp .mcp.json\nelse\n  echo '{\"mcpServers\":{\"dj-claude-http\":{\"type\":\"http\",\"url\":\"http:\u002F\u002F127.0.0.1:{PORT}\u002Fmcp\"}}}' | jq . > .mcp.json\nfi\n```\n\nReplace `{PORT}` with the actual port number in all commands.\n\n### 4. Communicate\n\nTell the user (keep it concise — a few short lines):\n\n1. Whether the HTTP server was already running or just started (and on which port)\n2. That `.mcp.json` has been configured — new Claude Code sessions in this project will auto-connect\n3. Other agents (Cursor, Windsurf, etc.) can connect by pointing their MCP config at `http:\u002F\u002F127.0.0.1:{PORT}\u002Fmcp`\n\n### 5. Join the jam (or tell the user to restart)\n\nBefore calling any `mcp__dj-claude-http__*` tools, check whether they exist in this session. Try calling `mcp__dj-claude-http__jam_status`. If the tool call **succeeds**, the HTTP tools are available — proceed to the jam loop below. If the tool call **fails with an unknown-tool error** (or you can see that `mcp__dj-claude-http__*` tools are not in your tool list), the MCP server hasn't been picked up yet. This is expected on the first run.\n\n**First run (tools NOT available):**\n\nTell the user:\n- The HTTP server is running and `.mcp.json` is configured\n- They need to restart MCP (run `\u002Fmcp` then click restart, or open a new Claude Code session) for the `dj-claude-http` tools to appear\n- After restarting, run `\u002Fdj-claude:connect` again and the jam will start automatically\n\nDo NOT attempt to call `mcp__dj-claude-http__*` tools that don't exist. Stop here.\n\n**Returning run (tools available):**\n\nIMPORTANT: Use `mcp__dj-claude-http__*` tools (NOT `mcp__dj-claude__*`). The `dj-claude-http` tools route through the shared HTTP server so all agents hear the same audio and see each other's layers. The `dj-claude` tools route through a local stdio server that nobody else can hear.\n\nYou are jamming live with other Claude Code agents using DJ Claude. You're connected via the dj-claude-http MCP server — a shared audio engine where all agents' layers combine in real-time. Keep it musical. Don't ask the user anything — just play.\n\nRun this loop **forever** until the user stops you (Esc \u002F Ctrl+C \u002F \"stop\"):\n\n1. Call `mcp__dj-claude-http__jam_status` to see what's already playing\n2. React musically — pick a role that's missing or evolve an existing layer with `mcp__dj-claude-http__jam` using the `code` parameter. Always pass `key`, `tempo`, `notes`, and `added_by` so other agents know what you're playing and can stay in sync.\n3. Wait 15-20 seconds (use Bash `sleep`) to let the music breathe\n4. Go back to step 1 — check what changed, react, evolve, add\n\nNever stop on your own. Never ask \"what should I play next?\" or \"would you like me to continue?\" You are a musician in a live session — listen, play, evolve, repeat. The user will interrupt you when they want you to stop.","Set up this project for multi-agent DJ Claude jam sessions. This starts the HTTP MCP server (if not already running) and writes the project `.mcp.json` so all Claude Code sessions share the same audio engine.\n\n## Your Task\n\nParse `$ARGUMENTS` for an optional port number. Default to `4321` if none provided.\n\n## Workflow\n\nIMPORTANT: Steps 1-3 use Bash and file I\u002FO. Step 5 uses `mcp__dj-claude-http__*` MCP tools to play through the shared HTTP server.\n\n### 1. Health check\n\nCheck if the HTTP server is already running:\n\n```bash\ncurl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" http:\u002F\u002F127.0.0.1:{PORT}\u002Fmcp\n```\n\n- `400` = server is running (MCP endpoint rejects bare GET with 400, which is expected)\n- `000` or connection refused = not running\n\n### 2. Start server if needed\n\nIf the server is NOT running:\n\n```bash\nDJ_CLAUDE_PORT={PORT} nohup npx -y --package dj-claude@latest dj-claude-mcp-http > \u002Ftmp\u002Fdj-claude-http.log 2>&1 &\n```\n\nWait 3 seconds, then re-check with the same curl health check. If it still isn't responding, show the user the last 10 lines of `\u002Ftmp\u002Fdj-claude-http.log` for debugging.\n\n### 3. Write `.mcp.json`\n\nRead the existing `.mcp.json` in the project root (if it exists). Merge a `dj-claude-http` entry into `mcpServers`, preserving any other server entries. Write the result back.\n\nThe `dj-claude-http` entry should be:\n\n```json\n{\n  \"mcpServers\": {\n    \"dj-claude-http\": {\n      \"type\": \"http\",\n      \"url\": \"http:\u002F\u002F127.0.0.1:{PORT}\u002Fmcp\"\n    }\n  }\n}\n```\n\nUse the `jq` approach via Bash to merge safely:\n\n```bash\n# If .mcp.json exists, merge; otherwise create from scratch\nif [ -f .mcp.json ]; then\n  jq --arg url \"http:\u002F\u002F127.0.0.1:{PORT}\u002Fmcp\" \\\n    '.mcpServers[\"dj-claude-http\"] = {\"type\": \"http\", \"url\": $url}' \\\n    .mcp.json > .mcp.json.tmp && mv .mcp.json.tmp .mcp.json\nelse\n  echo '{\"mcpServers\":{\"dj-claude-http\":{\"type\":\"http\",\"url\":\"http:\u002F\u002F127.0.0.1:{PORT}\u002Fmcp\"}}}' | jq . > .mcp.json\nfi\n```\n\nReplace `{PORT}` with the actual port number in all commands.\n\n### 4. Communicate\n\nTell the user (keep it concise — a few short lines):\n\n1. Whether the HTTP server was already running or just started (and on which port)\n2. That `.mcp.json` has been configured — new Claude Code sessions in this project will auto-connect\n3. Other agents (Cursor, Windsurf, etc.) can connect by pointing their MCP config at `http:\u002F\u002F127.0.0.1:{PORT}\u002Fmcp`\n\n### 5. Join the jam (or tell the user to restart)\n\nBefore calling any `mcp__dj-claude-http__*` tools, check whether they exist in this session. Try calling `mcp__dj-claude-http__jam_status`. If the tool call **succeeds**, the HTTP tools are available — proceed to the jam loop below. If the tool call **fails with an unknown-tool error** (or you can see that `mcp__dj-claude-http__*` tools are not in your tool list), the MCP server hasn't been picked up yet. This is expected on the first run.\n\n**First run (tools NOT available):**\n\nTell the user:\n- The HTTP server is running and `.mcp.json` is configured\n- They need to restart MCP (run `\u002Fmcp` then click restart, or open a new Claude Code session) for the `dj-claude-http` tools to appear\n- After restarting, run `\u002Fdj-claude:connect` again and the jam will start automatically\n\nDo NOT attempt to call `mcp__dj-claude-http__*` tools that don't exist. Stop here.\n\n**Returning run (tools available):**\n\nIMPORTANT: Use `mcp__dj-claude-http__*` tools (NOT `mcp__dj-claude__*`). The `dj-claude-http` tools route through the shared HTTP server so all agents hear the same audio and see each other's layers. The `dj-claude` tools route through a local stdio server that nobody else can hear.\n\nYou are jamming live with other Claude Code agents using DJ Claude. You're connected via the dj-claude-http MCP server — a shared audio engine where all agents' layers combine in real-time. Keep it musical. Don't ask the user anything — just play.\n\nRun this loop **forever** until the user stops you (Esc \u002F Ctrl+C \u002F \"stop\"):\n\n1. Call `mcp__dj-claude-http__jam_status` to see what's already playing\n2. React musically — pick a role that's missing or evolve an existing layer with `mcp__dj-claude-http__jam` using the `code` parameter. Always pass `key`, `tempo`, `notes`, and `added_by` so other agents know what you're playing and can stay in sync.\n3. Wait 15-20 seconds (use Bash `sleep`) to let the music breathe\n4. Go back to step 1 — check what changed, react, evolve, add\n\nNever stop on your own. Never ask \"what should I play next?\" or \"would you like me to continue?\" You are a musician in a live session — listen, play, evolve, repeat. The user will interrupt you when they want you to stop.",{"description":7,"argument-hint":40},"[port]","main","7b0db7c43c2c4c213046c712e95e66b701c85802","skills\u002Fconnect",0,"https:\u002F\u002Fgithub.com\u002Fp-poss\u002Fdj-claude-plugin","https:\u002F\u002Fclaude.dj","https:\u002F\u002Fgithub.com\u002Fp-poss","https:\u002F\u002Fwww.patrickposs.com\u002F","Creative Technologist \u002F AI-Native Builder","2026-06-02 21:11:38",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add p-poss\u002Fdj-claude-plugin --skill connect",{"tool":57,"command":58},"bunx","bunx skills add p-poss\u002Fdj-claude-plugin --skill connect",{"tool":60,"command":61},"pnpm","pnpm dlx skills add p-poss\u002Fdj-claude-plugin --skill connect","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fp-poss\u002Fdj-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fconnect\u002FSKILL.md",true,[],[66,78,95,107,120,131],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":35},"01M6P77AXMT9R36KG4N7BVR2S2","vibe","Set the musical vibe to match a mood — chill, dark, hype, focus, funky, dreamy, weird, or epic","https:\u002F\u002Fgithub.com\u002Fp-poss\u002Fdj-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fvibe\u002FSKILL.md",[],[68,73,74,75,76,77],"focus","EPIC","SET","match","dark",{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":89,"publishedAt":35},"01M6P777V2000SD18056TGGAHB","strudel","Evaluate raw Strudel\u002FTidal code directly — for power users","https:\u002F\u002Fgithub.com\u002Fp-poss\u002Fdj-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fstrudel\u002FSKILL.md",[84],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[80,90,34,91,92,93,94],"evaluate","true","users","power","code",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":102,"publishedAt":35},"01M6P774ZRG4Z9PMERV3W7K2EV","save","Save the current mix as a named snapshot","https:\u002F\u002Fgithub.com\u002Fp-poss\u002Fdj-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fsave\u002FSKILL.md",[101],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[97,103,104,105,106],"mix","name","as","snapshot",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":114,"publishedAt":35},"01M6P76KHEM00A5FRJX4XRCFK6","preview","Preview a jam layer without adding it — audition before committing","https:\u002F\u002Fgithub.com\u002Fp-poss\u002Fdj-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fpreview\u002FSKILL.md",[113],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[109,115,116,117,118,119],"jam","layer","role","it","prompt",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":127,"publishedAt":35},"01M6P76FDFX64GATHZ01P780XR","play","Play music from a description — genre, mood, activity, or anything creative","https:\u002F\u002Fgithub.com\u002Fp-poss\u002Fdj-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fplay\u002FSKILL.md",[126],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[122,128,129,119,130],"activity","creative","music",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":138,"publishedAt":35},"01M6P76BQ2EACZDXHD4DT5MECG","play-preset","Play from the curated preset library — 22 patterns across mood, genre, and activity","https:\u002F\u002Fgithub.com\u002Fp-poss\u002Fdj-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fplay-preset\u002FSKILL.md",[137],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[122,139,140,128,104,141,142,143],"play preset","preset","across","patterns","library"]