Add Slack Voice Operator — LLM-summarised channels, @mention daemon, voice send - #365
Open
hassan1731996 wants to merge 4 commits into
Open
Add Slack Voice Operator — LLM-summarised channels, @mention daemon, voice send#365hassan1731996 wants to merge 4 commits into
hassan1731996 wants to merge 4 commits into
Conversation
Voice-first Slack companion with LLM-powered channel summaries, proactive @mention alerts via background daemon, natural name/channel resolution, and voice message sending with confirmation.
Contributor
🔀 Branch Merge CheckPR direction: ✅ Passed — |
Contributor
✅ Community PR Path Check — PassedAll changed files are inside the |
Contributor
✅ Ability Validation Passed |
Contributor
🔍 Lint Results🔧 Formatting fixes availableThis PR is from a fork, so fixes could not be pushed automatically. Download the git apply autofix.patch✅
|
- Replace get_api_keys("slack_bot_token") with get_slack_key() — platform OAuth
- Replace requests HTTP calls with slack_sdk WebClient method calls
- Use auth_test() to resolve user ID directly — removes display name setup question
- Catch SlackApiError instead of checking result.get("ok")
- Simplify setup flow and update README to reflect platform-linked auth
uzair401
requested changes
Aug 31, 2026
uzair401
left a comment
Contributor
There was a problem hiding this comment.
Please address these blockers before merging:
- get_slack_key() does not exist in the current SDK. Use the supported get_token("slack") API.
- Verify the get_single_key() response shape. The implementation may need to unwrap the stored value before reading the Slack configuration.
- Remove resume_normal_flow() from the background worker.
- Add pagination for Slack history, channels, and users.
- The “all channels” option currently monitors only the first 10 channels.
- Handle empty or malformed LLM responses safely.
Also, OpenHome already has an official Slack ability available in the Marketplace. Please review it, clarify the overlap, and link to it in the README.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
A voice-first Slack companion that goes beyond raw message reading with three differentiators:
Intents
SDK patterns applied
user_profile.md/user_summary.md) read first for user name; only asks if emptyEXIT_WORDS= standalone tokens only;EXIT_PHRASESfor multi-word exitscreate_keyfirst → fallbackupdate_keybackground_daemon_modeset beforeCapabilityWorkerresume_normal_flow()infinallyon foreground; at top ofwatch_loop()in daemonget_api_keys("slack_bot_token")— no hardcoded credentialsSetup required
User creates a Slack app, adds scopes (
channels:history,channels:read,groups:history,groups:read,im:history,im:read,chat:write,users:read), installs to workspace, and saves the bot token in OpenHome settings asslack_bot_token. First-voice-run setup resolves their Slack User ID by display name (fully voice-native, no copy-pasting IDs).Validation