Weave documentation

Weave CLI

The released native commands for persistent nodes, DHT discovery and signed strands.

Install the complete workspace with joinweave. If you accepted the managed PATH entry, use weave; otherwise use ~/.weave/bin/weave, as below. @useweave/cli 0.1.0 also provides npx @useweave/cli@0.1.0 --help, but the launcher alone does not initialize or start a workspace.

Node lifecycle

~/.weave/bin/weave init --json
~/.weave/bin/weave node start --json
~/.weave/bin/weave node status --json
~/.weave/bin/weave doctor --json
~/.weave/bin/weave node logs --lines 50 --json
~/.weave/bin/weave node stop --json

init preserves an existing valid identity. start and stop use an owned installed launchd/systemd service when present; otherwise they manage the detached runtime. node run runs in the foreground and is the service entry point. Do not start a second foreground writer for an already running workspace.

--json and --config are global options and can appear before or after a subcommand. Native results include ok; failures have a nonzero exit status. A status response with running: false reports the stopped state, not connectivity.

Strand commands

~/.weave/bin/weave strand create --name hello-weave --json
printf '%s' 'Hello, Weave!' | ~/.weave/bin/weave strand append hello-weave --json
~/.weave/bin/weave strand read hello-weave --start 0 --length 1 --json
~/.weave/bin/weave strand list --json

create returns the strand's public writer_pubkey. Append accepts one positional text value, --file PATH, or stdin; each successful append adds one block. A remote pin has no writer secret and cannot append.

Local names and pin aliases are 1–128 characters: letters, numbers, dots, underscores and hyphens, beginning with a letter or number. Use the name returned by creation, not a DID, URL or filesystem path. A key cannot conflict with an existing local pin.

The running node accepts at most 256 KiB per appended block. Reads request at most 128 blocks and at most 256 KiB of aggregate block content per response. Use smaller ranges for larger blocks. UTF-8 content returns encoding: "utf8"; other bytes return hexadecimal data.

Discovery

~/.weave/bin/weave dht join --json
~/.weave/bin/weave dht peers --json
~/.weave/bin/weave dht stats --json
~/.weave/bin/weave dht announce hello-weave --json

join checks the running node's connected Kademlia peers; install/start the node first. announce publishes a provider announcement for a locally owned strand. It does not upload every block to the DHT.

On a receiver, replace the value with the producer's 64-hex writer public key:

WRITER_PUBKEY='REPLACE_WITH_THE_64_HEX_WRITER_PUBLIC_KEY'
~/.weave/bin/weave dht find hello-weave --writer-pubkey "$WRITER_PUBKEY" --wait-secs 30 --json
~/.weave/bin/weave strand replicate hello-weave --source-pubkey "$WRITER_PUBKEY" --sparse --blocks 0 --wait-secs 30 --json

find pins the key locally and returns authenticated provider records. It changes local state and does not itself download the strand's payloads. Replication success requires verified block reads; selected cached blocks can satisfy a resumed request. See sparse replication.

The persistent node owns its identity and network configuration. Per-command --agent/--org overrides and strand agent filters are rejected on this path. There is no weave login command.

Library reference

The full CLI command map retains source-oriented coverage of the other model, TUI and tool handlers. Their parser presence is separate from this release's verified install, node, DHT and strand flow. The Rust library catalog is not an npm SDK installation guide.

On this page