Installing

How do I install Gubernaut for Python?

Run pip install gubernaut-sdk==1.0.0, launch the local proxy in front of the upstream you already call, then set openai.base_url = "http://localhost:8000/v1". Nothing else in the application changes, and every turn from that point passes the controller.

Python quickstart

How do I install it for Node or ElizaOS?

Run npm install @gubernaut/plugin-gcc@1.0.0 and add gccPlugin to the plugins array of your ElizaOS character. Agents that are not ElizaOS can skip the plugin entirely and point OPENAI_BASE_URL at the local proxy instead.

Web3 and Node quickstart

How do I use the Rust or WebAssembly core?

Run cargo add gcc-core@1.0.0 to get the deciding core with no proxy and no network, a state machine you call directly. The same crate compiles to WebAssembly and runs at roughly ~125 ns per tick inside Cloudflare workerd.

Rust and WASM quickstart

What is the one-line change?

One configuration line is the whole integration: openai.base_url = "http://localhost:8000/v1". 5/5 frameworks were verified adopting exactly that way from the published packages, so no wrapper class, decorator or callback handler is required.

Source: HARDTEST v1.0 release gates, 2026-07-24.

Which attribute do I set, base_url or api_base?

Set base_url. The pre-v1 openai.api_base attribute is ignored silently by current OpenAI SDKs, so a client configured that way sends its traffic straight to the upstream ungoverned and nothing errors to warn you.

Which port does the proxy listen on?

The proxy listens on port 8000 by default, which makes the client base URL http://localhost:8000/v1. Changing the port is a configuration value, and the client base URL has to move with it or requests bypass the governor entirely.

Compatibility

Which frameworks are supported?

5/5 frameworks were verified end to end from the published wheel and tarball: OpenAI SDK, LangChain, LlamaIndex, Microsoft AutoGen, ElizaOS. All five adopt in one line, hard-stop a loop, and fail closed on a dead proxy.

Source: HARDTEST v1.0 release gates, 2026-07-24.

Does it work with upstreams other than OpenAI?

Gubernaut speaks the OpenAI chat-completions protocol, so any upstream that speaks it can sit behind the proxy. The receipts battery ran across OpenAI, OpenRouter and Gemini endpoints, covering 7 model families.

Source: Pre-registered receipts benchmark, 2026-07-19. Scored output of harness/report.py.

Can I run the controller at the edge?

The Rust core compiles to WebAssembly and runs at roughly ~125 ns per tick inside Cloudflare workerd, with 200 ns p99 measured on the identical binary in a Node worker. A 10,000-tick soak was bit-exact against the reference with flat memory and no latency degradation.

Source: HARDTEST v1.0, 2026-07-24. Cloudflare workerd and Node worker, identical wasm.

Do the Rust and Python cores agree?

The compiled Rust core reproduces the Python controller bit-exactly. The repository ships the golden traces, so parity is reproducible locally rather than taken on trust, and the WebAssembly build was checked against those same traces across three JavaScript runtimes.

Source: HARDTEST v1.0 release gates, 2026-07-24.

Operating it

How much latency does the proxy add?

End-to-end overhead of the governed proxy measured p50 1.2 ms and p99 2.4 ms. Against a local mock upstream the added time was p50 0.43 ms and p95 0.92 ms, and one controller tick on its own is p99 2.8 µs as an in-process microbenchmark over 100,000 iterations.

Source: Bench run 2026-07-18, latency_bench.py, Windows 11 AMD64, Python 3.14.5.

Does Gubernaut phone home?

Gubernaut reports nothing to Gubernaut Research. The proxy runs on your machine under Apache-2.0, needs no account and no key of ours, and the only outbound request it makes is the upstream call your agent was already making.

What licence is the SDK under?

The SDK is Apache-2.0 across all three packages, which permits commercial use, modification and redistribution with attribution, and carries a patent grant. Research artefacts are licensed separately under CC-BY-4.0, so the paper and the data have their own terms.

Apache-2.0 text

Which version is current, and where is the changelog?

Version 1.0.0 is current on PyPI, npm and crates.io. Release notes and the gates each release passed are listed on the releases page of this site, and the full source history is public on GitHub.

Version history

Last reviewed 2026-08-02 · paper arXiv 2607.24339, DOI 10.5281/zenodo.21303518