v0.1.0
First release of local-slack — a local, throwaway Slack for developing and testing Slack apps/bots. Your bot connects to it exactly as it would to real Slack (Web API, Socket Mode, Events API); a Slack-like web UI lets a human "act as" a workspace user and watch the interaction in real time, plus a /_control HTTP API for driving it headlessly from automated tests.
What's included
- Web API —
auth.test,chat.*,conversations.*,users.*,views.*,reactions.*,apps.connections.open,team.info,bots.info - Socket Mode and Events API (HTTP) delivery, selectable per app, with real signature verification for the HTTP path
- Interactivity — Block Kit rendering, buttons, modals (
views.open/update/push+view_submission, includingresponse_actionerrors/update/push/clear) - Slash commands and the App Home tab
- Threads, reactions (bot and human-driven), message edit/delete
- Multiple apps in one workspace — channel events fan out to every member app; interactive components and slash commands route to the owning app
- @mention and #channel autocomplete in the composer — friendly display while typing, real
<@ID>/<#ID|name>syntax sent to the bot; channel refs are clickable and jump to that channel - Inspector — a live view of raw traffic to/from the bot
- Declarative YAML/JSON workspace config, a single-file compiled binary, and example bots in both JS (Bolt) and Python (
slack_bolt)
Install
npx (no install, always the latest version):
npx local-slack --config config.yaml --openDownloads a prebuilt binary for your platform on first run — no Bun required at runtime.
Homebrew (macOS/Linux):
brew tap parvalabs/tools
brew install local-slackBinaries — standalone executables (Bun embedded, web UI included, ad-hoc signed on macOS — no Bun/Node needed on the target machine):
| Platform | File |
|---|---|
| macOS, Apple Silicon | local-slack-darwin-arm64.tar.gz |
| macOS, Intel | local-slack-darwin-x64.tar.gz |
| Linux, x64 | local-slack-linux-x64.tar.gz |
| Linux, ARM64 | local-slack-linux-arm64.tar.gz |
| Windows, x64 | local-slack-windows-x64.zip |
curl -L -o local-slack.tar.gz https://github.com/parvalabs/local-slack/releases/download/v0.1.0/local-slack-darwin-arm64.tar.gz
tar xzf local-slack.tar.gz
./local-slack --config config.yaml --openmacOS note: these binaries aren't notarized (that needs a paid Apple Developer account). A
curldownload never gets flagged, so the snippet above just works. If you download via the browser instead, Gatekeeper will refuse the extracom.apple.quarantinetag it adds — clear it withxattr -d com.apple.quarantine local-slackbefore running.
See the README for configuration, the control API, and pointing your own Bolt app at it.