{"id":29551276,"url":"https://github.com/jubalm/claude-code-discord","last_synced_at":"2026-05-03T23:36:18.658Z","repository":{"id":303328783,"uuid":"1014602420","full_name":"jubalm/claude-code-discord","owner":"jubalm","description":"Stay informed about your Claude Code sessions with real-time Discord notifications - know what Claude is working on even when you're away from your computer","archived":false,"fork":false,"pushed_at":"2025-07-08T18:30:28.000Z","size":97,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-18T06:31:07.802Z","etag":null,"topics":["agentic-ai","claude-code","claude-hooks","discord"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jubalm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-06T03:37:37.000Z","updated_at":"2025-07-08T18:30:29.000Z","dependencies_parsed_at":"2025-07-18T05:29:08.351Z","dependency_job_id":"b60c30b1-68f3-4779-8962-a74329f69982","html_url":"https://github.com/jubalm/claude-code-discord","commit_stats":null,"previous_names":["jubalm/claude-code-discord"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/jubalm/claude-code-discord","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubalm%2Fclaude-code-discord","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubalm%2Fclaude-code-discord/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubalm%2Fclaude-code-discord/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubalm%2Fclaude-code-discord/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jubalm","download_url":"https://codeload.github.com/jubalm/claude-code-discord/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jubalm%2Fclaude-code-discord/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32589262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"ssl_error","status_checked_at":"2026-05-03T22:09:10.534Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-ai","claude-code","claude-hooks","discord"],"created_at":"2025-07-18T04:02:26.957Z","updated_at":"2026-05-03T23:36:18.652Z","avatar_url":"https://github.com/jubalm.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Claude Code Discord Notification\n\n**Local-first Discord notifications for Claude Code sessions - stay informed about your coding progress**\n\nGet real-time Discord notifications when Claude completes tasks, needs input, or makes progress on your projects. **Simple local installation** by default, with optional global setup for advanced multi-project workflows.\n\n## ✨ Features\n\n- 🏠 **Local-first architecture** - Self-contained installation per project\n- 🌐 **Global option available** - Multi-project setup for advanced users\n- 🎯 **Project-scoped notifications** - Each project controls its own Discord integration\n- 🔔 **Smart notification types** - Input needed, work in progress, session complete\n- 🧵 **Thread support** - Organize notifications by session with Discord threads\n- ⚡ **Easy control** - Simple slash commands for setup and management\n- 🛡️ **Non-destructive setup** - Preserves existing Claude Code configuration\n- 🔧 **Configurable webhooks** - No hardcoded URLs, bring your own webhook\n- 🐍 **Python-enhanced commands** - Unified architecture with consistent error handling (v0.4.0)\n\n## 🚀 Quick Install\n\n### 🏠 Local Installation (Recommended)\nPerfect for single projects - everything installs to your current project with automatic setup:\n\n```bash\ncd your-project\ncurl -fsSL https://raw.githubusercontent.com/jubalm/claude-code-discord/main/install.sh | bash\n```\n\n**New in v0.4.0**: Python-enhanced slash commands with unified architecture, improved error handling, and consistent user experience!\n\n**Also in v0.3.2**: Automatic hook registration! Discord hooks are now automatically registered in `.claude/settings.json` during local installation.\n\n### 🌐 Global Installation (Advanced)\nFor managing multiple projects with shared Discord integration:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/jubalm/claude-code-discord/main/install.sh | bash -s -- --global\n```\n\n### 🔧 Manual Installation\n```bash\ngit clone https://github.com/jubalm/claude-code-discord.git\ncd claude-code-discord\nchmod +x install.sh\n./install.sh              # Local installation\n./install.sh --global     # Global installation\n```\n\n## 📋 Requirements\n\n- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) installed (global installation only)\n- Python 3 (universally available)\n- `curl` or `wget` for installation\n- Discord webhook URL\n\n## 🎯 Quick Start\n\n### 1. Get Your Discord Webhook URL\n\n1. Go to your Discord server settings\n2. Navigate to **Integrations** → **Webhooks**\n3. Click **New Webhook** or use an existing one\n4. Copy the webhook URL\n\n### 2. Setup and Enable\n\nAfter installation, configure Discord integration:\n\n```bash\n# Setup Discord integration\n/user:discord:setup https://discord.com/api/webhooks/YOUR_WEBHOOK_URL\n\n# Enable notifications\n/user:discord:start\n\n# Check installation type\n/user:discord:status\n```\n\n### 3. Stay Informed\n\nYou'll automatically receive Discord notifications when:\n- 🔔 **Claude needs input** (blue notifications)\n- ⚡ **Claude makes progress** (gold notifications after tool usage)\n- ✅ **Claude completes session** (green notifications)\n\n## 📱 Notification Types\n\n| Type | Color | Trigger | Description |\n|------|-------|---------|-------------|\n| 🔔 Input Needed | Blue | Claude awaits user input | Session paused, needs attention |\n| ⚡ Work in Progress | Gold | After tool usage | File edits, commands, progress updates |\n| ✅ Session Complete | Green | Claude finishes responding | Task completed successfully |\n\n## 🎮 Available Commands\n\n**Python-Enhanced Slash Commands** (v0.4.0) - Now with unified architecture, improved error handling, and consistent user experience:\n\n| Command | Description |\n|---------|-------------|\n| `/user:discord:setup WEBHOOK_URL [AUTH_TOKEN] [THREAD_ID]` | Setup Discord integration for project |\n| `/user:discord:start [THREAD_ID]` | Enable Discord notifications |\n| `/user:discord:stop` | Disable Discord notifications |\n| `/user:discord:status` | Show current integration status |\n| `/user:discord:remove` | Remove Discord integration from project |\n\n### ✨ Enhanced Features (v0.4.0)\n- **Comprehensive error handling** - User-friendly messages for all edge cases\n- **Consistent formatting** - Uniform output across all commands\n- **Better validation** - Robust webhook URL and argument validation\n- **Installation detection** - Automatic local vs global installation detection\n- **Safe configuration** - Backup creation and selective updates\n\n## 🛠️ Advanced Usage\n\n### Multiple Projects\n\n**Local Installation**: Each project is completely independent:\n```bash\n# Project A - local installation\ncd /path/to/project-a\ncurl -fsSL .../install.sh | bash\n/user:discord:setup https://discord.com/api/webhooks/DEV_WEBHOOK\n\n# Project B - separate local installation\ncd /path/to/project-b  \ncurl -fsSL .../install.sh | bash\n/user:discord:setup https://discord.com/api/webhooks/TEST_WEBHOOK TOKEN THREAD_ID\n```\n\n**Global Installation**: Shared setup across projects:\n```bash\n# One-time global install\ncurl -fsSL .../install.sh | bash -s -- --global\n\n# Then configure each project\ncd project-a \u0026\u0026 /user:discord:setup DEV_WEBHOOK\ncd project-b \u0026\u0026 /user:discord:setup TEST_WEBHOOK TOKEN THREAD_ID\n```\n\n### Discord Threads\n\nFor better organization, you can use Discord threads:\n\n```bash\n# Create a thread in Discord, copy its ID\n/user:discord:start 1234567890123456789\n\n# Or setup with thread from the beginning\n/user:discord:setup YOUR_WEBHOOK_URL YOUR_AUTH_TOKEN 1234567890123456789\n```\n\n### Team Collaboration\n\n**Local Installation (Recommended)**:\n```bash\n# Commit Discord integration for team sharing\ngit add .claude/hooks/ .claude/commands/ .claude/settings.json\ngit commit -m \"Add Discord notifications for team\"\n\n# .gitignore - exclude personal webhooks\necho \".claude/discord-state.json\" \u003e\u003e .gitignore\necho \".claude/settings.json.backup*\" \u003e\u003e .gitignore\n\n# Team members just need to configure their webhook\n/user:discord:setup https://discord.com/api/webhooks/THEIR_WEBHOOK\n/user:discord:start\n```\n\n**Global Installation**:\n```bash\n# Team lead sets up global installation\ncurl -fsSL .../install.sh | bash -s -- --global\n\n# Commit project hooks only\ngit add .claude/settings.json\ngit commit -m \"Add Discord hooks config\"\n\n# Each team member configures their webhook per project\n/user:discord:setup THEIR_WEBHOOK\n/user:discord:start\n```\n\n## 🔧 Troubleshooting\n\n### No Notifications Received\n\n1. Check if Discord integration is active:\n   ```bash\n   /user:discord:status\n   ```\n\n2. Verify configuration files exist:\n   ```bash\n   ls -la .claude/\n   # Should show: discord-state.json, settings.json\n   ```\n\n3. Test webhook manually:\n   ```bash\n   curl -X POST \"YOUR_WEBHOOK_URL\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"content\": \"Test notification\"}'\n   ```\n\n4. Check Claude Code logs:\n   ```bash\n   tail -f ~/.claude/discord-notifications.log\n   ```\n\n### Hook Scripts Not Working\n\n1. Check installation type and verify scripts:\n   ```bash\n   /user:discord:status  # Shows Local or Global installation\n   \n   # For local installation\n   ls -la .claude/hooks/*discord*.py\n   \n   # For global installation  \n   ls -la ~/.claude/hooks/*discord*.py\n   ```\n\n2. Test script manually:\n   ```bash\n   # Local\n   echo '{}' | .claude/hooks/stop-discord.py\n   \n   # Global\n   echo '{}' | ~/.claude/hooks/stop-discord.py\n   ```\n\n3. Fix permissions if needed:\n   ```bash\n   chmod +x .claude/hooks/*discord*.py      # Local\n   chmod +x ~/.claude/hooks/*discord*.py   # Global\n   ```\n\n### Commands Not Available\n\n1. Verify commands based on installation type:\n   ```bash\n   # Local\n   ls .claude/commands/discord/\n   \n   # Global\n   ls ~/.claude/commands/discord/\n   ```\n\n2. Restart Claude Code to reload commands\n\n3. Check installation type:\n   ```bash\n   /user:discord:status\n   ```\n\n## 🗑️ Uninstallation\n\n### Local Uninstall (Default)\nRemove Discord integration from current project:\n```bash\ncurl -fsSL https://raw.githubusercontent.com/jubalm/claude-code-discord/main/uninstall.sh | bash\n\n# Or use slash command\n/user:discord:remove\n```\n\n### Global Uninstall\nRemove global Discord integration (affects all projects):\n```bash\ncurl -fsSL https://raw.githubusercontent.com/jubalm/claude-code-discord/main/uninstall.sh | bash -s -- --global\n```\n\n### Manual Cleanup\n```bash\n# Local installation\nrm -rf .claude/hooks/*discord*.py .claude/commands/discord/\nrm -f .claude/discord-state.json\n\n# Global installation  \nrm -f ~/.claude/hooks/*discord*.py\nrm -rf ~/.claude/commands/discord\n```\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature-name`\n3. Make your changes\n4. Test thoroughly\n5. Submit a pull request\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## 🔗 Links\n\n- [Claude Code Documentation](https://docs.anthropic.com/en/docs/claude-code)\n- [Discord Webhooks Guide](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks)\n- [Project Documentation](docs/PROJECT-LEVEL-DISCORD-INTEGRATION.md)\n\n---\n\n**Happy coding with Discord notifications! 🚀**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjubalm%2Fclaude-code-discord","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjubalm%2Fclaude-code-discord","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjubalm%2Fclaude-code-discord/lists"}