Release Notes for v0.74.0
New Feature: Agent Network
This release introduces Agent Network, a per-account LLM gateway that gives people and agents keyless, identity-based access to LLM APIs and internal resources over the tunnel. It is built on top of the existing reverse proxy and private services, so the transport is still NetBird’s WireGuard overlay and the identity model is still your IdP. Have a tunnel, get access; no tunnel, no access.
Agents point at a tunnel-only endpoint instead of the provider’s URL. NetBird holds the upstream provider key server-side, injects it per request, and ties every call to a real identity from your IdP. Client-supplied auth headers are stripped before the request is forwarded, so a hardcoded key never reaches the provider. The whole thing is default deny: nothing reaches a provider until a policy explicitly allows it.
Core capabilities:
- Keyless access to LLM APIs. No keys stored or shared on the client. The tunnel is the credential.
- Provider catalog. First-party APIs (OpenAI, Anthropic, Azure OpenAI, AWS Bedrock, Google Vertex AI, Mistral), AI gateways (LiteLLM Proxy, Portkey, Bifrost, Cloudflare AI Gateway, Vercel AI Gateway, OpenRouter), and any custom/self-hosted OpenAI-compatible endpoint (Ollama, vLLM, local GPU hosts).
- Policies. A policy connects a Source Group (users or agent devices from your IdP) to one or more providers.
- Limits. Token caps and budget (USD) caps per user and per group, plus account-wide Global Limits that can only tighten a policy, never loosen it.
- Guardrails. Model allowlist, optional prompt capture, and PII redaction on captured logs.
- Usage and access logs. Per-request accounting (identity, provider, model, tokens, cost) plus a full access log (method, path, status, duration, and prompt/completion when capture is on), with denied-request reasons, 7-90 day or indefinite retention, and filtering by user or group.
- Agentic access to internal resources. Databases, internal APIs, and self-hosted models reachable over peer-to-peer WireGuard, no proxy in the path, governed by the same identities and policies.
- Bring your own gateway. When forwarding to LiteLLM, NetBird passes the calling identity along by writing IdP groups into
metadata.tagsand the identity into thex-litellm-end-user-idheader.
The dashboard ships copy-paste Agent Config for Claude Code, Codex, the OpenAI SDK, and cURL, with the endpoint pre-filled and no API key involved.
Enabling Agent Network
Agent Network ships in the same backend. If you already run NetBird, set an environment variable on your dashboard and it appears in the left-hand menu:
# Enable alongside the rest of the platform
NETBIRD_AGENT_NETWORK_ENABLED=true
# Or run a stripped-down, Agent-Network-only dashboard
NETBIRD_AGENT_NETWORK_ONLY=true
For a fresh, minimal deployment focused on the LLM and agentic-access use case:
curl -fsSL https://pkgs.netbird.io/getting-started.sh | NETBIRD_AGENT_NETWORK=true bash
Note: Agent Network is self-hosted only for now; NetBird Cloud support is coming.
Learn more:
- Overview: What is NetBird Agent Network? - NetBird Docs
- Quickstart: NetBird Agent Network Quickstart - NetBird Docs
- How it works: How Agent Network Works - NetBird Docs
- Providers: Providers - NetBird Docs
What’s Changed
Agent Network
- Added the per-account LLM gateway (Agent Network): store, manager, policy engine, provider catalog, and management HTTP + proxy gRPC surfaces, with the reverse-proxy middleware chain handling limit checks, cost metering, guardrails, identity injection, and response parsing.
#6555 - Added agent-network telemetry metrics.
#6561 - Added management-controlled client metrics push.
[management, client] Add management-controlled client metrics push by pappz · Pull Request #5886 · netbirdio/netbird · GitHub - Added per-provider skip_tls_verification for Agent Network.
[management,proxy] Add per-provider skip_tls_verification for agent-network by mlsmaycon · Pull Request #6630 · netbirdio/netbird · GitHub - Added Agent Network preset for self-hosted deployments.
[self-hosted] Add agent-network preset with dedicated configurations by mlsmaycon · Pull Request #6569 · netbirdio/netbird · GitHub - Added Agent Network documentation and banner updates.
[misc] Add Agent-Network readme by braginini · Pull Request #6562 · netbirdio/netbird · GitHub
[Doc] Point Agent Network banner to netbird.ai by braginini · Pull Request #6564 · netbirdio/netbird · GitHub - Added Agent Network nightly/manual E2E workflows.
[misc] Run agent-network e2e nightly + on manual dispatch by mlsmaycon · Pull Request #6629 · netbirdio/netbird · GitHub
Client Improvements
- Client reliability, lazy connection, DNS, sync, health, profile, SSH and metrics improvements.
[client] Eliminate packet loss during lazy connections. by pappz · Pull Request #6355 · netbirdio/netbird · GitHub
[client] use dedicated IsHealthy RPC for management health check instead of GetServerKey by riccardomanfrin · Pull Request #6421 · netbirdio/netbird · GitHub
https://github.com/netbirdio/netbird/pull/6425
[client] Forward non-address DNS record types through route forwarders by lixmal · Pull Request #6455 · netbirdio/netbird · GitHub
[client] Skip firewall ruleset rebuild when config is unchanged by pappz · Pull Request #6508 · netbirdio/netbird · GitHub
[client] bound system info / posture-check gathering with a timeout to prevent sync-loop freeze by riccardomanfrin · Pull Request #6512 · netbirdio/netbird · GitHub
[client] Fix empty profile handle regression in debug config by riccardomanfrin · Pull Request #6514 · netbirdio/netbird · GitHub
[client] Improve network addresses filter by pappz · Pull Request #6515 · netbirdio/netbird · GitHub
[client] Skip re-resolving cached management cache domains by lixmal · Pull Request #6518 · netbirdio/netbird · GitHub
[client] Keep signal stream alive while receive loop is blocked on worker handoff by lixmal · Pull Request #6530 · netbirdio/netbird · GitHub
[client] add per-phase timing metrics for sync processing by riccardomanfrin · Pull Request #6533 · netbirdio/netbird · GitHub
[client] Suppress Quick Actions popup when DisableAutoConnect=true by riccardomanfrin · Pull Request #6542 · netbirdio/netbird · GitHub
[client] Fix blocked status lock via relay manager path by pappz · Pull Request #6547 · netbirdio/netbird · GitHub
[client] fix nil pointer panic when applying SSH server setting to an existing config by Adel-Ayoub · Pull Request #6556 · netbirdio/netbird · GitHub
[client] lower ICE handshake offer/answer log level to debug by riccardomanfrin · Pull Request #6565 · netbirdio/netbird · GitHub
[client] Reinject captured first packet on lazy connection activation by lixmal · Pull Request #6572 · netbirdio/netbird · GitHub
[client] Wait for signal receive watchdog to stop before reconnect by pappz · Pull Request #6574 · netbirdio/netbird · GitHub
[client] report management unhealthy while Sync stream is failing by pappz · Pull Request #6575 · netbirdio/netbird · GitHub
[signal] Refresh receive liveness when worker handoff drains by lixmal · Pull Request #6594 · netbirdio/netbird · GitHub
[client] raise duration validation limit to 24 hours by pappz · Pull Request #6598 · netbirdio/netbird · GitHub
[client] Fix pointer comparisons in profile config apply by pappz · Pull Request #6622 · netbirdio/netbird · GitHub
[client] Fix race between WG watcher initial handshake read and endpoint creation by pappz · Pull Request #6626 · netbirdio/netbird · GitHub
Management Improvements
- Posture check, peer lifecycle, JWT sync, lazy connections and validation improvements.
[management] Optimize affected posture checks and add logs by mlsmaycon · Pull Request #6522 · netbirdio/netbird · GitHub
[management] Reschedule inactivity expiration when a peer disconnects by bcmmbaga · Pull Request #6523 · netbirdio/netbird · GitHub
[management] validate posture checks on meta change before account update by pascal-fischer · Pull Request #6527 · netbirdio/netbird · GitHub
[management] less strict metaHash when blocking peers by pascal-fischer · Pull Request #6531 · netbirdio/netbird · GitHub
[management] simplify affected peers ignore disabled by pascal-fischer · Pull Request #6540 · netbirdio/netbird · GitHub
[management] move some logs to trace by pascal-fischer · Pull Request #6541 · netbirdio/netbird · GitHub
[management] bring back client version check on login filter hash by pascal-fischer · Pull Request #6552 · netbirdio/netbird · GitHub
[management] Enable lazy connections by default on new accounts by mlsmaycon · Pull Request #6571 · netbirdio/netbird · GitHub
[management] Add peer expiration reason to activity meta by bcmmbaga · Pull Request #6619 · netbirdio/netbird · GitHub
[management] detach JWT group sync write from request cancellation by den-dw · Pull Request #6621 · netbirdio/netbird · GitHub
Infrastructure & Miscellaneous
- Workflow, documentation, release and enterprise script updates.
[infrastructure] small gh workflow fixes by dmitri-netbird · Pull Request #6546 · netbirdio/netbird · GitHub
[misc] Update careers page link by mlsmaycon · Pull Request #6538 · netbirdio/netbird · GitHub
[misc] Bump the actions group across 1 directory with 4 updates by dependabot[bot] · Pull Request #6550 · netbirdio/netbird · GitHub
[management,proxy,client] 0.74.0 version by mlsmaycon · Pull Request #6563 · netbirdio/netbird · GitHub
[misc] Require on-premise EULA acceptance in enterprise scripts by bcmmbaga · Pull Request #6596 · netbirdio/netbird · GitHub
New Contributors
- @dmitri-netbird
- @Adel-Ayoub
- @den-dw
Full Changelog: Comparing v0.73.2...v0.74.0 · netbirdio/netbird · GitHub