I/O Mesh counts usage locally. The usage view reads your local store. The service has no built-in destination; every destination is set by the operator.
The boundary
Draw a box around your network.
Inside the box:
- I/O Mesh, self-hosted, deployed where you choose. It is not a proxy and can sit behind an API proxy you already run.
- Your agent harness, which asks I/O Mesh before a tool runs.
- The store, where audit records and usage counts live.
Crossing the box:
- Nothing, by default, for usage.
- An optional customer feed URL, if you set one. You pick the destination. You can leave it unset.
There is no vendor endpoint in that picture.
How usage counting works
Each decision writes one audit record to your store. Usage is counted from what is already there. When you look at usage, I/O Mesh reads the local store and reports on it. It does not package that count and ship it somewhere.
That is the whole mechanism. No background reporter, no batch upload, no "anonymized" metrics stream to explain to your security team.
The optional feed URL
Some teams want usage numbers in their own systems: a cost dashboard, an internal chargeback report, a data warehouse. That is what the feed URL is for.
- It is off unless you configure it.
- It points where you point it.
- It is one of several outbound settings. None has a built-in destination; every destination is set by the operator.
If your policy is "nothing leaves," leave it unset and check the other outbound settings on the security page. If your policy is "only to our own systems," point it at your own system.
What to check during review
Do not take this on trust. Self-hosted claims are easy to test.
- Egress rules. Run I/O Mesh with outbound blocked except for what your own deployment needs, such as your IdP. Usage reporting does not depend on reaching the vendor, because it does not try to.
- Configuration. Confirm the feed URL is unset, or set to a destination you own.
- Network logs. Watch outbound traffic from the I/O Mesh host for a normal working day. Usage-related traffic should be zero unless you set the feed URL.
That is a better answer for procurement than a paragraph in a contract. They can watch the network.
Why this matters beyond procurement
Usage data is not as harmless as it sounds. Decision counts by caller, by time of day, by tool, describe how your organization uses agents. In aggregate it can show which teams are automating what, and when. Keeping that in your own store keeps it under your own access controls and retention policy.
It also keeps audit evidence in one place. The same store that holds decision records holds the counts. Export bundles verify offline with the auditor public key, so even evidence you choose to share does not need a vendor in the loop.
Questions for any self-hosted vendor
- What leaves our network, and when?
- Can we turn it off without breaking the product?
- Where does it go, and who chose that destination?
- Can we verify the answer from network logs?
For I/O Mesh v1 usage, the answers are: nothing by default, yes, wherever you point the feed URL, and yes.
I/O Mesh runs in your own environment. Learn more at iome.sh, or email hello@iome.sh to talk with us about Enterprise.