[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F91VTY5R8DQJT8CK85T87C":3,"skill-same:01M6F91VTY5R8DQJT8CK85T87C":74},{"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":26,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":57,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":59,"updatedAt":60,"install":61,"resources":73},"01M6F91VTY5R8DQJT8CK85T87C","configure",null,"Configure Slack channel tokens (bot token + app-level token)","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fconfigure\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[5,27,28,29,30,31,32,33,34,35,36,37,38,39],"MCP","bot","slack","code","Bash","read","write","channel","claude-code","token","tokens","app","io","2026-11-10 10:12:30",false,"---\nname: configure\ndescription: Configure Slack channel tokens (bot token + app-level token)\nversion: 1.0.0\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\nlicense: MIT\nuser-invocable: true\nargument-hint: \"\u003Cbot-token> \u003Capp-token>\"\nallowed-tools: Read, Write, Bash(chmod:*)\ncompatible-with: claude-code\ntags: [mcp, configure]\n\n---\n\n# \u002Fslack-channel:configure\n\n## Overview\n\nConfigure the Slack channel MCP plugin by providing your Slack bot token and app-level token. Writes credentials to a secure `.env` file with owner-only permissions.\n\n## Prerequisites\n\n- A Slack app created at [api.slack.com\u002Fapps](https:\u002F\u002Fapi.slack.com\u002Fapps) with Socket Mode enabled\n- A Bot User OAuth Token (`xoxb-...`) from OAuth & Permissions\n- An App-Level Token (`xapp-...`) from Socket Mode settings\n- Write access to `~\u002F.claude\u002Fchannels\u002Fslack\u002F`\n\n## Usage\n\n```\n\u002Fslack-channel:configure \u003Cxoxb-bot-token> \u003Cxapp-app-token>\n```\n\n## Instructions\n\n1. Parse the two arguments from `$ARGUMENTS`:\n   - First token must start with `xoxb-` (Bot User OAuth Token)\n   - Second token must start with `xapp-` (App-Level Token)\n\n2. If either token is missing or has the wrong prefix, show this error and stop:\n   ```\n   Error: Two tokens required.\n     - Bot token (starts with xoxb-) from OAuth & Permissions\n     - App token (starts with xapp-) from Socket Mode settings\n\n   Usage: \u002Fslack-channel:configure xoxb-... xapp-...\n   ```\n\n3. Create the state directory if it doesn't exist:\n   ```\n   ~\u002F.claude\u002Fchannels\u002Fslack\u002F\n   ```\n\n4. Write the `.env` file at `~\u002F.claude\u002Fchannels\u002Fslack\u002F.env`:\n   ```\n   SLACK_BOT_TOKEN=\u003Cbot-token>\n   SLACK_APP_TOKEN=\u003Capp-token>\n   ```\n\n5. Set file permissions to owner-only:\n   ```bash\n   chmod 600 ~\u002F.claude\u002Fchannels\u002Fslack\u002F.env\n   ```\n\n6. Confirm success:\n   ```\n   Slack channel configured.\n\n   Start Claude with the Slack channel:\n     claude --channels plugin:slack-channel@claude-code-plugins\n\n   Or for development:\n     claude --dangerously-load-development-channels server:slack\n   ```\n\n## Security\n\n- Never echo the tokens back in the confirmation message\n- Never log tokens to stdout or any file other than `.env`\n- Always set 0o600 permissions on the `.env` file\n\n## Output\n\nOn success, displays:\n```\nSlack channel configured.\n\nStart Claude with the Slack channel:\n  claude --channels plugin:slack-channel@claude-code-plugins\n```\n\nOn validation failure, displays the error with correct usage syntax.\n\n## Error Handling\n\n| Error | Cause | Resolution |\n|-------|-------|------------|\n| Missing token argument | Fewer than 2 arguments provided | Show usage with required token prefixes |\n| Invalid bot token prefix | First token does not start with `xoxb-` | Explain where to find the Bot User OAuth Token |\n| Invalid app token prefix | Second token does not start with `xapp-` | Explain where to find the App-Level Token in Socket Mode settings |\n| Permission denied | Cannot write to `~\u002F.claude\u002Fchannels\u002Fslack\u002F` | Check directory permissions and create parent dirs if needed |\n\n## Examples\n\n**Standard configuration:**\n```\n\u002Fslack-channel:configure xoxb-1234567890-abcdef xapp-1-ABCDEF-ghijkl\n→ Slack channel configured.\n```\n\n**Missing token error:**\n```\n\u002Fslack-channel:configure xoxb-1234567890\n→ Error: Two tokens required.\n  - Bot token (starts with xoxb-) from OAuth & Permissions\n  - App token (starts with xapp-) from Socket Mode settings\n```\n\n## Resources\n\n- [Slack API: Creating an app](https:\u002F\u002Fapi.slack.com\u002Fstart\u002Fquickstart) — app setup walkthrough\n- [Slack Socket Mode](https:\u002F\u002Fapi.slack.com\u002Fapis\u002Fsocket-mode) — how to enable and get app-level tokens\n- Access control: `\u002Fslack-channel:access` — configure who can message your session\n\n","# \u002Fslack-channel:configure\n\n## Overview\n\nConfigure the Slack channel MCP plugin by providing your Slack bot token and app-level token. Writes credentials to a secure `.env` file with owner-only permissions.\n\n## Prerequisites\n\n- A Slack app created at [api.slack.com\u002Fapps](https:\u002F\u002Fapi.slack.com\u002Fapps) with Socket Mode enabled\n- A Bot User OAuth Token (`xoxb-...`) from OAuth & Permissions\n- An App-Level Token (`xapp-...`) from Socket Mode settings\n- Write access to `~\u002F.claude\u002Fchannels\u002Fslack\u002F`\n\n## Usage\n\n```\n\u002Fslack-channel:configure \u003Cxoxb-bot-token> \u003Cxapp-app-token>\n```\n\n## Instructions\n\n1. Parse the two arguments from `$ARGUMENTS`:\n   - First token must start with `xoxb-` (Bot User OAuth Token)\n   - Second token must start with `xapp-` (App-Level Token)\n\n2. If either token is missing or has the wrong prefix, show this error and stop:\n   ```\n   Error: Two tokens required.\n     - Bot token (starts with xoxb-) from OAuth & Permissions\n     - App token (starts with xapp-) from Socket Mode settings\n\n   Usage: \u002Fslack-channel:configure xoxb-... xapp-...\n   ```\n\n3. Create the state directory if it doesn't exist:\n   ```\n   ~\u002F.claude\u002Fchannels\u002Fslack\u002F\n   ```\n\n4. Write the `.env` file at `~\u002F.claude\u002Fchannels\u002Fslack\u002F.env`:\n   ```\n   SLACK_BOT_TOKEN=\u003Cbot-token>\n   SLACK_APP_TOKEN=\u003Capp-token>\n   ```\n\n5. Set file permissions to owner-only:\n   ```bash\n   chmod 600 ~\u002F.claude\u002Fchannels\u002Fslack\u002F.env\n   ```\n\n6. Confirm success:\n   ```\n   Slack channel configured.\n\n   Start Claude with the Slack channel:\n     claude --channels plugin:slack-channel@claude-code-plugins\n\n   Or for development:\n     claude --dangerously-load-development-channels server:slack\n   ```\n\n## Security\n\n- Never echo the tokens back in the confirmation message\n- Never log tokens to stdout or any file other than `.env`\n- Always set 0o600 permissions on the `.env` file\n\n## Output\n\nOn success, displays:\n```\nSlack channel configured.\n\nStart Claude with the Slack channel:\n  claude --channels plugin:slack-channel@claude-code-plugins\n```\n\nOn validation failure, displays the error with correct usage syntax.\n\n## Error Handling\n\n| Error | Cause | Resolution |\n|-------|-------|------------|\n| Missing token argument | Fewer than 2 arguments provided | Show usage with required token prefixes |\n| Invalid bot token prefix | First token does not start with `xoxb-` | Explain where to find the Bot User OAuth Token |\n| Invalid app token prefix | Second token does not start with `xapp-` | Explain where to find the App-Level Token in Socket Mode settings |\n| Permission denied | Cannot write to `~\u002F.claude\u002Fchannels\u002Fslack\u002F` | Check directory permissions and create parent dirs if needed |\n\n## Examples\n\n**Standard configuration:**\n```\n\u002Fslack-channel:configure xoxb-1234567890-abcdef xapp-1-ABCDEF-ghijkl\n→ Slack channel configured.\n```\n\n**Missing token error:**\n```\n\u002Fslack-channel:configure xoxb-1234567890\n→ Error: Two tokens required.\n  - Bot token (starts with xoxb-) from OAuth & Permissions\n  - App token (starts with xapp-) from Socket Mode settings\n```\n\n## Resources\n\n- [Slack API: Creating an app](https:\u002F\u002Fapi.slack.com\u002Fstart\u002Fquickstart) — app setup walkthrough\n- [Slack Socket Mode](https:\u002F\u002Fapi.slack.com\u002Fapis\u002Fsocket-mode) — how to enable and get app-level tokens\n- Access control: `\u002Fslack-channel:access` — configure who can message your session\n\n",{"name":5,"tags":45,"author":47,"license":15,"version":48,"description":7,"allowed-tools":49,"argument-hint":50,"user-invocable":51,"compatible-with":35},[46,5],"mcp","Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Read, Write, Bash(chmod:*)","\u003Cbot-token> \u003Capp-token>",true,"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fconfigure",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":51},[63,66,69],{"tool":64,"command":65},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill configure",{"tool":67,"command":68},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill configure",{"tool":70,"command":71},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill configure","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fconfigure\u002FSKILL.md",[],[75,85,94,103,109,116],{"skillNo":76,"name":77,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":81,"publishedAt":40},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[80],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[82,83,84],"model","model hierarchy","model hierarchy skill",{"skillNo":86,"name":87,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":91,"publishedAt":40},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[90],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[27,92,93],"zoom","zoom mcp",{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":40},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[100,101,102,92],"sdk","zoom apps sdk","apps",{"skillNo":104,"name":105,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":40},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[105],{"skillNo":110,"name":111,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":115,"publishedAt":40},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[114],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[111],{"skillNo":117,"name":118,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"publishedAt":40},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[118]]