Overview
Junior is a Slack bot for teams that want to use company tools from Slack threads. A Junior app receives Slack events and runs turns with its tools and skills. It posts final replies to the original thread.
Main parts
Section titled “Main parts”Junior apps are small Hono apps that use Nitro to build and deploy. createApp() owns the public routes. juniorNitro() adds app files and declared plugin packages to the deployed app.
| Layer | What it controls |
|---|---|
| Slack app | Events, interactivity, app home, slash commands, and bot token permissions. |
| Junior app | Runtime routes, queue-backed turns, state, and reply delivery. |
| App files | SOUL.md, WORLD.md, DESCRIPTION.md, local skills, and local plugins. |
| Plugins | Provider manifests, credentials, MCP surfaces, runtime dependencies, and bundled skills. |
| Operators | Env vars, Vercel deployment, observability, recovery, and security posture. |
The recommended first app path is junior init, then Slack setup, then Vercel deploy.
Reading Path
Section titled “Reading Path”| Goal | Start with |
|---|---|
| Work with Junior in Slack | Using Junior |
| Create a new app | Quickstart |
| Configure Slack events and permissions | Slack App Setup |
| Deploy the scaffolded app | Deploy to Vercel |
| Add Junior to an existing host | Existing App |
| Add provider integrations | Plugins |
| Debug a live deployment | Verify & Troubleshoot |
What to Configure First
Section titled “What to Configure First”Set up only the core app before you add provider plugins. This limits early failures to the health route, Slack webhook, queue callback, and one thread reply.
After that baseline works, add one plugin at a time. Each plugin page lists its env vars, auth model, verification request, and failure modes.
Next step
Section titled “Next step”Use Quickstart to create the app, then continue to Slack App Setup.