Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add Andrejones92/canifi-life-os --skill "slack"
Install specific skill from multi-skill repository
# Description
Enables Claude to manage Slack workspaces, send messages, manage channels, and automate team communication
# SKILL.md
name: slack
description: Enables Claude to manage Slack workspaces, send messages, manage channels, and automate team communication
version: 1.0.0
author: Canifi
category: communication
Slack Skill
Overview
Automates Slack workspace interactions including sending messages, managing channels, searching conversations, setting status, and handling notifications through browser automation.
Quick Install
curl -sSL https://canifi.com/skills/slack/install.sh | bash
Or manually:
cp -r skills/slack ~/.canifi/skills/
Setup
Configure via canifi-env:
# First, ensure canifi-env is installed:
# curl -sSL https://canifi.com/install.sh | bash
canifi-env set SLACK_EMAIL "[email protected]"
canifi-env set SLACK_WORKSPACE_URL "your-workspace.slack.com"
Privacy & Authentication
Your credentials, your choice. Canifi LifeOS respects your privacy.
Option 1: Manual Browser Login (Recommended)
If you prefer not to share credentials with Claude Code:
1. Complete the Browser Automation Setup using CDP mode
2. Login to the service manually in the Playwright-controlled Chrome window
3. Claude will use your authenticated session without ever seeing your password
Option 2: Environment Variables
If you're comfortable sharing credentials, you can store them locally:
canifi-env set SERVICE_EMAIL "your-email"
canifi-env set SERVICE_PASSWORD "your-password"
Note: Credentials stored in canifi-env are only accessible locally on your machine and are never transmitted.
Capabilities
- Send direct messages and channel messages
- Create, archive, and manage channels
- Search messages and files across workspaces
- Set user status and availability
- Manage notifications and Do Not Disturb settings
- Upload and share files in conversations
- React to messages with emojis
- Create and manage Slack Connect channels
Usage Examples
Example 1: Send a Direct Message
User: "Send a Slack message to John saying the meeting is moved to 3pm"
Claude: I'll send that message to John on Slack.
- Navigate to Slack workspace via Playwright
- Open direct message with John
- Type and send: "Hey, the meeting is moved to 3pm"
- Confirm message sent successfully
Example 2: Post to a Channel
User: "Post in #engineering that the deployment is complete"
Claude: I'll post the update to the engineering channel.
- Navigate to #engineering channel
- Compose message: "Deployment is complete"
- Send message to channel
- Confirm delivery
Example 3: Search Conversations
User: "Find all messages about the Q4 budget in Slack"
Claude: I'll search Slack for Q4 budget discussions.
- Use Slack search with query "Q4 budget"
- Collect matching messages and threads
- Present summary of findings with links
Example 4: Set Status
User: "Set my Slack status to 'In a meeting' for 1 hour"
Claude: I'll update your Slack status.
- Navigate to profile settings
- Set status emoji and text: "In a meeting"
- Set expiration to 1 hour
- Confirm status updated
Authentication Flow
- Navigate to workspace URL via Playwright MCP
- Enter email from canifi-env
- Handle SSO or password authentication
- Complete 2FA if prompted (notify user via iMessage)
- Verify workspace access
- Maintain session cookies for subsequent requests
Error Handling
- Login Failed: Retry 3x with fresh browser context, then iMessage notification
- Session Expired: Re-authenticate automatically using stored credentials
- Rate Limited: Implement exponential backoff (1s, 2s, 4s, 8s)
- 2FA Required: Send iMessage notification for user to provide code
- Workspace Not Found: Verify workspace URL and notify user
- Channel Not Found: Search for similar channel names and suggest alternatives
- User Not Found: Search workspace directory and suggest matches
Self-Improvement Instructions
When encountering new Slack UI patterns or features:
1. Document the new element selectors
2. Update capability list if new features discovered
3. Log successful automation patterns for future reference
4. Suggest SKILL.md updates via commit to working-branch
Notes
- Slack frequently updates UI; selectors may need adjustment
- Some enterprise workspaces have additional SSO requirements
- File uploads may be size-limited based on workspace plan
- Slack Connect channels require additional permissions
- Message formatting supports Slack markdown syntax
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.