agk — app-gui-kit Python server SDK
A small framework for building local, single-user GUIs for simulation / agent
applications. One AgkApp gives you a Flask server implementing the
app-gui-kit protocol, and the bundled frontend kit (framework-less Web
Components) gives you a ready-made shell — composer, streaming task log, and
pluggable result viewers (glTF / STL / FEM mesh / 2D fields / WebGPU / media /
cards / markdown / deck).
from agk import AgkApp
def runner(req, ctx):
ctx.emit.task("t1", "running", title="Analyze")
ctx.emit.text("working…")
if req.get("options", {}).get("step"):
ctx.gate("Proceed?") # human-in-the-loop gate
ctx.emit.artifact("gltf", url="/artifact/result.glb")
ctx.emit.task("t1", "done")
ctx.emit.done(summary="finished")
AgkApp("My Agent App", runner, capabilities=("step",)).run()
<!-- index.html — zero build step -->
<link rel="stylesheet" href="/agk/agk.css">
<script type="module" src="/agk/agk.js"></script>
<script type="module" src="/agk/agk-viewer-gltf.js"></script>
<agk-shell app="My Agent App"></agk-shell>
What AgkApp provides
POST /stream— SSE event streaming (single-flight), plus a polling transport for clients that cannot use SSEPOST /cancel/POST /reset/POST /intervene(HITL gates)GET /artifact/<path>(traversal-safe) andPOST /uploadGET /agk/<path>— serves the bundled frontend kit/alive+/byewindow-lifecycle watchdog (auto-exit when the tab closes)/agent/*remote-job queue for headless (LLM) driving/voice_status+/transcribewith a pluggable transcriber
Scaffolding
agk new my-sim-app --viewer field2d # Python app
Notes
- The protocol, endpoints, design tokens and viewer interface are specified in
the app-gui-kit repository (
spec/). - The bundled frontend (
agk/static/) includes three.js (MIT, © Three.js Authors); its license banner is retained in the bundle.
Release files for agk 0.41.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 | |
|---|---|---|---|
| agk-0.41.0.tar.gz | 1.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agk-0.41.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.6 MB
Release files / agk-0.41.0.tar.gz
| Download URL | agk-0.41.0.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2bd238fb8b41f004d8777fad83aa6d6a28574e7db0d29983050631d81339902e
|
|
BLAKE2b-256 checksum How to use checksums |
e61b07683691e8114ea67f7fc63b05fb198f52b85958758b329e03c161c43645
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.10
|
Release files / agk-0.41.0-py3-none-any.whl
| Download URL | agk-0.41.0-py3-none-any.whl |
|---|---|
| Size | 1.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4f2f03429702084b6de125f0b7d4ed39872806eeea636936129f00416d23024b
|
|
BLAKE2b-256 checksum How to use checksums |
c2bd654b7946cb65c6dd41f4305277cd739b1fddea2a55c9e2c8971d1789b81d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.10
|