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.1.tar.gz (2.1 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.1-cp314-cp314-manylinux_2_28_x86_64.whl (12.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

a11_kit-0.5.1-cp314-cp314-manylinux_2_28_aarch64.whl (11.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

a11_kit-0.5.1-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.1-cp314-cp314-macosx_14_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

a11_kit-0.5.1-cp313-cp313-manylinux_2_28_x86_64.whl (12.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

a11_kit-0.5.1-cp313-cp313-manylinux_2_28_aarch64.whl (11.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

a11_kit-0.5.1-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.1-cp313-cp313-macosx_14_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

a11_kit-0.5.1-cp312-cp312-manylinux_2_28_x86_64.whl (12.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

a11_kit-0.5.1-cp312-cp312-manylinux_2_28_aarch64.whl (11.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

a11_kit-0.5.1-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.1-cp312-cp312-macosx_14_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

a11_kit-0.5.1-cp311-cp311-manylinux_2_28_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

a11_kit-0.5.1-cp311-cp311-manylinux_2_28_aarch64.whl (11.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

a11_kit-0.5.1-cp311-cp311-macosx_14_0_x86_64.whl (9.5 MB view details)

Uploaded CPython 3.11macOS 14.0+ x86-64

a11_kit-0.5.1-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.1.tar.gz.

File metadata

  • Download URL: a11_kit-0.5.1.tar.gz
  • Upload date:
  • Size: 2.1 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.1.tar.gz
Algorithm Hash digest
SHA256 93711eaadb0c17a81f9ebae3a10ad3dd16b2b5850e6def03431a624124af0698
MD5 1c93942f523daced637d43348aae2dc6
BLAKE2b-256 4385d2ae3c51ba60eefc5b5f3c3ba72b6a14c46d1871609237a743b33c76bfaf

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1.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.1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 124c90463a9281be407251254fb24db47ffa2de0fef7a8df1ea258c9ce8c03eb
MD5 09f0c02a79b2e3eaf146060267e42dcb
BLAKE2b-256 b4e3fc7b39a2713ab97e2fb54c93ebccebcb39fcf5703234662b9ccbd50baa76

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ab93b21e8a998cafd3ffe764aa5b9df6565c8ae3b5cf6879947823df3cbde51b
MD5 af173af179d69bf7782d7e76347a0877
BLAKE2b-256 521e73fe20684d8dceabf1fa63e443d00b8091f0b7074b594c779ad171ab0cad

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp314-cp314-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp314-cp314-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 a9d0930fe5026fa90426c949ad4a895e5e2c237a59a3ac14ad862cf14c8af971
MD5 064813930092c3a3334e40fbb6a6a185
BLAKE2b-256 96132e930eb905ebd5cb10d43e9b7d21cb91ba9c815c4c8aa91fb6895351acb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7bd019c7700a118cf9ef271f2f84ad71b1efe0f6ed7bd9b523792a2f84f87462
MD5 f4981c7373cef2225c9276fdd80fe1ad
BLAKE2b-256 e0a39de6262ca0494f0783a884488fba01feecc4e4f1bf15e20dcda147c0c23c

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1bca9b81d8382b63de48c9ecc428be4073efcafcf91f7be6444fcc2d3d82d8e9
MD5 8d85f3a909cd1ac8a67e0d26337c0c99
BLAKE2b-256 66999ae5de14d67e447c5d41ca6b95ea7b72c52045e2ec8a0392558139351cc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7043159d235fad1bc2af8cab1bfd39c4fed7c6b93be175fd3c0c4c47506a7c08
MD5 0e58c99436a07270d188de0b28b853f2
BLAKE2b-256 778c6d60e39eb867630c9e1ad9096a41f81c98936cff34f292f6062e98166d24

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp313-cp313-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp313-cp313-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 5a552ad75075c5a2db2d1ed3433e890d9d8c692847119167a27f6c3600c44b9a
MD5 8a0a75e7269443b36a7134cb502b7e86
BLAKE2b-256 80c17ce6d4097115935f6ff3a00aaedd351b61cf6d661c12c48ea4b83f1a13a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 584e82d84a08692f406fccffaa44326ea7bea41575a1cb0c72c18b61dd21ebb1
MD5 1b85dd04e1dea32e3894a0b69e53b60c
BLAKE2b-256 9cd951b498ea4464deb3436d3fd022883a84ac5199590e70b45181af6e21e983

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 222bb5ec02b6675e5195d374f236ed8dbc77f5c1aabb993c317fc727efbe1649
MD5 199e8488ddbe95dbe5aa1d1cd5b19148
BLAKE2b-256 0dd3edba3bf222affe231323d9f657ff89ea71231742376c46be1951c2035fa7

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5d30fac8dddc663128b827212afc46d8bce42fc109bb44c0cda9ac8e3554351e
MD5 88833a5248a58f3738f869cc14d2206a
BLAKE2b-256 015c4ce824a4d705614f57c43a76e76af4b1487402fa44326563589f7ae35fd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp312-cp312-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 00ff14f395c3478b10509e2176ba6c401a72312ef12407ca055efe9e8da16bc7
MD5 d54eae19fe0fc4f4176f25b94504fe88
BLAKE2b-256 fd68ff00e35112753c1e6c64edb5cfc13f019f598fa2de111476b6c12eaf3e87

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b4d525eda45366ffe1b46213ea617577cf14bae7768c7d2c5cd170bf088e9dbf
MD5 cbe67a39c73e057e1e1f2338901c147f
BLAKE2b-256 e0b2f3bf94e42094d5cbee4455c9aef550474e2f47ca8187d7f5f753b42aac42

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c122f7374f7e0bc7ed884dcc06458e5d9761a7b75e2c3f9ebcc3bf41a5ab4fe7
MD5 3157e7ddb3a70557d1c8f6277b6eaaf8
BLAKE2b-256 2c6904c77ca29d520a39463e9fcf685ec9c3e7fd609b07ee9fae814c7280b1ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c4a3a4f744c060697dfb498025ea6c785a4758fe57bba224aff156c057ed2536
MD5 6b74e63c25d81ca4c3da43052d742ec5
BLAKE2b-256 cd345bb827b2bb034af016a3bbccddbf6c6295164e8050fb58a0b1a2f556ca86

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp311-cp311-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp311-cp311-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 e7e12e83d0afde288b8c84699bc311f17116ee3ddedf376578308ef420c870f7
MD5 c45f3e8115151598217df9a9e8fbf7e0
BLAKE2b-256 a8beb417f1637ba15af90a6bb65a5c88cda9d0f43f6b9a94bb78bff29053ad6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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.1-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for a11_kit-0.5.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 28fd33e834724ad21c3fec2bf959f3bf5a242d9dd873fab0a1fa7605219b8c9d
MD5 c049fbb7c5f63a7587e20d8e0fb41934
BLAKE2b-256 861868455cc04c63af06700d4b4e82d6a5419c438f5d9fc39903116196d2ee2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.5.1-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

0.5.5

17 files

0.5.4

17 files

0.5.3

17 files

0.5.2

17 files

This release

0.5.1 This release

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