Setup Guide

Initialize the
Loom

Weaver is distributed as a single binary via Cargo. Domain commands use a local daemon for state and sandboxing, while capability probing runs entirely in the CLI process. Follow this guide to weave your first project.

Prerequisites

Rust Toolchain

1.75.0 or newer required for installation.

Linux Environment

Kernel 5.10+ for full seccomp-bpf sandbox support.

Shell Access

Bash, Zsh, or Fish. Root privileges not required.

Installation

01

Install from Crates.io

Download and compile the weaver binary. This includes both the client CLI and the daemon.

cargo install weaver
02

Verify Installation

No init ceremony required — Weaver discovers configuration through XDG paths, environment variables, and CLI flags, all with sensible defaults. Run the capability probe to confirm the binary is installed:

weaver --capabilities
Prints the negotiated capability matrix as JSON.
No daemon required — this runs entirely in the CLI process.
Canonical reference

Need the real defaults, XDG discovery rules, or the daemon JSONL envelope? Use the docs hub instead of this quick-start page.

03

Try a Command

The daemon auto-starts when you issue a domain command — no manual launch needed. Just run:

weaver observe get-definition --uri file:///path/to/project/src/main.rs --position 1:1

Manual Daemon Control

Use weaver daemon start, weaver daemon stop, or weaver daemon status if you need to manage the daemon explicitly.

Workflow

Your First Weave

Execute the standard Observe → Act → Verify loop on a sample project.

1

OBSERVE

Jump to a symbol definition to understand the code before editing.

$ weaver observe get-definition \
  --uri file:///path/to/project/src/main.rs \
  --position 10:5
2

ACT

Apply a patch through Double-Lock validation.

$ weaver act apply-patch < fix.diff
3

VERIFY

Pull diagnostics to confirm no regressions.

$ weaver verify diagnostics \
  --uri file:///path/to/project/src/main.rs

Troubleshooting

Unix Socket Permission Denied

If you see Error: connect(2) failed, the daemon socket may have incorrect ownership. The default socket lives at $XDG_RUNTIME_DIR/weaver/weaverd.sock (fallback: /tmp/weaver/uid-$UID/weaverd.sock). The usual fix is to ensure the daemon runs as the correct user rather than chowning the socket directly:

# Stop any stale daemon, then restart as your user
weaver daemon stop && weaver daemon start

Non-Unix / Windows Mode

Unix domain sockets are not supported on Windows. Switch to TCP mode in weaver.toml.

# weaver.toml — switch to TCP transport
daemon_socket = { transport = "tcp", host = "127.0.0.1", port = 9779 }