Ze is an open-source configuration and protocol engine written in Go. The network operating system built on it speaks BGP, manages Linux network interfaces, and programs the forwarding table. Operators use a shared configuration model through an SSH CLI or a web editor.
Pre-release. Ze has not been released yet. Some features are incomplete or experimental, and APIs and configuration syntax can change. The feature inventory records their status. A lab is the right place to evaluate Ze before putting it on a live network.
I wrote ExaBGP, and its users are the people I had in mind while building Ze. The aim is to keep programmable routing and add control of the device around it, with one configuration for the protocols and the system they run on.
| To explore | Start with |
|---|---|
| A first BGP session | Quick Start |
| A network lab | netlab and containerlab |
| An existing ExaBGP deployment | Migration guide |
| A dedicated device or VM | Appliance guide |
Features depend on the build and configuration. The guides describe how to use each area, and the feature inventory distinguishes supported, experimental, and partial implementations.
| Area | Guides |
|---|---|
| Routing | BGP, route injection, OSPF, and RPKI validation |
| Linux networking | Interfaces, static routes, firewall, and IPsec |
| Configuration and operations | Configuration, CLI, command reference, and operations |
| Automation and visibility | Plugins, MCP, monitoring, and looking glass |
Development requires Go 1.27 or newer on Linux or macOS. Linux is the platform for the network operating system's kernel features.
git clone https://github.com/ze-software/ze.git
cd ze
./ze --helpOn a fresh checkout, the ./ze launcher builds the daemon before it runs the
command. It derives the feature tags from feature-gates.txt,
so there is no tag list to maintain by hand. Later invocations reuse the existing
binary.
The Quick Start guide covers credentials, an example configuration, and commands to start Ze and inspect its peers. The Ubuntu installation guide covers a systemd installation.
Subsystems have ze_<feature> build tags. A custom build can omit BGP or an
operator interface along with its registered schema. The
architecture guide explains the component boundaries,
and the feature manifest names the packages behind each tag.
The core is a protocol-independent supervisor. It manages subsystem lifecycles through a message bus, a configuration provider, and a plugin manager. Protocols and system features register themselves and contribute their own YANG modules.
Those modules form a shared configuration schema for validation and the editors. The Model Context Protocol (MCP) server derives tools from the running daemon's command catalog, so AI clients can discover its available commands.
Plugins can be compiled Go modules or separate processes. Compiled plugins
contribute their YANG to the daemon's configuration validator. External plugins
can expose a model through ze schema, but that model does not automatically
extend the daemon's validator.
The architecture overview describes the runtime and BGP wire design. The plugin development guide covers the SDK and process protocol.
ze exabgp migrate converts ExaBGP configuration files, and ze exabgp plugin
provides a bridge for existing process scripts. The
migration guide documents the syntax and API
differences to check when moving a deployment.
If you run ExaBGP, I would appreciate reports from your own configurations and process scripts. A report that shows what failed and what ExaBGP did with the same input gives me something concrete to fix. You can use the issue tracker or Discord.
The testing overview explains the unit, functional, fuzz, mutation, and chaos tests, plus Linux checks under QEMU. The interop guide describes scenarios against other implementations, including FRR, BIRD, and GoBGP.
The RFC requirement ledger publishes requirements and their test evidence, including gaps. These records help evaluate the current implementation. They do not replace deployment experience.
Ze is developed with AI coding assistants. I decide the architecture, the tradeoffs, and what the code must preserve. Tests and independent review are part of that process. I explain the reasoning in AI slop is the wrong test.
Bug reports and contributions are welcome through the contribution process. A Contributor License Agreement applies to contributions.
Ze is licensed under the GNU Affero General Public License v3.0.