---
title: Box Doc Summarizer
description: 'A Box Mount demo: sync a Box folder into the agent, get one executive summary with a link to every file. It saves the summary back through the mount …'
product: Marketplace
url: https://docs.digitalocean.com/products/marketplace/catalog/box-doc-summarizer/
last_updated: "2026-10-13"
---

> **For AI agents:** The documentation index is at [https://docs.digitalocean.com/llms.txt](https://docs.digitalocean.com/llms.txt). Markdown versions of pages use the same URL with `index.html.md` in place of the HTML page (for example, append `index.html.md` to the directory path instead of opening the HTML document).

# Box Doc Summarizer

Generated on 13 Oct 2026 from [the Box Doc Summarizer catalog page](https://marketplace.digitalocean.com/apps/box-doc-summarizer)

Box Doc Summarizer is a chief-of-staff agent for anyone who inherits a shared Box folder full of documents and needs the gist fast. Ask `list folders` to see what it can reach, then name a folder in chat by name, id, or link (`summarize Hawaii Trip`). It reads every PDF, Word, PowerPoint, Excel, Markdown, text, and CSV file, including subfolders, briefs each one, and writes a single executive summary: TL;DR, cross-document themes, a section per document, and a link back to each source file in Box. Before anything touches Box it asks \*\*Write executive summary to Box?\** Approve saves `EXECUTIVE-SUMMARY.md` into the folder (a new version if one already exists, so Box keeps history). Deny keeps the summary in chat only. It never edits or deletes your documents. It runs on Box Mount (private preview, Linux only, no SLA): the agent downloads the Box Mount build, verifies its SHA256, syncs your folder into its sandbox, reads the files from the mount, and writes the summary back through it so Box keeps versions. Box Mount syncs files but cannot create links, so the same JWT service account uses the Box API only for file links and optional public shared links.

### Why use it

- One readable summary for a whole folder, with a link to every source document
- Human approval before anything is written back to Box
- Versioned write-back: Box keeps the previous summary as an older version
- Reads PDF, DOCX, PPTX, XLSX, Markdown, text, and CSV; other files are listed, not guessed at
- Scoped access: a JWT service account invited only to the folders you choose
- Box Mount (private preview): reads and writes go through a synced folder, with a verified binary
- Built for DigitalOcean Managed Agents (MARS) with a sandboxed LangGraph runtime

### Requirements

- DigitalOcean Managed Agents / Harness Runtime (sandboxed LangGraph session)
- OpenAI-compatible inference provider (DigitalOcean Gradient / Inference recommended)
- A Box JWT app authorized by a Box admin, with its service account invited to the folder
- Required secret `BOX\_JWT\_CONFIG\_JSON`
- Box Mount private preview access (Linux only, no SLA, 5 GB / 10,000 files per mount); the listing includes `BOX\_MOUNT\_BINARY\_URL` and `BOX\_MOUNT\_SHA256` defaults

## Software Included

*This Marketplace listing does not include a detailed software list.*

## Getting Started After Deploying Box Doc Summarizer

1. In the Box Developer Console create a \*\*Custom App\** with \*\*Server Authentication (with JWT)\*\*, App Access Only, scope \*\*Read and write all files and folders\*\*. Generate a keypair and download the JWT config JSON.
2. Have a Box admin authorize the app (Admin Console, Platform Apps). Invite the app’s service account (`AutomationUser\_…@boxdevedition.com`) to your folder as an \*\*Editor\*\*.
3. Create the agent with secret `BOX\_JWT\_CONFIG\_JSON` set to the whole JSON file and `HARNESS\_INFERENCE\_API\_KEY` set to your inference key. You do not need `BOX\_FOLDER\_ID` for chat: use `list folders`, then `summarize`. Set `BOX\_FOLDER\_ID` only if you want a default folder for webhook `Refresh` or triggers with no folder in the prompt. Optionally set `BOX\_SHARED\_LINK\_ACCESS=open` for public links.
4. Box Mount (private preview): request access from Box. The Marketplace manifest and doctl spec include env `BOX\_MOUNT\_BINARY\_URL` (direct download) and `BOX\_MOUNT\_SHA256`; without the checksum the agent won’t download the binary.
5. Start a session. Send `list folders` to see what the service account can reach, `list files in` to check what Box Mount synced, then `summarize`. Read the preview, then approve or deny \*\*Write executive summary to Box?\**

```shell
doctl harness-runtime triggers create \
--kind webhook \
--provider custom \
--name box-doc-summarizer \
--session-mode reuse \
--spec specs/mars-box-doc-summarizer-trigger.yaml \
--secret HARNESS\_INFERENCE\_API\_KEY=@~/.secrets/do-inference.key \
--secret BOX\_JWT\_CONFIG\_JSON=@~/.secrets/box-jwt.json \
--prompt "Refresh"
```

Point a Box webhook (FILE.UPLOADED on the folder) at the trigger URL so a new file re-runs the summary.