Beeper adapter · v0.16.1
Use Beeper through 32 supported actions.
Wrench exposes 32 semantic operations over the official Beeper CLI 0.6.2 and an already-authorized Beeper Desktop target. Each request binds one executable, account realm, Desktop target, operation contract, input, output, and risk level.
This page describes adapter beeper-local 2.0.0 in v0.16.1. Run wrench capabilities beeper-local --json for the exact state installed on your machine.
Read, manage, and send through named contracts
Read
List and read accounts and bridges; list, search, and read contacts and conversations; read message pages, exact messages, and surrounding context; and search bounded message-content windows.
Manage state
Set reactions, archive or pin conversations, change mute or priority state, set or clear private drafts and reminders, and focus one exact Desktop conversation.
Send and change
Send text, files, stickers, or voice; edit an authored message; start a conversation; change read state or group metadata; set disappearing-message retention; send Notify Anyway; and emit bounded presence.
Bind one official CLI and one Desktop target
Install the official CLI, authorize it to the local Desktop app, install Wrench's reviewed adapter manifests, then bind an auth identity to the exact Beeper account and Desktop realm.
brew install beeper/tap/cli
beeper setup
wrench adapter sync-bundled --json
wrench auth add beeper-main --linked-device beeper \
--device-store "${HOME}/.beeper"
wrench auth bind beeper-main --site beeperIf a package manager installs different bytes, extract the matching release asset for your platform and place the executable at <WRENCH_STATE_HOME>/tools/beeper/0.6.2/beeper. When WRENCH_STATE_HOME is unset, the default state root is ~/.local/share/wrench. The artifact table below links the direct official asset for every supported macOS and Linux architecture. Wrench rejects an unpinned executable before private work. A Beeper Desktop update changes the bound runtime realm and requires explicit review and rebind.
What Wrench adds to the official Beeper CLI
Beeper publishes the upstream CLI. Wrench exposes reviewed outcomes from that CLI instead of exposing a command name and arbitrary arguments. The caller cannot select a command, flag, endpoint, target, environment variable, output path, or user-installed CLI plugin.
Wrench starts the executable directly without a shell, removes ambient credentials and target defaults, isolates oclif user-plugin state, and stages files only from digest-bound plan assets. Private text accepted by the upstream CLI as an argument can remain visible to same-account local process inspection while the child runs.
Each supported platform is bound to exact archive and executable SHA-256 values. A reported version, package-manager formula, release tag, or compatible-looking update is not execution authority.
Keep each version boundary separate
| Boundary | Current identity | What it controls |
|---|---|---|
| Wrench release | v0.16.1 | The installable CLI, SDK, plugin catalog, and public support directory |
| Adapter | beeper-local 2.0.0 | The public operation catalog and selected source-plugin contracts |
| Semantic contracts | Contract version 1 across the current 32 operations | Each operation's input, output, risk, side effect, and completeness |
| Official CLI | Beeper CLI 0.6.2 at a416af06023449a87312dc11e54643fd9dc94b8c | The exact upstream client, further bound by one executable digest per platform |
| Reviewed SDK semantics | @beeper/desktop-api 5.0.0 at b9c1714410139c2139b597338cd002d785653e85 | The response semantics reviewed behind the CLI, not a claim about the running Desktop version |
| Runtime Desktop realm | Bound bundle ID, advertised version, loopback target, and hashed self account | The exact local Desktop instance authorized to execute |
These identities answer different questions and do not form a compatibility range. A new CLI artifact or Desktop build requires separate review.
Pinned executable artifacts
The reviewed CLI release commit is a416af06023449a87312dc11e54643fd9dc94b8c. Its release-manifest SHA-256 is 5c52b533180151b97e26138ef687b6b819170687b34a478184e5648335356950. Review the official 0.6.2 release and the CLI manual.
| Runtime | Download | Archive SHA-256 | Executable SHA-256 |
|---|---|---|---|
| macOS arm64 | Official release asset | 688ccde7e7d044d33980cd06474bf1ae7215ccf8ca79967262fa3bfb85a2589a | 48aa895449129c793a212ea19f69a534adc34a8adc4037ca1d7da9e648716425 |
| macOS x64 | Official release asset | 4113a1979cfbd7839f14743158e70c12efa941313afb77ab2b11a08309196186 | 83bb89edb6eeb9c61ebdb6ec940e0db30c90ecbca61d60a7408fe336e255f22e |
| Linux arm64 | Official release asset | 2bd37043a4ed863621edc59e28aaa652e8193e55abca0e9477f5aeae1c65d629 | 102b8725bd99b03905dcff9fff645f3742e1697ce8d43ab9d8656896aafd12a8 |
| Linux x64 | Official release asset | a881e1d2bc91e31218b251716644ec5f8d161d5ccb30e7eab66cf2ba6410511d | 723cc3a6c556fa21b6ba11db8377d6a29776aca1660da48f0072883d6452ae3d |
Preview one message send
wrench beeper-local messaging.send --auth beeper-main --preview --json \
--input '{"account_id":"<account-id>","conversation_id":"<chat-id>","kind":"text","text":"Hello from Wrench"}'
wrench confirm <preview-digest> --jsonmessaging.send previews the exact request, requires confirmation, durably records dispatch, and invokes Beeper without --wait. An accepted pending target is evidence of submission, not network delivery.
After the child may have reached Desktop, a timeout, signal, malformed response, or lost response remains indeterminate. Wrench does not retry it. A separately obtained exact read must reconcile the outcome.
Export local history for another bounded tool
Separate Wrench workflows can produce a private Message Like Me bundle or a body-free contact-interaction summary from Beeper's locally materialized history. These workflows are not part of the 32 supported actions.
wrench beeper export-message-like-me --auth beeper-main \
--output /absolute/path/to/new-message-like-me-bundle --json
umask 077
wrench beeper export-contact-interactions --auth beeper-main --json \
> /absolute/private/path/beeper-contact-interactions.jsonBoth exports retain incomplete-coverage evidence. The contact view excludes message bodies, attachments, reactions, media, group messages, names, titles, handles, credentials, and local paths. Provider coordinates can identify a person, so body-free does not mean anonymous.
Limits remain visible
Beeper CLI 0.6.2 exposes no continuation for several list and search commands and may cap results below the requested limit. Wrench returns bounded candidate windows instead of claiming complete history.
The checked coverage ledger accounts for all 101 canonical CLI commands. Account setup and removal, authentication and verification, target and server administration, software and plugin lifecycle, raw API or RPC, watches and webhooks, arbitrary exports, media download, and message deletion remain unavailable or R4.