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
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/articlewrench 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/articleUse 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 --jsonwrench 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.0import {
isProviderPluginId,
type ProviderPluginDefinitionV1,
} from "@hraness/wrench"
if (!isProviderPluginId(candidate.id)) {
throw new Error("invalid plugin ID")
}
const plugin = candidate satisfies ProviderPluginDefinitionV1The 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.