Back to home@viethoang35

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 localtelegram-bridge/data/, workspace/, and ~/.dsh/ are not pushed to GitHub.

Requirements

  • Node.js 22.19+
  • DEEPSEEK_API_KEY in 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

CommandEffect
/note, /notes, /rememberPersonal notes and short memory (local files)
/search, /report, /research, /slideSkills — see /skills
/task, /tasks, /cancel-taskBackground tasks
/exportZip local data and send as a document
/newchat, /cancel, /statusSession 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

DataPath
Telegram chat historytelegram-bridge/data/sessions.json
Short memorytelegram-bridge/data/memory.md
Notesworkspace/notes/
Reportsworkspace/reports/
Deep researchworkspace/research/<date>-<topic>/
Slidesworkspace/slides/*.html
Inbox uploadsworkspace/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.