Weaver CLI — 0.1.0 target

CLI tooling for
code-aware agents.

Weaver turns semantic code operations into shell primitives. Query symbols structurally, pipe the matches through jq, and hand them to a rename – every command has one readable renderer and one stable --json contract, with Double-Lock and Birdcage constraining the risky parts.

Weaver is in active early development. These pages document the v0.1.0 target surface; the prototype grammar it replaces is not preserved.

$ cargo install weaver
Quick Start
FIG 1.0: ARCHITECTURE
Illustrated loom fused with a software architecture diagram, showing indigo and vermilion threads moving through a daemon-like central hub with blueprint measurements and wave motifs.
SCALE: 1:1

Composable

One noun-verb grammar covers reading, querying, and changing code. Queries emit versioned selector streams that pipe through jq or straight into a mutation – the shell is the integration layer.

Explore Fusion

Safe

Block bad edits before they land. Double-Lock checks the change; Birdcage isolates untrusted tooling with seccomp-bpf and namespaces.

Security Model

Fast

Keep state in a resident daemon instead of re-parsing on every call. Rust binaries stream JSONL over local IPC: Unix domain sockets by default on Unix, with loopback-only TCP retained for non-Unix prototype compatibility.

Daemon Specs
Interface

Command Reference

weaver-cli — zsh — 80x24
~ weaver symbols list --lang rust --query 'fn $NAME($...ARGS)' --json \
| jq -c 'select(.schema == "weaver.selector.v1" and (.captures.NAME.text | startswith("old_")))' \
| weaver symbols rename --selectors - --new-name run --dry-run
{"schema":"weaver.selector.v1","uri":"file:///src/lib.rs","captures":{"NAME":{"text":"old_run"}}}
dry run: 1 rename planned, 3 files would change, verification clean
~ weaver diagnostics list --workspace . --json
QUERY ENGINE
Illustrated left-to-right Sempai query pipeline showing code entering a circular parsing chamber and flowing as structured output toward an agent target.
INPUT: RAW SOURCE OUTPUT: STRUCTURED JSONL
Query layer

Sempai Query Engine

Sempai powers weaver symbols list: Semgrep-shaped queries on a Tree-sitter spine, with explicit compatibility boundaries. Matches leave as versioned selector records that any consumer can trust.

  • Bare structural patterns, an expression DSL, or Semgrep-style YAML rules – three explicit front doors, no guessing
  • Rust, Python, TypeScript, and Go core; HCL optional. The first executable slice covers Rust, Python, and TypeScript
  • Deterministic selector streams with spans, captures, and source digests – matches that survive the pipe
Read the query design