DeckProbe CLI
A Rust CLI that probes PDF, Office and iWork files without opening them and returns JSON with page counts and security signals.
- 112 ★ on the repository
- Last commit
- Apache-2.0
Extended access
Why this level
- The CLI reads local files and handles untrusted documents, although it does not render them.
- The `curl | sh` installer runs third-party code, so verify it against checksums.
Install
- Works in
Manual install
cargo install --git https://github.com/deckflow/deckprobe --locked deckprobeSource build, needs Rust 1.88 or newer. Prebuilt archives and the `@deckflow/deckprobe` npm package also exist.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The CLI reads local files and handles untrusted documents, although it does not render them.
- The `curl | sh` installer runs third-party code, so verify it against checksums.
This is third-party code. Review the repository files before installing.
What it does
DeckProbe runs a cheap preflight check on documents and returns structured JSON with confidence, evidence and measured read cost. An agent asks only for the facts it needs, such as `slide_count` or the page count, instead of parsing the whole file. The tool reads PDF, Word, Excel, PowerPoint, legacy `.doc`, `.xls` and `.ppt`, and iWork files (`.key`, `.numbers`, `.pages`) without rendering and without office suites. Limits apply to reads, decompression, archive entry counts and wall-clock time. A `--jsonl` mode handles batches, and a WebAssembly browser SDK never uploads files to a server.
Who it is for. Developers of agents and document pipelines who need to learn a file's size and contents quickly before parsing, OCR or sending it to a model.
Good fit when
- Before sending a presentation to a model you need the slide count and whether notes and hidden slides exist.
- An incoming PDF should be checked for signatures, attachments, JavaScript and forms before it is opened.
- Hundreds of documents need sorting into processing routes without an expensive parse of each.
- A file upload page is built in a browser and the data must not leave the device.
Not a fit when
- The whole text or structure has to be extracted, which DeckProbe does not parse in full.
- OCR, editing or rendering pages to images is required.
- Full malware protection is needed, and the tool does not replace an antivirus.
Example request
How many slides are in `deck.pptx`, and are there hidden slides and notes? Check with DeckProbe without opening the file.Limitations
Installing from source needs Rust 1.88 or newer, and prebuilt archives install through a `curl | sh` script or `npm install @deckflow/deckprobe`. Releases lack Developer ID and Authenticode signatures, so macOS and Windows may ask for confirmation. The route is chosen by file extension and the container is then verified. The deep text-size estimate gives medium confidence and is switched on by a separate request. Batch mode expects one JSON line per document, and a `probeFile()` call holds the whole file in memory.
How to disable. Delete the `deckprobe` binary from the Cargo directory (`~/.cargo/bin`) or run `npm uninstall @deckflow/deckprobe`. Remove the skill from `~/.claude/skills/deckprobe` and the plugin with the `/plugin` command.
FAQ
How do I install DeckProbe in Claude Code?
Install the CLI and run `deckprobe install --skills --agent claude -g`, or take the skill through `npx skills add deckflow/deckprobe`. There is also a plugin: `/plugin marketplace add deckflow/deckprobe` and `/plugin install deckprobe@deckflow`.
Does DeckProbe have an MCP server?
Yes, a separate deckprobe-mcp-server project: `claude mcp add deckprobe -- npx -y @deckflow/deckprobe-mcp`. It exposes four tools: `probe`, `probe_batch`, `list_formats` and `list_targets`.
Which formats does DeckProbe read?
PDF, Word, Excel, PowerPoint, legacy `.doc`, `.xls`, `.ppt`, and Keynote, Numbers and Pages files.
Is Microsoft Office needed?
No. The native CLI needs no Office, Python, JVM or external PDF library.
How do I process a batch of documents?
Pass JSON lines with `id` and `path` fields to `deckprobe --jsonl -t @summary`. Each non-empty line produces its own compact result.
Discussion
No questions or reviews yet.
Related
CLI toolsDeckuse is a CLI and skill that edits PPTX and DOCX via JSON commands, with versioned workspaces, validation and undo.
office-oxide-mcp: Office and PDF for AI agents
office-oxide-mcp
A Rust MCP server that reads and creates Excel, Word, PowerPoint and PDF locally and fills PDF forms after your approval
A skill plus the docx program: the agent fills forms, edits tables and reviews Word files with tracked changes
A CLI generating PPTX decks, DOCX documents, XLSX workbooks, reports and images from a text prompt in a terminal or script.
A Rust port of docling that turns PDF, Office, HTML and scans into Markdown and JSON in one binary, with an MCP mode
doc-cleaner converts PDF, Office, Keynote, Numbers and EPUB into clean Markdown with intact tables and Big5 and CP950 encodings.
README in short
Installation (from source, a prebuilt archive, through npm), a quickstart and target examples come first. Then the agent skill, MCP server, browser SDK and a table of supported formats follow. DeckProbe is part of the DeckFlow platform as the check before parsing and rendering.