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.42.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.42.0.tar.gz | 1.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agk-0.42.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.7 MB
Release files / agk-0.42.0.tar.gz
| Download URL | agk-0.42.0.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2531db845f545d67fef0855dfdd3de6e167358fd70ec33d9237fbbc31414c759
|
|
BLAKE2b-256 checksum How to use checksums |
ace9989d04872c62a05a47e9766728b0102e19f800eb6a49db509d6e0ff74103
|
| 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.42.0-py3-none-any.whl
| Download URL | agk-0.42.0-py3-none-any.whl |
|---|---|
| Size | 1.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4cc3eeeae2b988b8c392192021dbfcd19356cc32a8f3fc4cb6b344e8a4ebae5f
|
|
BLAKE2b-256 checksum How to use checksums |
0753a1ca7590b8770e7e17b90d8731d7598f461088b5c4811fe38c5560afdb29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.10
|