NathanFlurry
Allows you to compile most C or Rust programs to run in it without modification. Also can run Claude Code, Codex, Pi, and OpenCode unmodified.
Working on polishing, security, and documentation so I can share an in-depth deep dive on HN.
We're taking a different approach of building the best actor primitive for mainstream languages and letting people build a thin AI layer on top. We did not set out out build for AI when we started it, it was a happy accident.
In our experience, most apps don't need cross-tenant queries outside of BI. For example, think about the apps you use on a daily basis: Linear, Slack, ChatGPT all fit well with an actor-per-workspace or actor-per-thread model.
To be clear, we're not trying to replace Postgres. We're focused on modern workloads like AI, realtime, and SaaS apps where per-tenant & per-agent databases are a natural fit.
Using SQLite for your per-tenant or per-agent databases has a lot of benefits:
- Compute + state: running the SQLite database embedded in the actor has performance benefits
- Security: solutions like RLS are a security nightmare, much easier to have peace of mind with full DB isolation per tenant
- Per-tenant isolation: important for SaaS platforms, better for security & performance
- Noisy neighbors: limits the blast radius of a noisy neighbor or bad query to a single tenant's database
- Enables different schemas for every tenant
- AI-generated backends: modern use cases often require AI-generated apps to have their own custom databases; this model makes that easy
A few other points of reference in the space:
- Cloudflare Durable Objects & Agents are built on this model, and much of Cloudflare's internal architecture is built on DO
- https://neon.com/use-cases/database-per-tenant
- https://turso.tech/multi-tenancy
- Val.town & Replit
> Better usage of resources
I'd be curious to hear more about what you mean by this.
> always allows a parent style agent do complex queries
Do you have a specific use case in mind where agents need to query other agents' data?
However, we are planning on building a query engine that can operate over multiple databases. One option we're considering is exposing Rivet SQLite as a DuckDB datasource: https://duckdb.org/docs/stable/data/data_sources
Show HN: SQLite for Rivet Actors – one database per agent, tenant, or document
https://github.com/rivet-dev/rivet
Hey HN! We posted Rivet Actors here previously [1] as an open-source alternative to Cloudflare Durable Objects.Today we've released SQLite storage for actors (Apache 2.0).Every actor gets its own SQLite database. This means you can have millions of independent databases: one for each agent, tenant, user, or document.Useful for:- AI agents: per-agent DB for message history, state, embeddings-...
- TUI (I prefer this for most programming)
- Web UI (negligible difference than VS Code)
- Mobile support (via web UI)
- TypeScript SDK to automate
Show HN: Gigacode – Use OpenCode's UI with Claude Code/Codex/Amp
https://github.com/rivet-dev/sandbox-agent/tree/main/gigacode
Gigacode is an experimental, just-for-fun project that makes OpenCode's TUI + web + SDK work with Claude Code, Codex, and Amp.It's not a fork of OpenCode. Instead, it implements the OpenCode protocol and just runs `opencode attach` to the server that converts API calls to the underlying agents.We build this to scratch our itch of being able to rapidly switch between coding agents based on the...
(Sprites.dev in the works already.)
Posted this morning an overview of the project: https://x.com/NathanFlurry/status/2018366627021291699
As you said – in terms of project goals, the biggest difference is:
- ACP seems to be focused on providing a universal API for the subset of features required for editors
- Sandbox Agent SDK is focused on automating agents, so aims to provide a much more comprehensive API coverage for niche agent-specific features
We maintain a feature coverage matrix (https://sandboxagent.dev/docs/session-transcript-schema#cove...) – it's early, much more coming soon.
Show HN: Sandbox Agent SDK – unified API for automating coding agents
https://github.com/rivet-dev/sandbox-agent
We’ve been working with automating coding agents in sandboxes as of late. It’s bewildering how poorly standardized and difficult to use each agent varies between each other.We open-sourced the Sandbox Agent SDK based on tools we built internally to solve 3 problems:1. Universal agent API: interact with any coding agent using the same API2. Running agents inside the sandbox: Agent Sandbox...
Hacked together an SF parks ranking system based on current weather
Actors: The Four Properties That Eliminate Complexity
WebSockets for Vercel Functions: How We Built It
It’s the only bit of the Cloudflare stack (afaik) that did not have an open-source alternative for the JS ecosystem. I built heavily with DO on another OSS project, but realized it was incredibly problematic that our customers couldn’t truly self-host.
Show HN: Vbare – a simple alternative to Protobuf for schema evolution
https://www.rivet.dev/blog/2025-09-24-vbare-simple-schema-evolution-with-maximum-performance
Hey HN – we’re sharing a tiny extension to BARE called VBARE that we’ve been using extensively to make schema evolution much cleaner & simpler.After our Protobuf schemas became a cluttered after numerous major changes, we evaluated many alternatives for better schema evolution - Cap'n Proto, FlatBuffers, Borsh, etc. - but none seemed that they’d make a noticable improvement.VBARE takes a...
The same on Fly Machines is $31.00 (performance-1x, varies by region). Fly Machines has the same sleeping functionality as Cloudflare.
Rivet Containers also has a similar price point of $29.40, but takes a different approach to sleeping (opts for optimizing coldstarts + autoscaling over snapshotting). (I work at Rivet)
(I work at Rivet)
If you're curious on the details, we've put a lot of work to make sure that there's as few moving parts as possible:
We have our own cloud VM-level autoscaler that's integrated with the core Rivet platofrm – no k8s or other orchestrators in between. You can see the meat of it here: https://github.com/rivet-gg/rivet/blob/335088d0e7b38be5d029d...
For example, Rivet has an API to dynamically spin up a cluster on demand: https://github.com/rivet-gg/rivet/blob/335088d0e7b38be5d029d...
Once you start the Rivet "seed" process with your API key, everything from there is automatic.
Therefore, self-hosted deployments usually look like one of:
- Plugging in your cloud API token in to Rivet for autoscaling (recommended)
- Fixed # of servers (hobbyist deployments that were manually set up, simple Terraform deployments, or bare metal)
- Running within Kubernetes (usually because it depends on existing services)
If you'll entertain my argument for a second:
The job of someone designing systems like this is to decide what are the correct primitives and invest in building a simple + flexible platform around those.
The original cloud primitives were VMs, block devices, LBs, and VPCs.
Kubernetes became popular because it standardized primitives (pods, PVCs, services, RBAC) that containerized applications needed.
Rivet's taking a different approach of investing in different three primitives based on how most organizations deploy their applications today:
- Stateless Functions (a la Fluid Compute)
- Stateful Workers (a la Cloudflare Durable Objects)
- Containers (a la Fly.io)
I fully expect to raise a few hackles claiming these are the "new primitives" for modern applications, but our experience shows it's solving real problems for real applications today.
Edit: Clarified "original cloud primitives"