Skip to content

dsh-messenger-gateway

Verified

@goodandready/dsh-messenger-gateway Β· v0.2.0 Β· MIT Β· Web UI

Telegram messenger bridge for DeepSeek Harness: sessions, steer, homes, inline asks, notify bridge, and optional TTS voice notes.

Install

dsh plugin add @goodandready/dsh-messenger-gateway

Confirm the layer applied with dsh --profile default --dump-config β€” see the install guide.

Source

Tags

Readme

@goodandready/dsh-messenger-gateway

Telegram messenger bridge for DeepSeek Harness.

Talk to your Harness agent from Telegram: text, voice, photos, documents, inline buttons, named homes, and optional spoken replies.

Features

  • Long-poll or webhook Telegram bot
  • Allowlist + pairing codes
  • Per-user or per-chat sessions (sessionScope)
  • Forum topics as separate sessions
  • Steer: follow-up messages while the agent is busy (instead of aborting)
  • /stop, /new, /model, /status, /voice, /sethome, /home
  • Agent tool messenger_ask (inline keyboard answers return to the agent)
  • Named homes for outbound notify / messenger.send
  • Optional notify bridge: web session events β†’ Telegram home (excludes messenger sessions)
  • Inbound voice β†’ STT (dsh-voice), photos β†’ vision (dsh-vision-bridge)
  • Optional TTS replies (dsh-tts); mp3 is converted to OGG/Opus via ffmpeg for Telegram voice notes

Discord is listed in settings as a placeholder only β€” the Discord adapter is not implemented yet.

Install

dsh plugin --profile web add @goodandready/dsh-messenger-gateway

Then open Settings β†’ Plugins β†’ Messenger gateway:

  1. Enable Telegram
  2. Paste the BotFather token (write-only; leave blank to keep the current token)
  3. Set allowed Telegram user IDs (or use pairing)

Optional companion plugins (same profile)

Plugin Role
@goodandready/dsh-voice Transcribe inbound voice messages
@goodandready/dsh-tts Speak agent replies
@goodandready/dsh-vision-bridge Describe inbound photos

They are not npm dependencies of this package β€” install them separately if you want those features.

Voice notes

Spoken replies use Telegram sendVoice. If TTS returns MP3 (or other non-Opus audio), the gateway runs ffmpeg (libopus) to produce OGG. If ffmpeg is missing or conversion fails, the audio is sent as a regular audio file instead of a voice note.

Commands (Telegram)

Command Description
/start /help Help
/whoami Your Telegram user id
/new New agent session
/stop Abort the current turn
/model /status Model / gateway status
/voice on|off Per-user spoken replies
/sethome [name] Bind current chat/topic as a named home
/home List homes

Agent tools & HTTP

  • Tool: messenger_ask β€” ask the user with inline buttons; choice is fed back into the turn
  • HTTP (when enabled): /messenger/send, /messenger/ask, /messenger/progress
  • Cordis service: ctx.messenger for other plugins

Configuration notes

  • sessionScope: user (default) or chat β€” how group chats isolate sessions
  • voiceMode: mirror / always / off β€” when to speak replies (also /voice)
  • tts.enabled / tts.maxChars β€” TTS gate and length cap
  • notifyBridge β€” forward non-messenger web session events to a home
  • Bot token is a DSH secret field β€” never commit it

Requirements

  • DeepSeek Harness web (or compatible) profile
  • Node.js matching your Harness install
  • For voice notes from non-Opus TTS: ffmpeg on the host PATH

License

MIT