Back to marketplace

dsh-office

Multimodal

omdsh-dev/dsh-office

Office document tools for DeepSeek Harness: generate, read, and edit spreadsheets (.xlsx), PDFs, presentations (.pptx), and Word documents (.docx).

  • cordis
  • deepseek-harness
  • dsh
  • dsh-plugin
  • office
GitHub Stars
26GitHub
Views
10DSH Plugin Hub
Forks
6GitHub
Open issues
1GitHub Issues
Manifest version
0.2.1@huiliyi37/dsh-office
Latest push
Sep 24, 2026GitHub
License
Apache-2.0TypeScript
Plugin type
HostRuns in the DSH Host

Verification and compatibility

This section shows evidence collected by the catalog. Undeclared information is labeled as unknown.

Static checked
01Exact source: github · @huiliyi37/dsh-office@0.2.102Validated: Aug 21, 202603Verified Harness: 0.1.0-rc.7
Current-version compatibility
Verified on the catalog Harness version
Declared Harness range
Not declared
Declared platforms
Not declared
Profiles
web
Build approval
Unknown
Permissions
Not declared
External services
Not declared
Telemetry
Unknown
No known risk flags found

This is not a security endorsement. Review source, permissions, and configuration before installing.

View evidence and scope

Verification covers only the named source, version, and Harness environment. It does not guarantee future compatibility.

  • github:omdsh-dev/dsh-office#a59db95e2c763a48b97be8b96b3a81e6550af792
  • The manifest and static structure passed checks; a runtime load check has not completed.

README

View source

@huiliyi37/dsh-office

English | 中文

Office document tools for DeepSeek Harness (dsh): generate, read, and edit spreadsheets (.xlsx), PDFs, presentations (.pptx), and Word documents (.docx).

Ported from the office plugins of the Tianshu terminal coding agent (Apache-2.0 licensed upstream), adapted to the dsh cordis tool model.

Tools

ToolWhat it does
xlsx_readList sheets of a .xlsx, or read one sheet as a markdown table (range-limited for large files; formula text preserved)
xlsx_writeWrite a 2D array to a new .xlsx (formula cells, header bold, column widths, number formats)
xlsx_editEdit an existing .xlsx: add sheets, update cells (value or formula), append rows
xlsx_recalcRecalculate every formula with a lightweight pure-TS engine and report error values (#REF!, #DIV/0!, #VALUE!, #N/A, #NAME?, #NUM!) with locations
xlsx_auditStatically audit formula structure: array-formula traps, aggregation ranges missing rows, formulas overwritten by hardcoded values, inconsistent formulas in a column, self-references, division by zero
pdf_createGenerate a real PDF with headings, paragraphs, tables, lists, code blocks and footer page numbers; CJK text renders via an auto-detected system font
pdf_readExtract text from a PDF for reading into context
pdf_mergeMerge multiple PDFs into one, in order
pdf_splitSplit a PDF into single-page files, or extract pages by spec ("1,3,5-7")
pptx_createGenerate a .pptx deck from slide definitions (title / section / content / two-column / image / table / chart), with optional theme and speaker notes
pptx_readExtract slide text as markdown, optionally including speaker notes; include adds structure (summary/layouts/images/tables: shape names & cm positions, image targets, table dims)
pptx_editFind/replace text inside an existing .pptx (<a:t> surgery), preserving all layout and styling
docx_createGenerate a real .docx Word document from content blocks (heading / paragraph / table / code / list), with optional striped tables, page background color, and diagonal text watermark
docx_readExtract text from a .docx for reading into context

Install & load

Compatibility: dsh 0.1.0-rc.5–0.1.x and the 0.2 line (including 0.2.0-rc.2). DSH checks the @deepseek-ai/dsh-tools peer range against the running dsh version, so 0.2.4 (^0.1.0-rc.5 only) is rejected on 0.2.0-rc.2. Cores on the 0.0.1 line are still refused: they install a second dsh-tools copy and crash every tool call with Cannot read properties of undefined (reading 'prepare').

Full load (all 14 tools)

dsh plugin --profile <name> add @huiliyi37/dsh-office
dsh --profile <name>

The first dsh plugin call initializes the profile (@deepseek-ai/dsh-base is its first bundle) and appends this package to the profile's bundles list. Launching the profile then registers all tools automatically.

Load only the families you need

Pass a config row in your profile's cordis.patch.yml to enable/disable per family. Omitted families stay enabled; set a family to false to exclude it (useful to keep the tool surface small):

# cordis.patch.yml
- insert:
    - id: dsh-office
      name: '@huiliyi37/dsh-office'
      config:
        enable:
          xlsx: false      # skip spreadsheet tools
          pdf: true        # keep PDF tools
          ppt: false       # skip presentations
          docx: true       # keep Word tools

Families: xlsx (read/write/edit/recalc/audit), pdf (create/read/merge/split), ppt (create/read/edit), docx (create/read).

Uninstall

dsh plugin --profile <name> remove @huiliyi37/dsh-office

Manual alternative

Install the package anywhere Node resolution can find it and reference it from your own cordis.patch.yml (same config.enable switches apply):

npm install @huiliyi37/dsh-office
# cordis.patch.yml
- insert:
    - id: dsh-office
      name: '@huiliyi37/dsh-office'

Skill

The package ships a usage skill (skills/SKILL.md, anthropics-compatible format) that teaches the model large-file pagination and generation discipline. Install it into a skill discovery root:

mkdir -p ~/.dsh/skills && cp -r node_modules/@huiliyi37/dsh-office/skills/dsh-office ~/.dsh/skills/

Usage examples

// xlsx_write — create a workbook
{ "file_path": "report.xlsx", "data": [["Name", "Score"], ["Alice", 92]], "header_bold": true }

// pdf_create — document with a heading, table and list
{
  "destination_path": "doc.pdf",
  "title": "Quarterly Report",
  "content": [
    { "type": "heading", "text": "Summary" },
    { "type": "table", "headers": ["Region", "Revenue"], "rows": [["APAC", "120"]] },
    { "type": "list", "items": ["Alpha", "Beta"] }
  ],
  "page_numbers": true
}

// pptx_create — a deck with a title slide and a bullet slide
{
  "destination_path": "deck.pptx",
  "slides": [
    { "type": "title", "title": "Roadmap 2026" },
    { "type": "content", "title": "Highlights", "items": ["Plugin runtime", "Office tools"] }
  ]
}

Development

npm install
npm run build   # tsc → lib/
npm test        # vitest: round-trip tests through the tool execute path

License

Apache License 2.0. Tool logic ported from the Tianshu office plugins (also Apache-2.0 licensed, copyright Tianshu contributors); see file headers for per-module provenance.

Comments

0
Newest first