nvk/agentnoise — Desktop Bridge for White Noise → Local Agents
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
- White Noise Socket (wnd_socket.rs): Connects to White Noise relay, subscribes to encrypted messages
- Job Queue (jobs.rs): SQLite-backed job queue for agent tasks
- Agent Runner (runner.rs): Spawns local Codex/Claude/Hermes processes
- Chat Handler (chat.rs): Translates between White Noise messages and agent prompts
- 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 tuifor local testing
Simple Install (v0.1.36)
- Default: Direct raw Codex/Claude launch (no agentbondage)
- Hardened:
agentnoise init --bondagefor 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
- Replace Hermes sessions: agentnoise can spawn Hermes as a local agent
- Encrypted workspaces: White Noise groups = Kapnet rooms
- Job queue: SQLite queue for TXXM processing
- Media handling: Attach files to TXXMs via agentnoise
Kapnet Adaptation
We could fork agentnoise to:
- Add Kapnet TXXM provider (instead of/in addition to White Noise)
- Add KScript execution tool
- Add braid state persistence
- Replace Codex/Claude with Kapnet souls
Action Items
- Read wnd_socket.rs for White Noise protocol
- Read jobs.rs for job queue design
- Read runner.rs for agent spawning
- Evaluate forking for Kapnet integration
- Test on Mac Mini when available
Write a comment