9/23/2026
Why Specola
Specola is a rule-based traffic router for developers. You describe in plain TOML which connections go direct, which are rejected, and which go through a proxy server you already run or are authorized to use. Specola then applies those rules to every connection on your machine — by domain, IP, port, or the process that opened it.
We build it first and foremost for developers running Omarchy and Arch Linux.
The problem
A developer laptop talks to a lot of networks at once:
git,cargo,npmanddocker pullneed the company proxy or a regional mirror;- the staging API is only reachable through a jump gateway;
- the browser, chat and music should stay direct;
- an internal tool should never leave the machine at all.
The usual answers do not fit well. HTTP_PROXY variables are ignored by half of your tools and
leak into shells where you did not want them. A system-wide VPN or TUN device routes everything the
same way. Per-tool proxy flags are scattered across a dozen config files.
What you actually want is one file that says this process, this domain, this network → that route, and a router that enforces it for every program — including the ones that ignore proxy settings.
What Specola is
Specola is two processes:
specola-core, written in C++20 on Asio coroutines. It owns listeners, rules, proxy groups, DNS and the transparent data plane. It runs headless, so the same profile works on a laptop, a dev VM or a build box.- A Qt Quick (QML) desktop UI that starts and monitors Core and shows every connection with the rule it matched. It talks to Core only through a local MessagePack RPC API.
On Linux, Core’s Enhanced Mode uses eBPF instead of a TUN device. Programs attached to the cgroup v2 hierarchy see every socket’s owning process and destination when it connects. Connections that match no rule keep their original socket and never reach user space; connections that a rule may claim are redirected to Core’s local listener, where the full rule list decides. See Per-process routing without TUN for how that works.
What Specola is not
Specola is software, not a network service. It does not include servers, IP addresses, bandwidth or an anonymity service. It routes your own machine’s traffic to destinations and proxies that you configure. The default profile is Direct-only.
Why Omarchy
Omarchy users already live in plain-text configuration: Hyprland bindings, Waybar modules, dotfiles in Git. A router that is configured the same way — one TOML file, a headless core you can bind to a key — fits that workflow instead of fighting it.
Arch’s kernel also ships with everything the eBPF backend needs: a current kernel, cgroup v2 and BTF. The Omarchy setup guide walks through the whole path, including a Waybar status module and a Hyprland keybinding you can add today.
Specola is an independent product. It is not affiliated with or endorsed by the Omarchy project.
Who it is for
- developers who need different routes for different tools, and want that to be declarative;
- people who debug networks and want to see which rule each connection matched;
- anyone who wants per-process routing on Linux without a TUN device.
If you just want one switch that sends everything through one server, a simpler tool will do.
What comes next
Things that work today: the Mixed HTTP/SOCKS5 listener, Direct / Global / Rule modes, proxies, proxy groups, rules on domain, IP, GeoIP, port and process, DNS with Fake-IP, and Linux eBPF Enhanced Mode.
On the roadmap for Omarchy:
- an official AUR package;
- a first-party Waybar module with mode switching;
- a UI theme that follows the active Omarchy theme;
- a Walker menu entry for quick mode and group switching;
- published, reproducible benchmarks against other routers.
Follow this blog for progress, and read the manual to get started.