Wicebot is a feature-rich, Java-powered Slack assistant that automates everyday workflows, answers questions with GPT-4o, and keeps your workspace humming.
- Features
- Screenshots
- How It Works (Architecture)
- Quick Start
- Project Structure
- Command Reference
- Development Workflow
- Roadmap
- Contributing
- License & Acknowledgements
| Category | Description |
|---|---|
| 🤖 AI Assistant | Natural-language Q&A, summarization, sentiment analysis (OpenAI GPT-4o) |
| 💬 Slash Commands | /wice help, /wice sentiment, /wice jira, /wice weather, /wice standup |
| 🗓️ Schedulers | Cron-style reminders & daily stand-up digest |
| 📌 Interactive Blocks | Modals & dialogs (e.g. create Jira ticket) |
| 🔌 Plug-in System | Add new commands via Spring @Component without touching core |
| 📡 Event Listeners | Reacts to message_added, reaction_added, member_joined events |
| 🔭 Observability | Prometheus metrics + structured JSON logs |
| 🛡️ Security | Slack signing secret validation & OAuth 2.0 token rotation |
Prerequisites: Java 17, Maven, a Slack workspace, and an OpenAI API key.
git clone https://github.com/yashjani/slackbot.git && cd slackbot
cp .env.sample .env # fill in secrets
./mvnw spring-boot:runDocker compose
docker compose up -dwill spin up Wicebot + Postgres + Redis.
slackbot/
├── docs/ # Images / GIFs / extra docs
├── src/main/java/
│ ├── bot/ # Core Bolt app & config
│ ├── commands/ # Slash command handlers
│ ├── events/ # Event listeners
│ ├── schedulers/ # Quartz jobs
│ └── plugins/ # Drop-in feature modules
├── src/test/java/ # Unit & integration tests
├── .github/workflows/ # CI pipeline
└── docker-compose.yml
| Command | Purpose | Example |
|---|---|---|
/wice help |
Show help & feature list | — |
/wice sentiment <text> |
Detect sentiment via GPT-4o | /wice sentiment good job |
/wice jira <title>; <desc> |
Open Jira modal to file ticket | /wice jira Login bug; Login fails on 2FA |
/wice weather <city> |
Current weather via Open-Meteo | /wice weather Vancouver |
/wice standup |
Start daily stand-up thread | — |
Tip: Enable shortcuts to surface commands in message composer.
GitHub Actions → mvn test → Build JAR → Containerize → Push to ghcr.io/yashjani/slackbot.
gantt
dateFormat YYYY-MM-DD
section CI/CD Pipeline
Checkout Code :done, 2025-05-10, 5m
Unit Tests :done, after Checkout Code, 3m
Build JAR :done, after Unit Tests, 4m
Docker Build :done, after Build JAR, 4m
Deploy to Staging :active, after Docker Build, 5m
- AI Thread Summaries – auto-summarize active channels every 6 h
- GitHub Releases Feed – notify on new tags
- Voice Transcription – convert voice messages to text (Whisper-cpp)
- Custom Helm Chart – push to Artifact Hub
Guidelines
- Fork → create feature branch
- Write tests (
@SpringBootTest+SlackAppTest) - Run
./mvnw spotless:apply - Submit PR – GitHub Actions must pass 🟢
Feel free to open issues & feature requests. We love 🥑 first-timers!
Licensed under the MIT License – see LICENSE.
Built with ❤ by @yashjani & community.
Special thanks to Slack Bolt team, Spring Boot maintainers, and OpenAI.


