voyager
Nagi-ovo
Enhancement suite for Gemini, AI Studio, Claude, ChatGPT & DeepSeek — plus a prompt manager for any website, DeepSeek Harness included. / 面向 Gemini、AI Studio、Claude、ChatGPT 与 DeepSeek 的增强套件;其中的提示词管理器可用于任意网站,如 DeepSeek Harness。
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:keepview/dsh-lark
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
English | 中文
A minimal Lark/Feishu gateway plugin for DeepSeek Harness: mention the bot in Feishu (or DM it) to drive the dsh agent on your machine, replies land back in the same conversation. One topic = one agent session.
Inspired by botmux — the pioneer that bridges Feishu/Lark to AI coding CLIs. dsh-lark borrows its "topic = session, mention = task" interaction and brings that experience to DeepSeek Harness as a native plugin.
Three design goals: pleasant to use, clean architecture, lightweight. Four source files, ~600 lines. No card pipelines, no pairing codes, no multi-project routing — just the essential "talk to your agent from Feishu" loop.
lark_deliver tool to send workspace files/images back to the chat (strictly contained to the working directory)/approve / /reject commands and the dsh Web panel also work — first answer wins)dsh plugin --profile web add "github:keepview/dsh-lark"
The build artifact is committed (lib/), so the plugin works right after install — no local build step.
On the Feishu Open Platform (or Lark Developer with brand: lark):
im:message, im:message:send_as_bot, im:resourceim.message.receive_v1Environment variables are the recommended path (profile config also works):
export DSH_LARK_APP_ID=cli_xxx
export DSH_LARK_APP_SECRET=xxx
export DSH_LARK_ALLOWED_OPEN_IDS=ou_xxx # your open_id; message the bot once to learn it
cd your-project
npx @deepseek-ai/dsh web
With no credentials configured the plugin stays idle with a hint instead of blocking dsh startup; a failed connection likewise logs an error without taking dsh down.
| Config | Env var | Default | Notes |
|---|---|---|---|
appId |
DSH_LARK_APP_ID |
— | required |
appSecret |
DSH_LARK_APP_SECRET |
— | required |
brand |
— | feishu |
feishu or lark |
cwd |
DSH_LARK_CWD |
process cwd | agent working directory |
provider / model |
— | dsh default | model override |
requireMention |
— | true |
require @mention in groups |
groupSessionScope |
— | thread |
thread / chat / sender |
allowedOpenIds |
DSH_LARK_ALLOWED_OPEN_IDS |
[] |
comma-separated allowlist |
allowAllUsers |
DSH_LARK_ALLOW_ALL_USERS |
false |
open to everyone (think twice) |
agentPreset |
— | deployment default | agent preset id — decides the agent's tool suite (bash, web_search, …) |
approvals |
— | true |
relay tool approvals to Feishu |
autoApprove |
DSH_LARK_AUTO_APPROVE |
false |
grant every approval instantly (full trust — think hard) |
imageInput |
— | true |
native image input |
sessionCard |
— | true |
one updatable status card per task |
webUrl |
DSH_LARK_WEB_URL |
http://127.0.0.1:3080 |
dsh Web address behind the card button |
maxReplyChars |
— | 30000 |
reply size cap |
/steer <text> · /stop · /new · /sessions · /resume <id> · /approve · /reject · /status · /help — any other /command falls through to Harness native commands.
src/
index.ts Cordis plugin entry (30 lines): inject + lifecycle
config.ts config schema + env merging (100 lines)
sessions.ts session keys / ids / small utilities (70 lines)
gateway.ts Feishu channel ↔ agent bridge (400 lines)
@larksuiteoapi/node-sdk (long connection, reconnect, dedup, rate limiting, markdown conversion)ctx.agents, session/event, followup)@deepseek-ai/* stay external and are provided by dsh)| dsh-lark (this) | dsh-lark-bridge | dsh-im-hub | |
|---|---|---|---|
| Focus | minimal single-dir gateway | full-featured console | multi-platform hub |
| UX | plain text + commands | interactive/progress cards | cards |
| Multi-project routing | ❌ (one instance, one dir) | ✅ | ✅ |
| Platforms | Feishu/Lark | Feishu/Lark | Feishu / WeCom / Telegram |
| Core size | ~600 lines | ~3000 lines | larger |
Need progress cards, project routing, or pairing flows? Use dsh-lark-bridge. Want a gateway you can read end-to-end in ten minutes? This one.
allowAllUsers means anyone who can reach the bot can drive an agent on your machinelark_deliver only sends files inside the agent working directory (SDK allowedFileDirs plus a plugin-side check)pnpm install
pnpm run check # typecheck + test + build
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: bot、feishu、lark、chatops。