PROUD SPONSOR Meet us at Black Hat USA 2026 · Booth 6101, Launch Pad · Aug 1-6, Mandalay Bay Learn more →

CLI

Everything the app can do, headless. Layers, boxed redactions, par-baked and fully-baked PDFs, page-level permissions, groups, batch directories, and JSON output for automation. Dozens of options, one binary.

Contact us for more information

$ honeycake bake board_deck.pdf --grant sarah.chen@co.com --ttl 30d 🍰 Baked board_deck.pdf.cake (keys granted: 1, expires in 30 days) $ honeycake bake report.pdf --redaction-sections sections.json \ --grant sarah.hr@co.com # boxed par-bake 🍰 Baked report.cake.pdf (redacted for everyone, original recoverable by 1) $ honeycake bake report.pdf --encrypt-pages '{"1":"sarah.hr@co.com","3":"gc@co.com"}' 🍰 Baked report.pdf.cake (per-page keys: 2 pages, 2 recipient sets) $ honeycake bake payroll.csv # .hcrc layers auto-discovered 🍰 Baked payroll.csv.cake (layered fields: 4) $ honeycake bakedir ./contracts/ -r --grant-group 5 🍰 Baked 23 files (recursive, group 5 granted) $ honeycake --output=json list # for scripts, CI, and MCP {"documents": [{"title": "Q4 Report", "checksum": "9f2c...", "expires": "2026-08-15"}]}
Layers, from the shell
Drop an .hcrc next to your files and every bake gets field-level encryption automatically. Per-file overrides included; skip it with --no-layered.
Boxed redactions
Draw redaction boxes by coordinate, per page, straight from JSON. Ship as a par-baked .cake.pdf anyone can view redacted, or fully-baked so only keyed users open it at all.
Page-level permissions
Every page of a PDF can carry its own key and its own grant and deny lists. Page 1 for HR, page 3 for legal, one artifact for everyone.
Groups, denies, TTLs
Grant whole org groups, deny individuals inside them, and set expiry in one line: --grant-group 5 --deny alex.park@co.com --ttl 7d.
Built for automation
Recursive bakedir for whole trees, structured --output=json for scripts, CI pipelines, and MCP agents. Browser and email auth flows for headless boxes.
Ingredients
One flag puts a searchable label on the sealed file: --ingredients summary.pdf. See how Ingredients works →
The full reference: honeycake --help, verbatim (v2.1.0)
🍰 Honeycake CLI - Headless document encryption tool Usage: honeycake [options] <command> [arguments] Global Options: -h, --help Show usage help -v, --version Show version information -g, --groups List organization groups --output=json Output structured JSON (for MCP/automation) --env=<env> Set environment: local|dev|staging|production (default: production) Commands: auth login <email> - Authenticate with Honeycake auth login-browser - Authenticate via browser (PKCE) auth verify <email> <code> - Verify email auth pin <email> <pin> - Enter or set PIN auth status - Check authentication status auth logout - Log out current user bake <file> - Encrypt and register a file --title <title> - Set file title (default: filename) --ttl <duration> - Set time-to-live (e.g., 30d, 1w, 24h) --grant <emails> - Grant access to comma-separated emails --grant-group <ids> - Grant access to group IDs (use --groups to list) --deny <emails> - Deny access to comma-separated emails --deny-group <ids> - Deny access to group IDs --no-layered - Disable layered encryption (ignores .hcrc) --encrypt-pages <json> - Page-level encryption as JSON object or file path --redaction-sections <json> - Redaction areas as JSON array or file path --redaction-format <fmt> - parBaked (default) or fullyBaked bakedir <dir> - Encrypt all files in a directory -r, --recursive - Include subdirectories (same flags as bake: --title, --ttl, --grant, etc.) unbake <file.cake> - Decrypt a .cake file list - List your documents Authentication: honeycake auth login-browser # Login via browser (recommended) honeycake auth login user@example.com # Login via email code honeycake auth status # Check who is logged in honeycake auth logout # Log out Basic Encryption: honeycake bake document.pdf # Encrypt (only you can decrypt) honeycake bake document.pdf --grant sarah.hr@co.com # Share with specific user honeycake bake document.pdf --grant sarah.hr@co.com,gc@co.com --ttl 7d honeycake bake document.pdf --grant-group 5 # Share with a group honeycake bake document.pdf --grant-group 5 --deny alex.park@co.com honeycake bake document.pdf --title "Q4 Report" # Custom title Batch Encryption: honeycake bakedir ./contracts/ # Encrypt all files in directory honeycake bakedir ./contracts/ -r --grant gc@co.com # Recursive with sharing Decryption: honeycake unbake document.pdf.cake # Standard encrypted file honeycake unbake report.cake.pdf # Par-baked PDF (redacted) honeycake unbake report.pdf.cake # Fully-baked PDF PDF Redaction (par-bake): # Redact a region on page 1 (only you can see the original): honeycake bake report.pdf \ --redaction-sections '[{"page":0,"x":72,"y":200,"width":200,"height":24}]' # Redact and share the original with specific people: honeycake bake report.pdf --grant sarah.hr@co.com \ --redaction-sections '[{"page":0,"x":72,"y":200,"width":200,"height":24}]' # Redact multiple areas across pages: honeycake bake report.pdf --grant sarah.hr@co.com,gc@co.com \ --redaction-sections '[ {"page":0,"x":72,"y":200,"width":200,"height":24}, {"page":0,"x":72,"y":400,"width":300,"height":24}, {"page":2,"x":100,"y":150,"width":250,"height":50} ]' # Load redaction sections from a file: honeycake bake report.pdf --redaction-sections sections.json # Fully-baked: only Honeycake users can open the file at all: honeycake bake report.pdf --redaction-sections sections.json \ --redaction-format fullyBaked --grant sarah.hr@co.com Coordinates are in PDF points (1 point = 1/72 inch, US Letter = 612x792). Par-baked (.cake.pdf): anyone sees redacted version, authorized users recover original. Fully-baked (.pdf.cake): only authorized Honeycake users can open the file. Page-Level Encryption (PDF): # Encrypt specific pages with per-page permissions: honeycake bake report.pdf --encrypt-pages '{"1":"sarah.hr@co.com","3":"gc@co.com"}' # Full grant/deny per page: honeycake bake report.pdf --encrypt-pages '{"1":{"grant":["sarah.hr@co.com"],"deny":["alex.park@co.com"]}}' # Load from a file: honeycake bake report.pdf --encrypt-pages pages.json Pages are 1-indexed. Each page gets its own encryption key and permissions. Uses the same permission format as .hcrc layered_fields. Layered Encryption (.hcrc): Place .hcrc in the file's directory for automatic field-level encryption. Per-file override: .{filename}.hcrc (e.g. .payroll.csv.hcrc) honeycake bake payroll.csv # Uses .hcrc auto-discovery honeycake bake payroll.csv --no-layered # Skip .hcrc, whole-file only See docs/cli/hcrc-configuration.md for full reference. JSON Output (for scripting/MCP): honeycake --output=json auth status honeycake --output=json bake document.pdf --grant sarah.hr@co.com Organization: honeycake --groups # List available groups honeycake list # List your documents Development/Testing: honeycake --env=local auth login testuser@example.com honeycake --env=dev auth login testuser@example.com honeycake --env=staging bake test.pdf For more information, visit: https://honeycakefiles.com