Understand dove from the bytes up.
A source-linked guide to sharing, receiving, provisioning, extending, and automating dove—including what is shipped today and what is only designed.
In the current source
Commands and APIs verified against the dove and dove-core repositories.
Approved behavior
A documented contract that may not be implemented in the current release yet.
Direction, not a promise
Useful context with no claim about availability or release timing.
The shortest useful mental model
dove sends files from infrastructure you control and, in full mode, can request one back. Simple mode creates an expiring presigned URL to a private S3 object. Full mode encrypts locally, stores ciphertext, and lets the access gate enforce expiry, download or upload policy, and an optional PIN without receiving the fragment secret.
The important property: in full mode, the server that serves the file cannot read it. The decryption secret is after # in the link, and URL fragments are not sent in HTTP requests.
Quickstart
1. Install the signed CLI
brew install boomctl/tap/dove See every supported install path and release-verification steps on the canonical install section.
2. Provision your backend
dove provision simple
# or, for encrypted shares with access policy
dove provision full 3. Send or request a file
dove share report.pdf --expires 3d
dove share credentials.txt --encrypt --downloads 1 --pin --from "Ada"
dove request "the signed NDA" --from "Ada" --pin --expires 1d
dove requests
dove requests get <request-id> Full-mode share recipients can decrypt files smaller than 2 GB in a supported browser. A request uploader needs only a browser and can send one file up to 512 MiB. Larger received shares use dove get; request collection uses the local request ledger.
Choose the layer you need
| If you need to… | Read |
|---|---|
| Understand exactly where plaintext, ciphertext, keys, and policy travel | How it works |
| Ask someone for a file and collect the encrypted result | File requests |
| Review every AWS resource and permission before provisioning | Provisioning |
| Script existing commands without inventing unsupported flags | Automation |
| Build another UI over the same implementation | Rust core API |
| Brand or replace the recipient page | Custom share pages |
| Give a coding agent bounded, current context | For coding agents |
Canonical sources
These docs are explanatory. When there is a mismatch, current source code wins for shipped behavior:
- boomctl/dove — CLI parsing, prompts, terminal behavior, installer, and releases.
- boomctl/dove-core — transfer traits, encryption, storage, provisioning, and the embedded gate page.
- dove v1 design — approved behavior and security rationale; some syntax in it predates the current CLI.