musebot
New to Muse? Join at muse.ai/join and use invite code Referral: using this code gives the site owner credits.

box for muse

Muse connects to Box for file management

How to add it to Muse

This connector is a skill: copy its SKILL.md (from the copy box or the source) into a Muse chat and ask Muse to set it up. If it needs a key, enter it only where Muse asks for a credential (its secure store), never in the chat. Meta doesn't review custom connectors.

New to Muse? Join at muse.ai/join and use invite code Referral: using this code gives the site owner credits.

There's no official Muse install link, so musebot never makes one up. Connector For the Muse app, web or WhatsApp.

Setup prompt to copy

---
name: box
description: Search, read, cite, and save Box files through the user's connected Box account. Gather customer files and candidate contract evidence from a named folder.
---

# Box for Muse

Independent community connector by Dan O'Leary, a Box and Meta alumnus.
Not sponsored, endorsed, or maintained by Box or Meta.

## Connection and scope

Install location: `~/workspace/skills/box/`. Run the commands below relative to
that directory. Requires Python 3 and Muse's platform helper at
`/opt/hatch/skills/skill-creator/bin/dynamic_credentials.py`, plus the user's
connected `custom.box` credential. PDF text extraction requires `pdftotext`.

Authenticate only through the platform helper. It supplies a surrogate in
request headers; the CLI does not retrieve or store real tokens. Never collect
secrets in chat, flags, files, or environment variables. Refresh belongs to
Muse; this CLI does not implement or prove token refresh.

Each user supplies their own grant and instructions. No authorization from the
author transfers with this skill. Box's permissions and Muse's approval controls
still apply. This connector does not enforce a sandbox scope at the OAuth level.

## Commands

- `bin/box identity`: connected identity. Avoid repeating login in receipts.
- `bin/box search "query" --folder-id ID --limit 10 --offset 0`: native Box search.
  Folder scope is optional only when the user intends a wider search.
- `bin/box list-folder ID --limit 100 --offset 0`: browse folder contents.
- `bin/box get-file ID`: metadata and stable Box source link.
- `bin/box read-file ID --text`: verified download and bounded text extraction.
- `bin/box read-file ID --out PATH`: save downloaded bytes locally.
- `bin/box create-folder "name" --parent-id ID`: create in an explicit destination.
- `bin/box save-document PATH --parent-id ID [--name NAME]`: upload a new file;
  successful verification requires destination, checksum, size and exact readback.
- `bin/boxwork gather-customer-files --folder-id ID --customer NAME --alias ALIAS
  [--alias ALT] [--case CASE] [--include-evidence]`: bounded descendant traversal. Aliases are OR;
  supplied alias and case constraints must both match. Repeat `--customer` to
  start another group. Confirmed means identifiers matched, not approval or
  business relevance. Inspect ambiguous and unassessed files and coverage gaps.
- `bin/boxwork review-contracts --folder-id ID --year YYYY`: evidence triage.
  Reads every file within the folder/page/file bounds. `candidate_expirations`
  and `candidate_outside_year` are language clues requiring review, not legal
  conclusions. Historical clauses, date grammar and amendment naming can mislead
  heuristics. `expiring_in_year` and `outside_year` remain empty. Never state
  "all contracts expiring" from this output. Review source clauses, amendments,
  renewal conditions and notice deadlines. `assessment_complete` remains false.

Exit 0 means the command's stated checks passed, not global completeness.
Exit 1 means failure; exit 2 means an ambiguous write, incomplete coverage or
review required. Contract triage exits 2 even when candidate extraction succeeds.

## Run one customer-gather operation

For meeting preparation, add `--include-evidence` to return text already read by
gather, capped at 8,000 UTF-8 bytes per file and 32,000 bytes total. This adds no
downloads. Inspect each `evidence` and `evidence_summary`: partial extraction and
output truncation remain incomplete, and filename-only matches may have no text.
Unverified or uncertain-version text is omitted. Reuse this returned evidence
for the brief; read selected missing content only when necessary.

For a customer-file request, run one foreground `gather-customer-files` command
and collect its result before starting individual file reads. Reuse its file
IDs, source versions and coverage, plus any text already returned in this task.
After it finishes, read only selected files whose needed content is still
missing. Do not run background gathering alongside duplicate individual reads.

While a read awaits Muse approval, wait for that operation's outcome; do not
start another read or retry to obtain a second approval prompt. If a command
has returned a process handle, collect that process's result instead of
relaunching it. After bounded retries finish with a timeout or denial, preserve
the gap and report the useful verified results as partial. Do not invent a
cause, claim the missing file is irrelevant, or restart the workflow merely to
obtain a clean result.

## Evidence and failure behavior

Cite file links and the version actually read. Folder-list metadata is separate
from verified content evidence. Inspect `version_changed_during_read` and
`version_check_note`; disclose unavailable current-version checks. Customer
content matches cannot confirm using partial, unreadable or uncertain-version
content. Newer draft terms do not supersede approved terms without evidence.

A pagination `complete` flag means a terminal collection page, not all content
in Box. Follow `next_offset`; stop at the offset ceiling with explicit gaps.
Search indexing may lag. Use direct folder listing when scoped search misses a
known file. Never silently treat an incomplete search as absence.

Read/upload limit is 20 MiB per file and response. DOCX document.xml is limited
to 8 MiB decompressed. Text previews stop at 20,000 characters with truncation
reported. DOCX extraction is partial: headers, footers and notes omitted;
tables flattened. Scanned PDFs may need OCR, which is not implemented. Images
can be attached, but this CLI does not extract their text.

GET retries are bounded. Honor Retry-After; long waits are returned as deferred.
Do not replay POST after timeout, oversized response or 5xx. Reconciliation is
read-only and does not prove that a discovered pre-existing item was created by
this request. Report ambiguous outcomes, even when the user hoped for success.

For 401/403, distinguish credential

src/box/SKILL.md from the repo, Apache-2.0 licence. Read it before pasting. Muse asks before it acts.

What the source says

Built with love by Dan O'Leary. Independent community Box connector for Muse and agents: roadmap, research, and open contribution.

Quoted from the source, by danieloleary. Licence: Apache-2.0.

Where we found it