dsh-chat-bridge
Chat bridge that connects Telegram (WhatsApp, Zalo, Viber, ... ) to DeepSeek Harness via its headless CLI
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 22, 2026
- Updated
- Aug 24, 2026
Introduction
dsh-chat-bridge
Self-hosted personal assistant on DeepSeek Harness: Telegram + optional Web UI, local notes/reports, search on request only.
The bot allowlists Telegram users, runs the agent in an isolated workspace/, and keeps chat history on disk. Headless mode boots dsh per message with a personal-assistant profile (no shell). SDK mode keeps a JSON-RPC runtime and resumes a real harness session.
Data stays local — telegram-bridge/data/, workspace/, and ~/.dsh/ are not pushed to GitHub.
Requirements
- Node.js 22.19+
DEEPSEEK_API_KEYin the repo-root.env- Telegram bot token from @BotFather
Quick start
./scripts/setup-dsh-profiles.sh # once: mount Cordis plugins into ~/.dsh
cd telegram-bridge
cp .env.example .env # TELEGRAM_BOT_TOKEN + TELEGRAM_ALLOWED_USER_IDS
pnpm install
pnpm test
pnpm start
Send /whoami, add your user id to TELEGRAM_ALLOWED_USER_IDS, restart.
Telegram commands
| Command | Effect |
|---|---|
/note, /notes, /remember | Personal notes and short memory (local files) |
/search, /report, /research, /slide | Skills — see /skills |
/task, /tasks, /cancel-task | Background tasks |
/export | Zip local data and send as a document |
/newchat, /cancel, /status | Session and turn control |
Send a text or PDF document to ingest into workspace/inbox/.
Web UI
./start.sh
Merge config/providers/openrouter-provider.yaml into ~/.dsh/settings.yaml for the model catalog.
Web search uses Tavily only when explicitly requested (tìm kiếm, /search, /report, …). Knowledge answers stay short; search/report replies cite sources.
Local data
| Data | Path |
|---|---|
| Telegram chat history | telegram-bridge/data/sessions.json |
| Short memory | telegram-bridge/data/memory.md |
| Notes | workspace/notes/ |
| Reports | workspace/reports/ |
| Deep research | workspace/research/<date>-<topic>/ |
| Slides | workspace/slides/*.html |
| Inbox uploads | workspace/inbox/ |
| Web UI sessions | ~/.dsh/sessions/ |
Daily briefing (optional)
cd telegram-bridge
TELEGRAM_BRIEFING_CHAT_ID=123456 node ../scripts/daily-briefing.mjs
Schedule with cron or macOS launchd (see telegram-bridge/deploy/).
Layout
telegram-bridge/ Grammy channel, notes, tasks, export
plugins/ Cordis: search-on-request, personal-notes, report-style, …
scripts/ setup-dsh-profiles.sh, daily-briefing.mjs
docs/ EXTENSION.md, SKILLS.md
workspace/ Agent cwd; notes, reports, inbox (gitignored)
SDK mode (optional)
Set DSH_MODE=sdk and DSH_SDK_LAUNCH in telegram-bridge/.env when you have @deepseek-ai/dsh-sdk-client and a JSON-RPC runtime. Gives persistent harness sessions per chat.
DeepSeek Harness is MIT-licensed by DeepSeek AI. This repository is MIT-licensed independently.
Extension guidelines: docs/EXTENSION.md.