openfuse 0.3.12

The file protocol for AI agent context — sync, encrypt, sign
openfuse-0.3.12 is not a library.

openfuse (Rust)

Native Rust implementation of the openfuse CLI — same commands, same file format, same mesh protocol as the TypeScript version.

Install

cargo install --path .
# Binary at: target/release/openfuse (~5MB, no runtime needed)

Usage

# Initialize a context store
openfuse init --name my-agent

# Status
openfuse status

# Context
openfuse context
openfuse context --append "## Update\nDone."

# Encrypted messaging
openfuse inbox send bob "hello, encrypted!"
openfuse inbox list

# Key management (GPG-style)
openfuse key show
openfuse key list
openfuse key import wisp ./wisp.key --encryption-key "age1..." --address "wisp@alice.local"
openfuse key trust wisp
openfuse key export

# Sync (HTTP for WAN, rsync/SSH for LAN)
openfuse peer add ssh://alice.local:/home/agent/ctx --name wisp
openfuse sync

# Registry (DNS for agents)
openfuse register --endpoint ssh://alice.local:/ctx
openfuse discover wearethecompute
openfuse send wearethecompute "hello from the mesh"

# Key lifecycle
openfuse revoke    # permanently invalidate your key
openfuse rotate    # swap to a new keypair

# Watch for messages
openfuse watch

# Share files
openfuse share ./report.pdf

Features

Full parity with the TypeScript SDK:

  • age encryption — X25519 + ChaCha20-Poly1305, encrypt-then-sign
  • Ed25519 signing — every message cryptographically signed
  • GPG-style keyring — import, trust, untrust, export, fingerprints
  • Sync — HTTP (WAN) + rsync/SSH (LAN), uses ~/.ssh/config aliases
  • Registry — register, discover, send via public registry
  • Key revocation + rotation — signed lifecycle management
  • Update checker — warns on status if newer version available

Key format

Raw ed25519 bytes as hex strings. Same format as the TypeScript SDK — keys are cross-compatible.

.keys/
  private.key   — 64 hex chars (32 bytes ed25519 signing key)
  public.key    — 64 hex chars (32 bytes ed25519 verifying key)
  age.key       — AGE-SECRET-KEY-... (age identity)
  age.pub       — age1... (age recipient)