Bundle
dsh-office-cli
A secure DeepSeek Harness plugin for the official WeCom, DingTalk, and Feishu/Lark office CLIs
- Source
- meliwanx
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 13 days ago
Readme
# dsh-office-cli
[中文](README.zh-CN.md) | English
A secure DeepSeek Harness plugin that exposes the official WeCom, DingTalk, and Feishu/Lark office CLIs through one native DSH tool.
This is an outbound office-capability plugin, not another chat-to-agent bridge. It lets a DSH agent work with messages, contacts, docs, sheets, calendars, meetings, tasks, approvals, mail, and other vendor-supported services while the official CLIs continue to own authentication, API discovery, and compatibility.
> Currently targets DeepSeek Harness `0.1.0-rc.7`, which is still a Developer Preview.
## Included
- `office_cli`: shell-free argv execution across `wecom`, `dingtalk`, and `feishu`.
- `office_cli_doctor`: version-only availability checks with no credential reads.
- `dsh-office`: terminal-side doctor and interactive auth helper.
- A bundled DSH Skill for progressive schema discovery and dry-run-first mutations.
- Default blocking for auth/config/upgrade/listener commands, credential arguments, raw API mode, and workspace-escaping paths.
- DSH one-time approval for writes, destructive operations, and unknown commands.
| Platform | Official CLI | Auth |
|---|---|---|
| WeCom | [`@wecom/cli`](https://github.com/WecomTeam/wecom-cli) | `wecom-cli auth init` |
| DingTalk | [`dws`](https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli) | `dws auth login` |
| Feishu/Lark | [`lark-cli`](https://github.com/larksuite/cli) | `lark-cli config init && lark-cli auth login --recommend` |
## Install
Requires Node.js `>=22.19` and DeepSeek Harness.
```bash
dsh plugin --profile web add github:meliwanx/dsh-office-cli
dsh plugin --profile web exec dsh-office install
dsh plugin --profile web exec dsh-office doctor
dsh --profile web --dump-config
dsh --profile web
```
The plugin package has no install script. The explicit second command installs pinned official CLI versions under `$DSH_HOME/office-cli`, shared by all DSH profiles and isolated from global npm.
```bash
# Install only one platform when preferred
dsh plugin --profile web exec dsh-office install wecom
dsh plugin --profile web exec dsh-office install dingtalk
dsh plugin --profile web exec dsh-office install feishu
```
Alternatively, install the official CLIs on PATH or as adjacent profile dependencies. Resolution order is explicit plugin config, `$DSH_OFFICE_HOME`/`$DSH_HOME/office-cli`, an adjacent npm package, then PATH.
For local development:
```bash
npm install
npm run check
dsh plugin --profile web add .
dsh plugin --profile web exec dsh-office install
```
## Authenticate and diagnose
Credentials stay in each vendor CLI's own keychain or encrypted store. The model-facing tool never accepts auth commands or secret-bearing flags.
```bash
dsh plugin --profile web exec dsh-office doctor
dsh plugin --profile web exec dsh-office install
dsh plugin --profile web exec dsh-office auth wecom
dsh plugin --profile web exec dsh-office auth dingtalk
dsh plugin --profile web exec dsh-office auth feishu
```
## Configuration
Override the bundle row in the profile's `cordis.patch.yml` and restate its complete config:
```yaml
- id: dsh-office-cli
config:
approval: writes # writes | all | off
timeoutMs: 120000
killGraceMs: 2000
maxOutputBytes: 262144
maxArgs: 128
maxArgLength: 65536
allowRawApi: false
workspaceFilesOnly: true
# wecomCommand: /opt/bin/wecom-cli
# dingtalkCommand: /opt/bin/dws
# feishuCommand: /opt/bin/lark-cli
```
`workspaceFilesOnly` is argument-level defense, not an OS sandbox. Use a dedicated container/account and least-privilege vendor apps for high-security deployments. See [SECURITY.md](SECURITY.md).
## Scope
Version 0.1 focuses on **DSH → office platform** operations. Inbound chat channels require long-lived connections, durable chat/session mapping, replay protection, remote approvals, and media streaming. They belong in separate future `channel-*` plugins sharing the adapter model rather than in the foreground CLI tool.
See the [architecture](docs/architecture.md) and [GitHub ecosystem research](docs/research.md) for the design rationale.
## Development
```bash
npm install
npm run check
npm run pack:check
```
Licensed under [MIT](LICENSE). CLIs fetched by the setup helper remain independent software under their own licenses; see [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
Install
dsh plugin --profile web add github:meliwanx/dsh-office-cli
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-office-cli from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.