arkitekt
Turn your Python functions into apps you can orchestrate, share, and scale.
What is Arkitekt?
Renamed. This client was published as
arkitekt-nextup to 1.4.2. From 2.0.0 it is published asarkitektagain: the import root isarkitekt(arkitekt_nextis gone) and the CLI command isarkitekt, notarkitekt-next. Installarkitekt>=2. Note the extras changed meaning too —arkitekt[mikro]now brings mikro 3.x, and thereaktionextra is gone (the flow engine lives influss[engine]).
Arkitekt is an open platform for building, connecting, and orchestrating
computational apps. arkitekt is its Python client: a framework that takes your ordinary Python
functions and exposes them as remotely callable, orchestratable building blocks — without you having
to write servers, APIs, message queues, or UIs.
Annotate a function, run your app, and it becomes available on an Arkitekt server where it can be:
- Called from anywhere — other apps, notebooks, scripts, or the web UI.
- Composed into real-time workflows that wire your functions together.
- Given a GUI automatically, generated from your Python type hints.
- Shared with your team behind central authentication and permissions.
- Packaged and deployed as a Docker container with a single command.
Arkitekt grew out of the needs of data-intensive science (it has first-class extensions for microscopy, imaging, and graph data), but the core is domain-agnostic — any Python workload fits.
📚 The best place to understand the platform and its concepts is the documentation at arkitekt.live.
Installation
pip install "arkitekt[all]"
This installs everything, including the arkitekt command line interface used to create, develop,
containerize, and deploy apps.
Prefer a lean install? The CLI and packaging tooling are always included — pick only the service extras you need:
pip install "arkitekt[mikro]" # microscopy / imaging data
pip install "arkitekt[fluss]" # workflow orchestration
pip install "arkitekt[elektro]" # electrophysiology data
pip install "arkitekt[alpaka]" # want to talk to LLMs? This one's for you.
arkitekt requires Python 3.11+ and builds on the asyncio and pydantic stacks.
Quickstart
1. Create an app
mkdir my-app && cd my-app
arkitekt init
This walks you through creating an app and writes the entrypoint file it scaffolds. The app declares itself in that file; there is no separate manifest.
2. Register your functions
Any function you decorate with @app.action becomes a callable building block on the platform. Its
arguments and return values are inferred from your type hints — which also drive validation,
documentation, and the auto-generated GUI.
from arkitekt import App
app = App("my.app")
@app.action
def greet(name: str, excited: bool = False) -> str:
"""Greet a person by name.
Args:
name: Who to greet.
excited: Add some enthusiasm.
"""
greeting = f"Hello, {name}"
return greeting + "!" if excited else greeting
3. Run it
arkitekt run dev
run dev connects your app to a local or remote Arkitekt server with hot reloading — edit your
code and the app reloads automatically. When you are ready for production, use arkitekt run prod.
The CLI
arkitekt is the command line for building and running Arkitekt apps.
Standing up an Arkitekt server is the job of
konstruktor:
| Command | What it does |
|---|---|
init · run · gen · inspect · call · plugin · mesh · self |
Build, run and deploy apps from your Python code — scaffold, run locally (run dev/run prod), generate typed clients, inspect, call functions, and build/publish plugins. |
plugin |
Containerize your app into flavours and publish it as a deployable plugin. |
mesh |
Join this machine to the deployment's private WireGuard mesh. |
self |
Manage your Arkitekt install — upgrade the SDK, print versions, dump diagnostics. |
arkitekt init # scaffold an app
arkitekt run dev # run it with hot reloading
konstruktor hub create # stand up a server to run it against (separate tool)
See the full reference in docs/cli.md.
Working with data
Arkitekt automatically serializes and documents standard Python types — str, bool, int, float,
Enum, list, and dict. For heavier data (images, arrays, large objects), the platform follows a
store-by-reference model: data lives in a central, scalable store and only a lightweight reference
travels between apps. Extensions like mikro provide ready-made structures for
this, and you can define your own.
See the documentation for details on custom data structures and storage backends.
Documentation & links
- 📚 Documentation: arkitekt.live
- 🧰 CLI reference: docs/cli.md
- 📦 PyPI: pypi.org/project/arkitekt
- 🐙 Source: github.com/jhnnsrs/arkitekt
License
arkitekt is released under the MIT License.
Metadata
Release files for arkitekt 4.0.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 | |
|---|---|---|---|
| arkitekt-4.0.0.tar.gz | 519.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arkitekt-4.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / arkitekt-4.0.0.tar.gz
| Download URL | arkitekt-4.0.0.tar.gz |
|---|---|
| Size | 519.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2518bc6a334604244afcbbe9123bb3148a632d3aadf90a045aee53a6f45ae3db
|
|
BLAKE2b-256 checksum How to use checksums |
7fe378e3c26011f4c1d9016ae3a5bad2273f06d166c4d585f45adbb8a30c5592
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / arkitekt-4.0.0-py3-none-any.whl
| Download URL | arkitekt-4.0.0-py3-none-any.whl |
|---|---|
| Size | 558.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f75eef42dce706bc28a5fac6fe601a2b1c6ff11bf7e232458c1aeed695a48191
|
|
BLAKE2b-256 checksum How to use checksums |
f32f3f56d2857c337b62176d2c775e2f8c9d9c42692db606119f59263c21e869
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|