WRENCH

Getting started · Wrench 0.9.0

Install Wrench and capture your first URL.

Wrench is an open-source CLI and TypeScript SDK for command-capable AI agents. Install the immutable release with Bun 1.3.14, synchronize its reviewed adapter manifests, run the local readiness doctor, then start with a public URL.

This guide describes v0.9.0 and was checked against the public source for that immutable release.

What you need

Wrench runs on macOS and Linux and requires Bun 1.3.14. The CLI does not include an AI model, planner, approval interface, or application shell. It supplies a capability and custody layer for an agent or application that can invoke commands.

A public page capture is the smallest useful first run. Authenticated providers add separate dependencies, account bindings, and contract requirements, so their commands remain unavailable until wrench doctor and the relevant capability report say they are ready.

1. Install the immutable release

terminalv0.9.0
bun add --global github:hraness/wrench#v0.9.0
wrench adapter sync-bundled --json
wrench doctor

The global install pins the public GitHub repository to the current immutable tag. adapter sync-bundled atomically installs the reviewed data manifests shipped by that exact package version. It upgrades only an exact bundled baseline and preserves an independently modified install.

2. Inspect a page before saving it

wrench read https://example.com/article

wrench read returns a readable page result without persisting it. To save the page as durable Markdown in a configured knowledge base, pass the URL directly:

wrench https://example.com/article

Use only material you are authorized to access. Wrench does not bypass login, payment, access controls, or DRM. The capture and archives guide explains the difference between page capture and a verified media archive.

3. Ask the installed system what it can do

wrench capabilities --json
wrench plugin list --json
wrench platforms --json
wrench plugin doctor --json

wrench capabilities is the local source of truth. It reports the semantic operations that are installed and observed on this machine. A capture-required operation is an inert reservation, not partial support and not permission to improvise with a browser fallback.

For contacts, email, inboxes, and messages, review the provider capability matrix before adding account credentials.

4. Use Wrench from TypeScript

Applications can pin the same release and import its side-effect-free package entrypoints:

bun add github:hraness/wrench#v0.9.0
import {
  isProviderPluginId,
  type ProviderPluginDefinitionV1,
} from "@hraness/wrench"

if (!isProviderPluginId(candidate.id)) {
  throw new Error("invalid plugin ID")
}

const plugin = candidate satisfies ProviderPluginDefinitionV1

The package root exposes plugin types and bounded validators. @hraness/wrench/client exposes persistent-read helpers, while @hraness/wrench/omni exposes normalized cross-provider reads. Importing these entrypoints does not start the CLI or inspect local state.