Skip to content

Releases: parvalabs/local-slack

v0.1.6

Choose a tag to compare

@vgonzalo vgonzalo released this 31 Jul 22:44

Full Changelog: v0.1.5...v0.1.6

v0.1.5

Choose a tag to compare

@vgonzalo vgonzalo released this 29 Jul 01:26

Full Changelog: v0.1.4...v0.1.5

v0.1.4

Choose a tag to compare

@vgonzalo vgonzalo released this 28 Jul 20:40

Full Changelog: v0.1.3...v0.1.4

v0.1.3

Choose a tag to compare

@vgonzalo vgonzalo released this 28 Jul 19:47

Full Changelog: v0.1.2...v0.1.3

v0.1.2

Choose a tag to compare

@vgonzalo vgonzalo released this 28 Jul 19:19

Full Changelog: v0.1.1...v0.1.2

v0.1.1

Choose a tag to compare

@vgonzalo vgonzalo released this 14 Jul 06:07

Full Changelog: v0.1.0...v0.1.1

v0.1.0

Choose a tag to compare

@vgonzalo vgonzalo released this 08 Jul 19:00

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 APIauth.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, including response_action errors/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 --open

Downloads a prebuilt binary for your platform on first run — no Bun required at runtime.

Homebrew (macOS/Linux):

brew tap parvalabs/tools
brew install local-slack

Binaries — 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 --open

macOS note: these binaries aren't notarized (that needs a paid Apple Developer account). A curl download never gets flagged, so the snippet above just works. If you download via the browser instead, Gatekeeper will refuse the extra com.apple.quarantine tag it adds — clear it with xattr -d com.apple.quarantine local-slack before running.

See the README for configuration, the control API, and pointing your own Bolt app at it.