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.3.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.3-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.3-cp314-cp314-manylinux_2_28_aarch64.whl (11.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.14macOS 14.0+ ARM64

a11_kit-0.5.3-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.3-cp313-cp313-manylinux_2_28_aarch64.whl (11.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13macOS 14.0+ ARM64

a11_kit-0.5.3-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.3-cp312-cp312-manylinux_2_28_aarch64.whl (11.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12macOS 14.0+ ARM64

a11_kit-0.5.3-cp311-cp311-manylinux_2_28_x86_64.whl (12.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

a11_kit-0.5.3-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.3-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.3.tar.gz.

File metadata

  • Download URL: a11_kit-0.5.3.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.3.tar.gz
Algorithm Hash digest
SHA256 cfc12fa45b5978640b52bca3e4c5bd0db2206951e82d159858aae5e05d22ef37
MD5 2d70da8e80968918585a188a6fc01f5f
BLAKE2b-256 7556e8c42e67f27263164a19c04621d9def57a27f77d667c75fe6575214573be

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e42769c45d3f01e4f289aee572243ac8513e111fd8f23e44c82c806d2cffb080
MD5 d7c3c4aa7f7f6e79c9f7a6e88781067d
BLAKE2b-256 70f3e31883cd7fc990be4e0b06e3e7d3d493702c09d12ebf4072b52ec1592a05

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7573ccc6565d1d2be312ca46891815ce97f02c94f5bf138b2ca03357931692f7
MD5 4914f20683b3d00ad4bb54c9322cb983
BLAKE2b-256 1cbd29348f1de5cfd871bdbf12f73eb3a12bf09cce453f92b6244f2a764ad448

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp314-cp314-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 a1ce89a6de72f6bb916cc4e49514fbbed059072b2ad9082af730dff49216487d
MD5 22b882c9fda526d19b2a0745e079fa81
BLAKE2b-256 0ab71d1dc1a1dbc89a23f4f10de111cb8bbbe239de32bdda2d6fed1e5b3b2adf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 020aeafc9f1cd1d06fc9d8d35693a6797f539118d74230396e5d81d23039ebc7
MD5 9f8559bc0c2036657275874ecb89a72d
BLAKE2b-256 5d7c120b5334c862ddd598b3bada71a08cb0e89aafddb040f0d5dc7640889085

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cd6a41e07111be14d964660a7072123a6c37e034d7275f810e25dfda02b9469b
MD5 aa44d9da02088c81baf69f318aeb4020
BLAKE2b-256 ff2bf380f1d5b4ff49512611f38e507aa62796eefe6c80689e35f4a72f8dc841

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5e66960ff6809152103825978a8cb8d03b9365f2a78c88a6c2bdbdf21861302b
MD5 a1af28370ca3d325ebb2e719c150a6d4
BLAKE2b-256 3baee211d200aee2c2b30525211b0a8fb4e2c3fe5fe066ff67530e47a381601f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp313-cp313-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 1ecd1ab581c9b9c6fa549bbb0262fdfae1159e3bb9373c10542bf615006a9a1c
MD5 69f20ee79cd65006acfa1e8ff8709ab5
BLAKE2b-256 459fa525356ef58c505a4091a0fc037fedf1b4f4470102f682295f53988b46e7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ecb96cb2935132bbbdb317d34816693d3158b4c7d56267a2bc6ae95c7fcafb67
MD5 ccedb34e96074728d8c30408d789c8ba
BLAKE2b-256 3c9c33325c3eada657e48cad1d94c08a6753f41af85d5c70d2b0fdd931b79ed4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5196fe71977084045b784f26a47bdd1f67027ce54b3cef4c66a70b5486927e5d
MD5 c5c5b4d5f05b581672e7b98237f215a8
BLAKE2b-256 193a12cc5fd3b8986ed058bcfcc08b4f60ed32d9a8db0ff506571b69e3c27764

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1486d8df133920535c1a001b30797f187d83a89d4e219cde591b8c0a44e2860a
MD5 f43fba55791e074e2c496e16541c63ec
BLAKE2b-256 8341befb8d3c7bf172740f5d7a0ec34c1efbfcb6b4f9e231fed03059a4fd3dbd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 42ff833cd806b3c0c5a3d3c1c56ac444af773ac87927225a06f1a7a4a1f74434
MD5 74c4c09cb51d09be9905869ca7397ed7
BLAKE2b-256 75774f063b954a5e129be7595050197fad49784d515be205e69cd26d363c83e5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 72848dd63f943a3445a17a5f1c2de54a88357fed9ea06c5e625b129d48fda87f
MD5 8f7ed483c379f07d65db92097bb7b7a0
BLAKE2b-256 61a71f465e9f91862b7cecdc8e2f6e7cfcedbe35e8627bd5823a7fb5c053fda9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f3249c528d9714d3814a9ca3dacaa83a60f688eb713847b641c5f96c0df7d53b
MD5 d4a6258770df237035e8c89aa59f535a
BLAKE2b-256 0afd9b300cd18ac6ab427710ccdc112f0afe33f82c7a48d17ffac0f4c9d067c3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9f9d307df83b1e6fce60f642065653e803c989f55854863cc251caf06d391283
MD5 d3b3a3ec8dfd6bd50845dbc06547c7c2
BLAKE2b-256 ed8fdd99748dfa1ddd735748fe1a2cf1df5f862cd10357ddd142f1c7b257a576

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp311-cp311-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 58dec3f93d0567f22690136ee6b3da51926c6126c13a9b1d53165ff3f85d82dc
MD5 987feee01c3b4e8b9b39bed826427678
BLAKE2b-256 f89ee728704e16b2d4af0fbe2ce0c8573d1616defd20815ea533af33319c23c8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.3-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 cc03fdb4a7f8b89550efbddc75d265d8e664598fcba6540bfd7d6c514cb0fb83
MD5 98836e92420c15702c7397816a6d4408
BLAKE2b-256 2f582cc608484cb69945957e5f75a898eca91a59b38385446154ed563be27b41

See more details on using hashes here.

Provenance

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

This release

0.5.3 This release

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