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
Install from Crates.io
Download and compile the weaver binary. This includes both the client CLI and the daemon.
cargo install weaver
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
No daemon required — this runs entirely in the CLI process.
Need the real defaults, XDG discovery rules, or the daemon JSONL envelope? Use the docs hub instead of this quick-start page.
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.
Your First Weave
Execute the standard Observe → Act → Verify loop on a sample project.
OBSERVE
Jump to a symbol definition to understand the code before editing.
--uri file:///path/to/project/src/main.rs \
--position 10:5
ACT
Apply a patch through Double-Lock validation.
VERIFY
Pull diagnostics to confirm no regressions.
--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:
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.
daemon_socket = { transport = "tcp", host = "127.0.0.1", port = 9779 }