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.


