llms.txt@website/source · git:20260904.05e6a3e · 2026-09-04 · sha256 24e6356517a7bd1a

llms.txt@website/source git:20260904.05e6a3eA

Immutable. This exact content is served forever at /api/v1/blob/24e6356517a7bd1a.

# Wrench

> Open-source CLI and TypeScript SDK for precise web capabilities for AI agents: page capture, verified media archives, encrypted reads, and typed provider operations.

## When to use Wrench

Use Wrench when a command-capable agent or application needs a local capability and custody layer for the web. Reach for it to capture an authorized public URL as Markdown, inspect a page without saving it, archive one authorized finite media item with SHA-256 verification, read a reviewed provider capability into an encrypted snapshot, or invoke one typed account-bound operation such as `messaging.list`.

Install the immutable {{WRENCH_RELEASE}} release with Bun 1.3.14, run `wrench doctor`, then ask `wrench capabilities --json` what is installed on the current machine. The same release is also a TypeScript SDK with seven public entrypoints: `@hraness/wrench` for plugin types, `@hraness/wrench/client` for persistent reads, `@hraness/wrench/beeper` for body-free Beeper contact interactions, `@hraness/wrench/apple-photos` for local Photos contact evidence, `@hraness/wrench/whatsapp` for bounded private Message Like Me export, `@hraness/wrench/omni` for normalized cross-provider reads, and `@hraness/wrench/messaging` for agentic messaging route discovery and resolution. A command-capable agent can add the release-matched Agent Skill with `{{WRENCH_SKILL_INSTALL_COMMAND}}` (or `{{WRENCH_SKILL_INSTALL_COMMAND_BUNX}}`).

Do not use Wrench as an AI agent, hosted HTTP API, OpenAPI surface, OAuth developer portal, GraphQL endpoint, webhook catalog, commerce checkout, or MCP server. Those jobs stay with the caller. Wrench can sit behind an MCP tool or agent framework; it does not publish one.

## Wrench developer resources

- [Install the Wrench CLI and TypeScript SDK](https://wrench.rip/getting-started/): pin {{WRENCH_RELEASE}}, synchronize bundled adapters, run the doctor, and capture a first URL
- [Install the Wrench Agent Skill](https://wrench.rip/): `{{WRENCH_SKILL_INSTALL_COMMAND}}` adds the release-matched capture, archive, provider, and publishing guide to a command-capable agent
- [Capture URLs and create verified media archives](https://wrench.rip/capture-and-archives/): choose inspection, durable Markdown, or one finite media archive
- [First-capture demo](https://wrench.rip/getting-started/#demo): a 12-second successful public-page read with reusable video, GIF, PNG, and a text transcript
- [Provider support](https://wrench.rip/provider-capabilities/): every action supported by the current release, grouped by service and access method
- [Beeper support](https://wrench.rip/providers/beeper/): {{BEEPER_OBSERVED_OPERATION_COUNT}} supported actions. {{BEEPER_CLI_BACKED_OPERATION_COUNT}} run through the pinned `@beeper/cli` {{BEEPER_CLI_VERSION}} executable and {{BEEPER_DESKTOP_LOOPBACK_OPERATION_COUNT}} use fixed Desktop loopback reads. Message mutations require preview and confirmation. Tagged `{{BEEPER_CLI_SOURCE_PACKAGE_PATH}}` declares {{BEEPER_CLI_SOURCE_DECLARED_VERSION}} and is provenance-only; exact executable runtime identity remains authoritative
- [WhatsApp support](https://wrench.rip/providers/whatsapp/): four bounded local R1 reads and a private seven-file Message Like Me schema-2 export from an existing Wacli 0.15.0 store; the export does not pair, sync, or send
- [Personal agents and attested operations](https://wrench.rip/compare/personal-agents-browser-use/): persistent browser-using agents versus Wrench's named, attested operation set
- [PayPal and GrapheneOS device policy](https://wrench.rip/paypal-grapheneos-attestation/): a payment app's rooted-phone check is not a named Wrench operation
- [Rumour and named web operations](https://wrench.rip/rumour-is-the-exploit/): when a rumour is enough for agentic search, named operations still matter
- [Omarchy and named web operations](https://wrench.rip/omarchy-root-escalation/): a desktop that lets any user process escalate to root is not a named Wrench operation
- [Security and local custody](https://wrench.rip/security/): account binding, encrypted snapshots, risk levels, and fail-closed drift
- [Author and verify provider plugins](https://wrench.rip/plugins/): create, check, test, pack, trust, and install one content-addressed bundle
- [Wrench source repository]({{WRENCH_REPOSITORY}}): public source, issues, and GitHub private vulnerability reporting
- [Plugin protocol guide for {{WRENCH_RELEASE}}]({{WRENCH_REPOSITORY}}/blob/{{WRENCH_RELEASE}}/docs/plugins.md): complete source-side plugin contract

## Main pages

- [Wrench home](https://wrench.rip/)
- [About Wrench](https://wrench.rip/about/)
- [Contact and security reporting](https://wrench.rip/contact/)
- [Privacy and data custody](https://wrench.rip/privacy/)
- [XML sitemap](https://wrench.rip/sitemap.xml)

## How to read this site

Public content pages serve HTML by default. Request the same URL with `Accept: text/markdown` to receive `text/markdown; charset=utf-8` and `Vary: Accept`. If no owned representation can satisfy `Accept`, the response is `406 Not Acceptable`. Unknown paths return HTTP 404 with recovery links to this file, the sitemap, and the getting-started guide.

## Usage

Use Wrench only with material and accounts you are authorized to access. It does not bypass login, payment, access controls, or DRM. Public page capture is the smallest first run. Authenticated providers stay unavailable until `wrench doctor` and `wrench capabilities` say they are ready. Beeper provides {{BEEPER_OBSERVED_OPERATION_COUNT}} supported semantic actions: {{BEEPER_CLI_BACKED_OPERATION_COUNT}} are CLI-backed and {{BEEPER_DESKTOP_LOOPBACK_OPERATION_COUNT}} are fixed Desktop loopback reads. Agentic text sends use one fixed Desktop POST, do not call the CLI or SDK, and never retry; a returned pending message ID proves submission to Desktop only, not network delivery. WhatsApp's native Message Like Me export reads one bounded local projection, excludes reactions and proven PN/LID self chats, and preserves incomplete-history evidence. Sends and other mutations require Wrench preview and confirmation; submission is not a delivery claim.