gini-toolkit — gBuilder
The GINI desktop app: a visual builder and live runtime for computer networking and cloud computing experiments, with an AI layer that can build, inspect and explain topologies.
Drag routers, switches, machines, VPCs and Kubernetes elements onto a canvas, press Run, and they come up as real containers you can open a shell into.
Install
pipx install gini-toolkit # `pip install gini-toolkit` works too
gbuilder
PySide6 and QtWebEngine come with it. There is no setup command to run — gBuilder checks what the machine needs the first time it launches and offers to install the container runtime and pull the images. Demo mode works before any of that exists, so the app is useful the moment it opens.
Requires Python 3.10+ and, for live Run, a container runtime (Docker, Colima or Podman).
What you get
- Canvas and palette — networking elements (routers, switches, OVS, machines, taps) alongside cloud ones (VPCs, subnets, load balancers, Kubernetes pods, serverless functions).
- Live Run — each element is a real container. Double-click a machine for a shell, a router for the Router Lab, a service for its web dashboard.
- SDN and NFV — a real OpenFlow data plane with a POX controller, and a flow-table view of what the switch is actually doing.
- xv6 — boot and modify a real RISC-V teaching kernel from inside a topology.
- Ask GINI — an assistant grounded in the topology on your canvas. Better with a local Ollama model; the deterministic modes work without one.
- Proof of work — record a lab session as a tamper-evident chain and hand in a receipt, for courses using the GINI Teaching Center.
From source
git clone https://github.com/citelab/gini && cd gini
./scripts/dev.sh install # editable installs of gini-core, gini-toolkit, gini-teaching-center
gbuilder
Use the script rather than pip install -e ./frontend-ng on its own: gini is a namespace
package split across gini-core (the domain model and proof format) and this distribution, and
installing one alone leaves half the tree unimportable — with an error that names a missing module
rather than a missing install.
QT_QPA_PLATFORM=offscreen python -m gini --selftest # headless smoke test
./scripts/dev.sh test # the suite
Layout
src/gini/
__main__.py the `gbuilder` entrypoint
ui/ canvas, palette, inspector, labs, theme system
services/ persistence, runtime, Teaching Center client, outbox
runtime/ container orchestration
agent/ programmatic API + MCP server, so external agents can drive GINI
setup/ first-run bootstrap (runtime detection, image pulls)
The domain model lives in the separate gini-core distribution, under gini.domain.
License & links
Part of the GINI project — https://github.com/citelab/gini
Release files for gini-toolkit 6.11.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gini_toolkit-6.11.0.tar.gz | 14.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gini_toolkit-6.11.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.7 MB
Release files / gini_toolkit-6.11.0.tar.gz
| Download URL | gini_toolkit-6.11.0.tar.gz |
|---|---|
| Size | 14.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d491b0cc8b6c497d412ab4b398f64dc12b9e0e253f60b1abd67cb75c7f67e264
|
|
BLAKE2b-256 checksum How to use checksums |
f6d6d7442d26c994419ca92494893fd9ec436560787f024d17642548f72236e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.
Transparency logRelease files / gini_toolkit-6.11.0-py3-none-any.whl
| Download URL | gini_toolkit-6.11.0-py3-none-any.whl |
|---|---|
| Size | 4.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6ebaab96a176357559f82751e1e087e511c4b68490eaebcaa6299e1694519807
|
|
BLAKE2b-256 checksum How to use checksums |
09fb3c8f5c431eb179efd923ea0cfb0dddccb61691c5dbe527488442fead8807
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.
Transparency log