Skip to content

arkitektio/arkitekt-next

Repository files navigation

arkitekt-next

Turn your Python functions into apps you can orchestrate, share, and scale.

codecov PyPI version PyPI pyversions PyPI status Documentation


What is Arkitekt?

Arkitekt is an open platform for building, connecting, and orchestrating computational apps. arkitekt-next 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-next[all]"

This installs everything, including the arkitekt-next command line interface used to create, develop, containerize, and deploy apps.

Prefer a lean install? Pick only the extras you need:

pip install "arkitekt-next[cli]"            # the CLI + app development tooling
pip install "arkitekt-next[mikro]"          # microscopy / imaging data
pip install "arkitekt-next[kabinet]"        # Docker packaging & deployment
pip install "arkitekt-next[fluss]"          # workflow orchestration
pip install "arkitekt-next[elektro]"       # electrophysiology data
pip install "arkitekt-next[alpaka]"         # want to talk to LLMs? This one's for you.

arkitekt-next requires Python 3.11+ and builds on the asyncio and pydantic stacks.

Quickstart

1. Create an app

mkdir my-app && cd my-app
arkitekt-next app init

This walks you through creating an app and writes a manifest (identifier, version, entrypoint, scopes) into .arkitekt_next/.

2. Register your functions

Any function you decorate with @register 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_next import register


@register
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-next app 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-next app run prod.

The CLI

arkitekt-next is the command line for all things Arkitekt — one tool across the whole platform lifecycle. It absorbed the standalone arkitekt-server tool, so the same binary that builds your apps also stands up a deployment:

Command group What it does
app Build, run and deploy apps from your Python code — scaffold (init), run locally (run dev/run prod), generate typed clients (gen), manage the manifest, inspect, and call functions.
plugin Containerize your app into flavours and publish it as a deployable plugin.
hub · coord · hubinator · engine Run the server — the data/compute services, an auth coordinator, the full all-in-one stack, or a standalone deployer.
mesh Join this machine to the deployment's private WireGuard mesh.
self Manage your Arkitekt install — upgrade the SDK, print versions, dump diagnostics.
arkitekt-next app init         # scaffold an app
arkitekt-next app run dev      # run it with hot reloading
arkitekt-next hubinator init   # stand up an all-in-one server to run it against

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

License

arkitekt-next is released under the MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

3 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors