Skip to main content

A11

A11

A streaming action runtime for AI agents, model serving, and multimodal APIs.

A11 gives ordinary asynchronous code a stable boundary for tools, model calls, pipelines, and services. Its Python API runs on a native C++20 runtime, with TypeScript, Kotlin, C++, and Flow interfaces for the boundaries that need them.

  • Named streams instead of mixed provider events. Read model text, reasoning, tool activity, progress, and durable interaction state from separate ports.
  • The same action contract locally and remotely. Move a handler to a GPU host, browser, or service without changing its inputs and outputs.
  • Deterministic runtime composition with Flow. Check and load compositions at runtime with defined concurrency, draining, deadlines, cancellation, and error propagation.

Install in five minutes · Try the live research agent · Read the documentation · Star A11

Try A11 live

The hosted parallel research agent plans a topic, runs several investigations concurrently, and streams one report to the browser. Its default Ollama backend needs no account or API key.

Five-minute quickstart

Install the core runtime on Python 3.11 or later:

python -m venv .venv
source .venv/bin/activate
pip install a11-kit

Save this as quickstart.py. The function signature becomes an action schema, and its asynchronous iterator becomes a named streaming output:

import asyncio
from collections.abc import AsyncIterator

import a11


REGISTRY = a11.ActionRegistry()


@REGISTRY.action(name="split-words", output="words")
async def split_words(text: str) -> AsyncIterator[str]:
    """Emit the words in a line as they become available."""
    for word in text.split():
        yield word


async def main() -> None:
    action = REGISTRY.make_action("split-words")
    await action["text"].finalize("named streams arrive early")
    action.run()

    async for word in action["words"]:
        print(word)
    await action.wait()


asyncio.run(main())

Run it:

python quickstart.py

The output port streams four values and then closes successfully. The same REGISTRY can be served over WebSocket, HTTP SSE, or WebRTC; callers still use the text and words ports.

Add model providers when the application needs them. With Ollama already running locally:

pip install "a11-kit[llm]"
a11 chat --provider ollama --no-voice --no-shell-tools

Continue from a working example

Questions and rough edges are useful project signals: start a discussion, report friction, or tell us about an integration.

Building the C++ runtime

A11's runtime is a standalone C++20 library you can build and link without Python. The steps below are self-contained; for the editable Python build, wheel matrix, testing workflow, and architecture, see BUILDING.md.

1. Install the tools, then build the C++ libraries. A11 links a pinned set of statically-built libraries (Boost, OpenSSL, libcurl, nghttp2, hiredis, nlohmann-json, uvw) rather than system copies; scripts/bootstrap_wheel_deps.sh builds them into a per-architecture prefix. From Homebrew you install only the tools (a C++20 compiler, CMake ≥ 3.28, Ninja; Linux tool package names vary):

brew install cmake googletest ninja pkg-config

export A11_DEPS_PREFIX="$HOME/.cache/a11-deps/$(uname -m)"
export CMAKE_PREFIX_PATH="$A11_DEPS_PREFIX"
export OPENSSL_ROOT_DIR="$A11_DEPS_PREFIX"
export PKG_CONFIG_PATH="$A11_DEPS_PREFIX/lib/pkgconfig"
export MACOSX_DEPLOYMENT_TARGET=14.4   # macOS only
scripts/bootstrap_wheel_deps.sh

CMake still fetches the pinned Abseil (and libdatachannel, for WebRTC) automatically. See BUILDING.md for the full rundown.

2. Configure, build, and install to a prefix (the exports above point CMake at the dependency prefix):

cmake -S . -B build -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DA11_BUILD_PYTHON=OFF \
  -DCMAKE_OSX_DEPLOYMENT_TARGET=14.4 \
  -DCMAKE_INSTALL_PREFIX="$PWD/install"

cmake --build build -j
cmake --install build

On macOS, pass -DCMAKE_OSX_DEPLOYMENT_TARGET=14.4 as shown — it must match the value the prefix was bootstrapped with. Setting it as a cache variable here (not only via the MACOSX_DEPLOYMENT_TARGET environment export, which CMake may not pick up) is what enables the Boost.Fiber futex spinlock; a lower target compiles Boost.Fiber without futex support and fails with "futex not supported on this platform". The flag is ignored on Linux.

3. Use it from your own CMake project. The install exports a CMake package named a11 with per-component targets (a11::service links the whole runtime). Point your consumer's CMAKE_PREFIX_PATH at both the install prefix and the dependency prefix from step 1, so the transitive static Boost/OpenSSL/... resolve:

find_package(a11 CONFIG REQUIRED)

add_executable(my_agent main.cc)
target_link_libraries(my_agent PRIVATE a11::service)
target_compile_features(my_agent PRIVATE cxx_std_20)
#include "a11/nodes/node_map.h"

int main() {
  auto node_map = a11::nodes::NodeMap::Create();
  return node_map.ok() ? 0 : 1;
}

Configure your project with -DCMAKE_PREFIX_PATH=/path/to/install so find_package locates it. The generated C++ API reference is published alongside the docs.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

a11_kit-0.5.5.tar.gz (2.2 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

a11_kit-0.5.5-cp314-cp314-manylinux_2_28_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

a11_kit-0.5.5-cp314-cp314-manylinux_2_28_aarch64.whl (11.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

a11_kit-0.5.5-cp314-cp314-macosx_14_0_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.14macOS 14.0+ x86-64

a11_kit-0.5.5-cp314-cp314-macosx_14_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

a11_kit-0.5.5-cp313-cp313-manylinux_2_28_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

a11_kit-0.5.5-cp313-cp313-manylinux_2_28_aarch64.whl (11.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

a11_kit-0.5.5-cp313-cp313-macosx_14_0_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.13macOS 14.0+ x86-64

a11_kit-0.5.5-cp313-cp313-macosx_14_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

a11_kit-0.5.5-cp312-cp312-manylinux_2_28_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

a11_kit-0.5.5-cp312-cp312-manylinux_2_28_aarch64.whl (11.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

a11_kit-0.5.5-cp312-cp312-macosx_14_0_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.12macOS 14.0+ x86-64

a11_kit-0.5.5-cp312-cp312-macosx_14_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

a11_kit-0.5.5-cp311-cp311-manylinux_2_28_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

a11_kit-0.5.5-cp311-cp311-manylinux_2_28_aarch64.whl (11.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

a11_kit-0.5.5-cp311-cp311-macosx_14_0_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.11macOS 14.0+ x86-64

a11_kit-0.5.5-cp311-cp311-macosx_14_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

File details

Details for the file a11_kit-0.5.5.tar.gz.

File metadata

  • Download URL: a11_kit-0.5.5.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for a11_kit-0.5.5.tar.gz
Algorithm Hash digest
SHA256 4cdd1bdbadb8840b8a37b07c6a92e7407804aa473072a84d46544153566e9043
MD5 6f4e2f71cc44465d35eb4c26e033cfde
BLAKE2b-256 e927a07d79d3771a224e012d6975290d8a40672c26f8a11f8855a26456a58e30

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5.tar.gz:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3379a4a02acf484672eb627e2c5883539ece4b85d8e0a11fc9ec00fa792ba139
MD5 23515732406e657ffe146d7843d03d42
BLAKE2b-256 9818eb5717e4560b3ae1f3b7eda50ba6e9b147f6194125041f029c98dc9c2cfa

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5cdf9c53ebcb8d972a6b3a70cb5e8793f33ebf095da4a3701cde0a02257a683d
MD5 c63acc798fc23e59e39ff550369fcb82
BLAKE2b-256 c29b106629de09025f89ca7c05f7bd005f1cf6805556a93a46899e278f93b41a

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp314-cp314-manylinux_2_28_aarch64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp314-cp314-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp314-cp314-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 57d2b0f65d1a4cd4a6f77365499138666beb11f603519979e8a4b649b2206a97
MD5 2d10f9a39b8fe0c65165f00e28e7ee7d
BLAKE2b-256 756ef807c5a994a54a2f05db85c59b60832b6dbd8f749ad29918555bc8aac9f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp314-cp314-macosx_14_0_x86_64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 34814de18636a3171715948bc9b7d13bf19d5813338bf8c5d4322c7c6fdcf64a
MD5 d234bd4c818b012b39c3d8a19f3bae9f
BLAKE2b-256 fefb0d8c3c28e7dd02e1f83d78f2614a1c2bbd248af4218aa7a7d1021727717b

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1ec10bfde9155d3241cd87b902bcd35ca4a91193d7d95686c3622d6a7a168a8b
MD5 5bbd20ef80a664c2a6ba914047213dff
BLAKE2b-256 d177003fc32dfcd854400ce92ace970ddd8f78fe19b5b16af92118cf500dfb18

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2841b7d412906a3d8b1c342a16c55b237d9ff95313cee7f9a30350b6699f24ec
MD5 3f9052babf7b9cd300adb45680cc8b72
BLAKE2b-256 84bf9dcff9d992ea2aa09ce9b669672711c70bd720188346559b8a15d4a15a77

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp313-cp313-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp313-cp313-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 7e44ae1a50c84471609ab7b102b90f85e6cf82eaacc9a5c1ea027cd694958cea
MD5 5d1dfee9bce42782689414c5a919d29c
BLAKE2b-256 3f2996d8ebd99d1dc06d3b0ef68e0cdd1400bb6561bcd1d772b85a7bb846bf22

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp313-cp313-macosx_14_0_x86_64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1cb08a03162c1bfbf51160b01fe07d8265fba57d1d45548cbbd53b634dd96d06
MD5 62653a1cb8f993a7e56ba0943b71bd8f
BLAKE2b-256 1602faa1048e896d24645cb4f797b3be5a136aefe4fdde06f946ad643ba45944

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 94771e3ecedc182d487857bb8302afa2215364df6db1a43ba2ebf62736c9bc7e
MD5 88ebf4d6a5c858f0b70a8be12ca0e791
BLAKE2b-256 0753dbe196bce4603fd96a838d094b6f3d3887d6dd86b1ea7e3cae12cd8250ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 726909354e89a00da2824bde129d09790ef5ff1d08a129cf0e3ecc917018e159
MD5 79e80689560b7c65e72c19faa9643132
BLAKE2b-256 140c565f995cb0347ea4f807c73ee64840f3a967482af1fc2ffeeb5bc14d70a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp312-cp312-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 16162e727c0c50c38774e1b662e999e97d88b8689cf8c5a9a5748edb210e8627
MD5 8056be350c9fb252552d41fc4c0d631b
BLAKE2b-256 3ac5ef6a4b57e6e8846cfc490533aee77d25c9075cda8907d02516438c367222

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp312-cp312-macosx_14_0_x86_64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6a207b007df4930a3b7bf38c5adee78147dc8ed41ea8bc92863363ac321ff9e4
MD5 14c4383a071f73f76ca4a41eef284eb3
BLAKE2b-256 f287b6d69807da768eb99a772cc2686b43401572ecf1a304108d86aaea679d66

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7e85e61814167a0d6f5356315428392dee32593d6228acca5f91a75826a7abaa
MD5 91b2f345dbe3adbbcced59056a3083c4
BLAKE2b-256 405d40bd09ae304a7000829ea614304b28934d453bcf53da0f47c7d73a25b290

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5d0c035419a51777ebe6604a57a2227ed1a74e25bfe646df10b25eb55b4e692d
MD5 71c657e495e25ad51b2beac139f065f0
BLAKE2b-256 0e1a4c6d071882a091d8d86b38bc6eb0361c1ab9d41060eabc3b1fae4fa84861

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp311-cp311-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp311-cp311-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 272ae8f7ac94f018efd753404a329554a33cc3d205c9644ff3e5396b82bfe64d
MD5 99dfc3bcc50fbebd0841327506cb3e89
BLAKE2b-256 f06a7fc26826ffb8a6950cb8e0b71a3e7cc4888d0a8348c4ff8eae8140ffbb0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp311-cp311-macosx_14_0_x86_64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11_kit-0.5.5-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.5-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 c18473684edecc3563cb5fbe5fc293645200169ba5e55ceb2e3cbdef5265f62a
MD5 5e9c1e9fdb31537515254c91a9101184
BLAKE2b-256 c80821d0ed02464caf4b5873c3a4acc75c240b186db174f483d8ba2470a188c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.5-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.5.6

17 files

This release

0.5.5 This release

17 files

0.5.4

17 files

0.5.3

17 files

0.5.2

17 files

0.5.1

17 files

0.5.0

17 files

0.4.6

17 files

0.4.4

17 files

0.4.2

17 files

0.4.1

17 files

0.3.3

17 files

0.3.2

17 files

0.3.1

17 files

0.3.0

17 files

0.2.5

17 files

0.2.3

17 files

0.2.2

17 files

0.2.1

17 files

0.2.0

17 files

0.1.8

17 files

0.1.7

17 files

0.1.6

17 files

0.1.5

16 files

0.1.4

16 files

0.1.3

8 files

0.1.2

8 files

0.1.1

17 files

0.1.0

3 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page