nvk/agentnoise — Desktop Bridge for White Noise → Local Agents

- **Source:** https://github.com/nvk/agentnoise - **License:** MIT Copyright 2026 nvk - **Language:** Rust 34 .rs source files, 8 test files, 12 docs

nvk/agentnoise — Desktop Bridge for White Noise → Local Agents

Metadata

  • Source: https://github.com/nvk/agentnoise
  • License: MIT (Copyright 2026 nvk)
  • Language: Rust (34 .rs source files, 8 test files, 12 docs)
  • Size: 1.6MB
  • Version: 0.1.36

Purpose

“Chat with local coding agents through White Noise.” Native desktop helper for using a phone running White Noise as the control surface for local Codex, Claude, and optional Hermes sessions.

Design Philosophy

  • Rust-first: Keeps Node/npm/bun out of the trusted bridge path
  • Lightweight: Everything else was too heavy, too slow, or too awkward
  • Simple workflow: Phone chat UI → White Noise → agentnoise bridge → local agents
  • Optional hardening: agentbondage.org for local policy boundary

Architecture

Source Structure

src/
  main.rs              — Entry point
  lib.rs               — Library root
  app.rs               — Application state
  auth.rs              — Authentication
  chat.rs              — Chat handling
  config.rs            — Configuration
  events.rs            — Event system
  jobs.rs              — Job queue
  local_sessions.rs    — Local session management
  paths.rs             — Path utilities
  progress.rs          — Progress tracking
  runner.rs            — Agent runner
  setup.rs             — Setup flow
  subscriptions.rs     — Nostr subscriptions
  wnd_socket.rs        — White Noise WebSocket
  worktrees.rs         — Worktree management
  doctor.rs            — Diagnostics
  approvals.rs         — Approval system

Key Components

  1. White Noise Socket (wnd_socket.rs): Connects to White Noise relay, subscribes to encrypted messages
  2. Job Queue (jobs.rs): SQLite-backed job queue for agent tasks
  3. Agent Runner (runner.rs): Spawns local Codex/Claude/Hermes processes
  4. Chat Handler (chat.rs): Translates between White Noise messages and agent prompts
  5. Local Sessions (local_sessions.rs): Manages multiple agent sessions

Transport/Worker Split (v0.1.28+)

  • Transport: agentnoise transport run — Keeps White Noise subscriptions alive, writes jobs to SQLite queue
  • Worker: agentnoise worker start — Reads jobs from queue, executes agents
  • Services: Homebrew, launchd, systemd, rc

Mobile Chat UX (v0.1.29+)

  • Phone-sent media saved to active workspace
  • Media attached to agent prompts
  • Supported: JPEG/PNG/GIF/WebP, MP4/WebM/MOV, MP3/OGG/M4A/WAV, PDF
  • Agent replies can upload media back to chat
  • agentnoise fake-phone tui for local testing

Simple Install (v0.1.36)

  • Default: Direct raw Codex/Claude launch (no agentbondage)
  • Hardened: agentnoise init --bondage for agentbondage policy boundary
  • Work-chat follow-ups carry same-chat/latest-job context

Relevance to Kapnet

As Mac Agent Bridge

agentnoise is THE bridge between White Noise (encrypted Nostr messaging) and local agents:

  • Phone → White Noise → agentnoise → local Codex/Claude/Hermes
  • This is exactly our use case: encrypted messaging → agent execution

Integration Points

  1. Replace Hermes sessions: agentnoise can spawn Hermes as a local agent
  2. Encrypted workspaces: White Noise groups = Kapnet rooms
  3. Job queue: SQLite queue for TXXM processing
  4. Media handling: Attach files to TXXMs via agentnoise

Kapnet Adaptation

We could fork agentnoise to:

  1. Add Kapnet TXXM provider (instead of/in addition to White Noise)
  2. Add KScript execution tool
  3. Add braid state persistence
  4. Replace Codex/Claude with Kapnet souls

Action Items

  1. Read wnd_socket.rs for White Noise protocol
  2. Read jobs.rs for job queue design
  3. Read runner.rs for agent spawning
  4. Evaluate forking for Kapnet integration
  5. Test on Mac Mini when available

Write a comment
No comments yet.