dsh-telegram-bot
No description
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 25, 2026
- Updated
- Aug 25, 2026
Introduction
@blue/dsh-telegram-bot
A minimal single-purpose DeepSeek Harness (dsh) plugin: connect a Telegram bot to your dsh agent via long polling — no public endpoint needed.
Inspired by dsh-im-hub, but reduced to Telegram only: one adapter, no web settings card, no HTTP webhook surface.
- One agent per chat (
telegram:<chatId>), multi-turn context retained. - Agent-preset mounting: set
agent.presetand the bot's sessions mount that preset, getting the same tools (bash, fs, ssh, ...) as a Web GUI session. - Whitelist access control (
allowedUserIds). - Slack-style commands:
/help/reset/status/model. - Long replies split at Telegram's 4096-char limit.
- Idle chats disposed after
agent.idleTimeoutMs.
Install
dsh plugin --profile web add @blue/dsh-telegram-bot
The row is disabled by default. Enable it from the profile's cordis.patch.yml:
- id: dsh-telegram-bot
disabled: false
config:
telegram:
token: '123456:ABC-DEF...' # from @BotFather
allowedUserIds: [6354114195] # your numeric Telegram user id
agent:
preset: standard # mount the standard preset for full tools
Then restart the profile (dsh web).
Configuration
| Key | Default | Description |
|---|---|---|
enabled | true | Master switch. |
telegram.token | '' | Bot token from @BotFather. |
telegram.allowedUserIds | [] | Numeric user ids allowed to talk to the bot; empty = everyone. Set it in production. |
telegram.timeoutSeconds | 50 | getUpdates long-poll timeout. |
telegram.pollIntervalMs | 500 | Gap after a poll timeout/error. |
agent.cwd | '' | Working directory for agent sessions (defaults to dsh's cwd). |
agent.provider / agent.model | '' | Override model; empty = deployment default. |
agent.preset | '' | Agent preset id to mount for bot sessions ('' = deployment default). |
agent.maxMessageLength | 4000 | Max chars per outbound message. |
agent.idleTimeoutMs | 1800000 | Idle time before a chat's agent is disposed (0 = never). |
agent.instructionPrefix | '' | Prefix prepended to every user message. |
Commands
| Command | Effect |
|---|---|
/help | Show command help. |
/reset | Clear this chat's context (fresh agent). |
/status | Show active chats / agents. |
/model | Show the current model selection. |
Security
- Force a whitelist. An empty
allowedUserIdsmeans anyone with the token can drive your agent — which can execute tools on the host. - The token lives in the profile's
cordis.patch.yml; keep that file private (or reference an environment variable via!!js process.env.TG_BOT_TOKEN).
License
MIT