Skip to content

Overview

Junior is a Slack bot runtime for teams that want company tools available from Slack threads. A Junior app receives Slack events, runs agent turns with configured tools and skills, and posts finalized replies back to the originating thread.

Junior apps are small Hono apps built and deployed with Nitro. createApp() owns the public runtime routes, while juniorNitro() makes app files and declared plugin packages available in the deployment bundle.

LayerWhat it controls
Slack appEvents, interactivity, app home, slash commands, and bot token permissions.
Junior appRuntime routes, queue-backed turns, state, and reply delivery.
App filesSOUL.md, WORLD.md, DESCRIPTION.md, local skills, and local plugins.
PluginsProvider manifests, credentials, MCP surfaces, runtime dependencies, and bundled skills.
OperatorsEnv vars, Vercel deployment, observability, recovery, and security posture.

The recommended first app path is junior init, then Slack setup, then Vercel deploy.

GoalStart with
Create a new appQuickstart
Configure Slack events and permissionsSlack App Setup
Deploy the scaffolded appDeploy to Vercel
Add Junior to an existing hostExisting App
Add provider integrationsPlugins
Debug a live deploymentVerify & Troubleshoot

Configure only the core runtime before adding provider plugins. That keeps early failures narrow: 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.

Use Quickstart to create the app, then continue to Slack App Setup.