Run, configure, monitor, and automate a Discord bot from a native macOS app.
SwiftBot is a native macOS app for running and managing a Discord bot without living in config files or terminal sessions. Built with Swift and SwiftUI, it provides a single dashboard for bot setup, automation, commands, diagnostics, AI providers, update monitoring, and SwiftMesh failover.
It can run as a single local bot or as part of a SwiftMesh setup where a primary node handles Discord output and standby nodes can take over.
- Native Discord bot runtime with token validation and invite link generation
- Slash commands, command logging, and channel configuration
- Automation rules for voice events, messages, and member joins
- Patchy update notifications (AMD, NVIDIA, Intel, Steam)
- WikiBridge-backed knowledge commands
- AI reply flows via Apple Intelligence, Ollama, or OpenAI
- Diagnostics for gateway, REST, latency, permissions, intents, rate limits
- SwiftMesh primary/standby failover
- Keychain-stored tokens, cached Discord metadata, Sparkle auto-updates
- ➡️ Install Guide — download, install, requirements, updates.
- ➡️ Bot Setup Guide — Discord application, token, intents, OAuth, troubleshooting.
- ➡️ Web UI Setup Guide — local-only vs public access (Cloudflare Tunnel, reverse proxy).
More walkthroughs live in docs/help/.
Dashboard
- Overview — bot status, recent activity, and high-level runtime state
Workflows
- Commands — slash command controls, channel routing, and moderation command toggles
- Automations — rule builder for voice, message, and member-join events
- Moderation — server moderation rules and enforcement
Services
- Patchy — driver, platform, and Steam update monitoring
- Sweep — channel cleanup and message housekeeping
- WikiBridge — external knowledge sources and dynamic command setup
- Recordings — captured media from the last 24h
System
- AI Bots — Apple Intelligence, Ollama, and OpenAI configuration
- Analytics — usage metrics and engagement insights
- Activity — runtime logs and event history
- SwiftMesh — primary/standby coordination, failover, and cluster diagnostics
App data lives in ~/Library/Application Support/SwiftBot/ (settings.json, rules.json, discord-cache.json, mesh-cursors.json). Bot tokens are stored in macOS Keychain.
SwiftBotApp/ macOS app, SwiftUI interface, Discord runtime, diagnostics, SwiftMesh
Sources/UpdateEngine/ reusable update-checking engine used by Patchy
Tools/SparklePublisher/ Sparkle publishing helper
Tests/SwiftBotTests/ application test suite
docs/ GitHub Pages site, release notes, Sparkle appcasts
notes/ internal planning, design, and review docs
Caution
SwiftBot depends on Discord APIs, gateway behavior, and bot permissions, which can change over time. Keep the app updated and review Discord's developer policies.
Warning
Bot permissions and privileged gateway intents must be configured correctly. Missing intents or channel permissions can prevent commands, member events, message triggers, or notifications from working.
Note
SwiftBot is under active development — features, UI, and configuration may change between releases.
Please raise a GitHub issue if something breaks. Include the SwiftBot version, macOS version, affected area, and any relevant diagnostics or log output.
MIT