Workspace-safe Office tools for agents: create/read Word, create/read/update Excel, and create/read PowerPoint decks with PNG/JPG/GIF image placement.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-office-tools
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:kw78/dsh-office-tools
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Seven model-facing Office file tools for DeepSeek Harness, running entirely in the plugin host half.
Install:
dsh plugin --profile web add github:kw78/dsh-office-tools
| Tool | Purpose | Library |
|---|---|---|
word_create |
Create .docx (title, paragraphs, bullets, one table) |
docx |
word_read |
Extract plain text from .docx |
mammoth |
excel_create |
Create a multi-sheet .xlsx from scalar cell grids |
SheetJS (xlsx) |
excel_read |
Read one or all sheets as scalar rows | SheetJS |
excel_update |
Replace/create whole sheets, or write cells by A1 address | SheetJS |
ppt_create |
Create a 16:9 .pptx (title slide, titles, paragraphs, bullets, notes, PNG/JPG/GIF images) |
pptxgenjs |
ppt_read |
Extract per-slide paragraph text, speaker notes, and image counts | jszip |
Harness integration
The plugin follows the standard DSH host-plugin contract:
- It exports
name/inject/apply;inject = ['tools']is its only runtime service dependency (@deepseek-ai/dsh-tools). apply(ctx)wraps everyctx.tools.register(defineTool({...}))inctx.effect(...)so Cordis disposes the registrations with the plugin fiber.defineTooldeclares model-visibleparameters, a validated canonicaloutput.schema, and a pureoutput.rendertext projection.execute(args, exec)resolves every path againstexec.agent.session.header.cwd; relative paths stay in the session workspace and absolute paths are accepted only when still inside it. Arealpathcheck on the nearest existing ancestor closes the symlink escape hatch.- Image files must live inside the session workspace (
.png/.jpg/.jpeg/.gif, 20 MiB each); explicit inch coordinatesx/y/w/hare supported, or omit them for automatic placement below the text. - Writes go through a same-directory temp file +
rename;overwritedefaults tofalse.
Build
pnpm install
pnpm run check # typecheck + tests + build
Artifacts: lib/index.js (ESM host bundle with Office libraries inlined; @deepseek-ai/* and cordis stay external) and lib/types/**/*.d.ts.
Install
# npm (recommended)
dsh plugin --profile web add dsh-office-tools
# GitHub source
dsh plugin --profile web add github:kw78/dsh-office-tools
# local checkout
dsh plugin --profile web add /path/to/dsh-office-tools
Restart the DSH server after installation. The seven tools appear in the next prompt assembly.
Community indexes
- Registration blocks for awesome-dsh-plugin / dsh-market are in docs/hub-registration.md.
- Recommended repository topics:
dsh,dsh-plugin,deepseek-harness,office.
Safety
- All file access is confined to the calling agent's session workspace.
- Reads are capped at 50 MiB; text/cell results are bounded and mark
truncated. - Creates/updates are bounded by row and cell limits and refuse overwrites by default.
- No LibreOffice/PowerPoint/Word subprocess is spawned; formats are generated and parsed with pure-JS libraries.
Links
More in this category
liustack/modlens★ 1537
Vision bridge for text-only models: paste an image, get structured JSON evidence (OCR, layout, semantics).
superdesigndev/treg★ 412
Tool catalog for agents: search ~2,600 external endpoints (SEO and SERP, backlinks, social, people and company enrichment, ad libraries, scraping) by the task you want done, read each one's parameters and per-call price, then call it with the credential injected server-side. Ships the skill plus an MCP row that stays disabled until TREG_TOKEN is set.
Anionex/dsh-vision-toolkit★ 386
Vision tasks for text-only models: intent-aware image Q&A, long-screenshot OCR, UI reproduction, grounding, and pixel diff.
zhaoolee/notes★ 141
Export DSH conversations as Smartisan Notes-style PNGs, or create and update Markdown notes in a configured account-scoped workspace.
Lum1104/dsh-browser★ 118
Chrome sidebar extension that lets DSH operate your browser directly, no vision capabilities required.
liustack/modsearch★ 100
Web search bridge for text-only agents: ask the web or X, get structured JSON evidence (search, fetch, citations).