Agent IO
banner
agent.io
Agent IO
@agent.io
Fetching and serving by @timburks.me
Pinned
Agent IO @agent.io · Jun 3
IO is a new network proxy that makes application development easier and application deployments more secure. agent.io/posts/io
Your Friendly Neighborhood Network Proxy
Meet the proxy you’ve always wanted.
agent.io
Envoy requires libc, so it doesn't make sense for IO to make performance sacrifices to avoid depending on libc itself. That lets us build IO with CGO and use the native SQLite library, which has big performance benefits. agent.io/decisions/cgo/
Use CGO, libc, and pure SQLite.
Since Envoy will always depend on libc, it seems reasonable for IO to also.
agent.io
November 10, 2025 at 8:49 PM
This week IO's configuration language got a revamp and a reference agent.io/io/config/
IO Configuration Reference
Here’s how you can configure IO using its HCL-based configuration language.
agent.io
October 31, 2025 at 3:37 PM
Tempted by Alpine Linux: agent.io/decisions/al...
Hold on Alpine Linux
I love the ideas behind this lightweight distribution, but it’s challenging in practice.
agent.io
October 20, 2025 at 6:44 PM
In September we created Sidecar, a new Go gRPC implementation that focuses on clarity, simplicity, and security for apps that run with sidecars. It's now how IO does gRPC. Here's a discussion of our decision to switch. agent.io/decisions/si...
Build and Use Sidecar
Replace Connect with a new, simple, transparent Go gRPC library.
agent.io
October 3, 2025 at 7:54 PM
Is it an SDK... or a monster infesting your app? agent.io/posts/sdks/
Out-of-Process SDKs
Do you really want to put that vendor code in your app?
agent.io
October 3, 2025 at 2:19 AM
Reposted by Agent IO
If you use Go, gRPC, and sidecar proxies, I wrote this for you github.com/agentio/sidecar
GitHub - agentio/sidecar: Baggage-free gRPC for Go.
Baggage-free gRPC for Go. . Contribute to agentio/sidecar development by creating an account on GitHub.
github.com
September 24, 2025 at 3:19 PM
Echo is a simple gRPC service that we wrote to test and experiment with gRPC and ConnectRPC agent.io/posts/echo/
What can we learn with a simple gRPC service?
Exploring gRPC and connectrpc with a simple echo service.
agent.io
September 9, 2025 at 4:09 PM
How IO uses gRPC: agent.io/posts/grpc/
How IO runs on gRPC
IO doesn’t just manage gRPC APIs, gRPC makes IO go.
agent.io
August 25, 2025 at 4:53 PM
IO was created to work with a set of API management APIs from Google called Service Infrastructure, but now we think we've outgrown it. agent.io/decisions/dr...
Drop Service Infrastructure
Remove integration with Google’s Service Infrastructure APIs.
agent.io
August 20, 2025 at 6:00 PM
What's it like to run an application with Nomad and IO? Here's an example with bonus info about gRPC: agent.io/posts/memos/
These are my Memos on IO
Here’s how I self-host a gRPC-based web application with IO.
agent.io
August 7, 2025 at 12:02 AM
Here's a practical benefit of our exploration of @hashicorp.com's Nomad and Vault: all of the configuration for this Nomad-hosted ATProto PDS is now read from secrets in Vault.
August 1, 2025 at 4:32 AM
I'm getting more and more hooked on Nomad. With the raw_exec driver, I can run pretty much anything on my Nomad-running laptop. Here's how I use it to automatically unseal Vault. agent.io/posts/laptop...
Nomad+Vault to Go
How I set up my Ubuntu laptops to run Nomad and Vault.
agent.io
July 31, 2025 at 5:49 PM
"The caller never sees this secret." IO can read and apply API keys so that applications can securely use secrets without ever directly possessing them. agent.io/posts/vault
Let IO Handle your Vault Secrets
If you’re protecting your secrets with Vault, why are you handing them out to your applications? Let IO handle them instead.
agent.io
July 30, 2025 at 7:26 PM
Here's IO using an API key that it read from Vault using its Nomad workload identity.
July 29, 2025 at 12:57 AM
We've been working a lot with HashiCorp's Nomad and Vault. Here's an easy way to run them both on an Ubuntu laptop. agent.io/posts/laptop...
Nomad+Vault to Go
How I set up my Ubuntu laptops to run Nomad and Vault.
agent.io
July 26, 2025 at 8:50 PM
Our preferred JWx library is @lestrrat.bsky.social‬'s lestrrat-go/jwx agent.io/decisions/jwt/
Use one JWT library
Use github.com/lestrrat-go/jwx/v3 for all JWT operations.
agent.io
July 22, 2025 at 2:25 PM
A more general idea behind "No SDKs" and other design decisions is that we work to keep the number of third-party dependencies low and their quality high. agent.io/decisions/de...
Minimize Dependencies
Keep third-party dependencies at a minimum.
agent.io
July 22, 2025 at 2:19 PM
Finally (for now), we've been picky about limiting dependencies and controlling the network connections that IO makes. This seems worth noting as a decision, i.e. "No SDKs". agent.io/decisions/sd...
No SDKs
No third-party SDKs are used by IO to call networked APIs.
agent.io
July 10, 2025 at 1:53 AM
Now we have a small fleet of droplets running Nomad and IO to use for testing and demos. We can manage them all over SSH, and quickly went from bash scripts to a small Go tool that can do things like check versions and trigger restarts. agent.io/decisions/fl...
Use a Custom Fleet Manager
Manage node configurations with Go and ssh.
agent.io
July 10, 2025 at 1:50 AM
When we initially thought of adding analytics to the preview, we added a small custom API for sending them. But a little bit of investigation led to Open Telemetry, which we're using in a very basic and direct way (with no SDKs). agent.io/decisions/ot...
Use Open Telemetry
Use Open Telemetry and Grafana for metrics, logging, and tracing.
agent.io
July 10, 2025 at 1:47 AM
Once we had images on DockerHub, we started getting warnings about security vulnerabilities in the standard Envoy releases that we were using as base images. This led us to switch to the Envoy "distroless" images that are published by a team at Google. agent.io/decisions/di...
Use Distroless Envoy images
Reduce dependencies, vulnerabilites, and image size.
agent.io
July 10, 2025 at 1:44 AM
At this point, the realization that "we've made so many decisions" forced me to stop, come up with a structure, and put as many past decisions that I could think of in it. agent.io/decisions/re...
Record Decisions
Keep a record of significant decisions that have been made or are in progress.
agent.io
July 10, 2025 at 1:42 AM
The preview is based on IO Docker images, and setting up a paid DockerHub account seemed to be the best way to directly manage these and other images that we wanted to publish. agent.io/decisions/do...
Use DockerHub
Use DockerHub for container distribution.
agent.io
July 10, 2025 at 1:40 AM
Adding SSH support made it clear that it would be easy to add SFTP/SCP support, which has been a great way to read and write configuration of remote IOs. More uses are coming. agent.io/decisions/scp/
Use SCP and SFTP
Use SCP and SFTP to configure and observe IO.
agent.io
July 10, 2025 at 1:36 AM
Honestly, THIS IS SO COOL. As soon as we discovered that we could use Charm's wish package to SSH into remote running IOs, we had to do it. agent.io/decisions/ssh/
Use SSH to connect to IO
Use SSH to make the IO TUI available to remote users.
agent.io
July 10, 2025 at 1:34 AM