Weave

June 16, 2026 ยท View on GitHub

Weave is a self-hosted, single-user, web-based frontend to view and edit zk notes. It is lightweight, quick and opinionated. It features

  • a single binary with a built-in zk re-implementation (no zk binary needed)
  • fuzzy search across all note titles and tags
  • cross-linking and note editing
  • syntax highlighting of code blocks
  • real-time file watching (external edits show up immediately)
  • light and dark mode support
  • focus mode

DEMO

Building from source

You need a Rust toolchain (1.93+).

git clone https://github.com/matze/weave.git
cd weave
cargo build --release

The binary ends up in target/release/weave.

Quickstart

Point Weave at a zk notebook directory (here we use the demo notebook), set a password and run the application from source with:

ZK_NOTEBOOK_DIR="$(pwd)/notebook" WEAVE_PASSWORD="secret" cargo run --release

This starts the server on http://localhost:8000. A demo instance can be accessed at https://weave.bloerg.net.

Environment variables

VariableDescriptionDefault
ZK_NOTEBOOK_DIRPath to the zk notebook directory(required)
WEAVE_PASSWORDPassword for signing in(empty, login disabled)
WEAVE_PORTPort the server listens on8000
WEAVE_HOSTIP address the server listens on127.0.0.1
WEAVE_ATTACHMENTSSubdirectory inside ZK_NOTEBOOK_DIR to serve as static files (e.g. media)(disabled)

License

MIT