← projects
Rivet / RivetOS

Rivet / RivetOS

Creator & Operator

2025 — present

6-node mesh · 96K+ messages · hybrid memory

RivetOSTypeScriptPostgreSQLpgvectorProxmoxClaude OpusGrokGeminiTelegramDiscordHome Assistant
6-node mesh (5 agents + datahub workers)
96,000+ messages in shared memory
Hybrid search: FTS + trigram + vector (RRF)
Claude Code, Grok Build, and Hermes harnesses

What is Rivet?

Rivet is my always-on engineering partner — not a chatbot session, but a collective of agents that share memory, tools, and a homelab fleet. The personality is consistent across models; the engine swaps underneath.

RivetOS is the runtime behind it — built from scratch as philbert440/rivetOS, not a fork of anything else. We left the bloat behind: a lean TypeScript monorepo focused on mesh deploys, hybrid memory, MCP tools, compaction workers, and provider-agnostic harnesses (Grok Build, Claude Code, Hermes on the desktop).

Mesh Architecture

The fleet runs on three Proxmox hosts (pve1, pve2, pve3) as unprivileged LXCs. A dedicated datahub node runs the memory compactor and embedding workers against shared Postgres; five agent nodes run rivetos.service with role-specific models and channels.

  • Opus — planning, architecture, deep reasoning
  • Grok — fast iteration, coding, creative work
  • Gemini — research and browser automation
  • Local — on-prem experiments and agentic tuning
  • Grok Build / Claude — dedicated build containers with full tool access

Updates roll out with rivetos update --mesh; health checks confirm 6/6 nodes online before we call a deploy done.

Hybrid Memory

Every harness reads the same conversation store. Messages are embedded, summarized into a DAG of branch/root summaries, and searched with a hybrid pipeline: full-text + trigram + vector ANN fused with reciprocal rank fusion, then a recency boost. Literal tokens (IPs, hostnames, error strings) survive because trigram mode catches what pure semantic search misses.

For Grok Build, capture pivoted from hook-only payloads to ingesting updates.jsonl — the authoritative session log — so assistant replies, tool output, and thinking chunks land in Postgres (PR #196). Hermes on the desktop got the same hybrid engine ported into Python for parity across harnesses.

Tools & Integrations

Rivet has Gmail and Calendar via CLI, GitHub for code and PRs, 1Password for secrets, Home Assistant for the house, web search, shell on mesh nodes, and RivetOS MCP tools for memory browse/search. Heartbeats check email, calendar, and infra; notable items surface on Telegram or Discord.

Discord voice uses xAI's realtime API for live conversations. Telegram voice notes are transcribed locally with Whisper. Image work delegates to Grok with reference-aware prompts. Cron and mesh manifests keep backups and deploys on a schedule.

Pipelines

Rivet isn't just reactive chat — there are recurring loops that turn work into shipped software, better agents, and public writing. A few of the main ones:

Build. Spec in Opus, implement in Grok Build (or a mesh delegate), review in Opus or a verifier subagent, then merge and mesh deploy. EM Kit, philtompkins.com, and RivetOS itself all ship through that loop — with Linear issues when we need to track parity gaps across harnesses.

Self-improvement. Compaction and embedding workers keep memory searchable; review feedback gets written back into project memory so the next session doesn't re-derive the same lessons. Harness fixes land before fine-tuning — training data only helps if the scaffold is honest. Skills, search tuning, and mesh health checks all feed this loop.

Memory → blog. Chronological walks through conversation summaries surface what actually happened — experiments, dead ends, things we built. That feeds site updates and a backlog of builder-journey posts (infrastructure wins, memory-system rabbit holes, homelab archaeology). The goal is to turn the lab notebook into something shareable without rewriting history by hand.

What's Next

Mesh manifest cleanup, migration baseline on the memory DB, stronger agentic evals on local 40B models, and deeper smart-home automation. The north star is the same: Rivet handles operational load so I can focus on product and security work at Tenable and the side projects that feed this lab.