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

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.14macOS 14.0+ ARM64

a11_kit-0.5.2-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.2-cp313-cp313-manylinux_2_28_aarch64.whl (11.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12macOS 14.0+ ARM64

a11_kit-0.5.2-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.2-cp311-cp311-manylinux_2_28_aarch64.whl (11.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

a11_kit-0.5.2-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.2-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.2.tar.gz.

File metadata

  • Download URL: a11_kit-0.5.2.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.2.tar.gz
Algorithm Hash digest
SHA256 eb5066730af933716fcca5b98515ce7acb2975e399f89b1f659b8b4901e97994
MD5 f8bccf512f94f6091cebaa75b65e1f3e
BLAKE2b-256 3ed7c85484427dd5fcff0c8c9fa0223eb7e7c305fc9a86b6bd648415c67b15c3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 acc449a4ab23012c163a04be059dd37c52ef7a11c8c12de363e9807cc338aa98
MD5 249b0a4884c35993c81201e31f45072b
BLAKE2b-256 2dc174be514d73cc3657e5e8677ff12b7f2dab57ff2b3e166f8bfb0618f3c6e9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f8141ba1f6ab2ffda842edf60c13a2ccb412da162bd202f573dc192992e5def9
MD5 0d0f894519062d37ead5efc3ce192d57
BLAKE2b-256 db510bb7fb62deabf541a4a74ccbf3c8b67ce3e99d66657d7b72fef380065cd4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp314-cp314-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 fefeb01865864291ad3163d32a3ec25a3ba9450ffa308c2c9f0fea93bc3c5bf5
MD5 c6e76cc94597c02565702dd098c87566
BLAKE2b-256 39ea72e9abe9336792e079ce8e1c11395174cb52ac4c0de5be5f19c18fb634d1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6630cbb1f47ffdae44fb8cfac5bb5776b1d208db148297660789996f5a371dd1
MD5 9dce7ae2abe599884edf22b4aaa4a64c
BLAKE2b-256 eead4d115089046251af141b118561eae7d2bd47974a7eaefb8ccee5e7bd512d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fe1df00f4a9ac330bebf5abd524e730ba3b0fb9a85346e4523d924e3e7449b65
MD5 006f5df2c2148df81c6e510acadd4efb
BLAKE2b-256 d58e5c193be4950b627da33fad78784314d37e2b1ff93e0e866b2c154df97d19

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fee64a02f86b74831a4804f81f8a3dd4c4606fa1cb9ef848f92a9d9b7f01bdbe
MD5 d694e16755f0988d0fae44eefa2b9875
BLAKE2b-256 640cbceb03d1ae305483bcf7730670988d1c648c99b9c47e12942765218d1259

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp313-cp313-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 d3e9a8c0ea05f8c45d048d3361413c01fcb6635eb7f97f7181cd7711d19a7d10
MD5 ecbd759c077ededdca61f8b0b533a1d6
BLAKE2b-256 d33b98da256f3b9f16ce8de03566f008af391c1e6e4bc61cb71c65c10e03eea4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9df3987592ce4596bb9e01aa9148b10261abfc8b4227625078a171d050b1bca5
MD5 555b0c6122c2d893eb9938bfa93c5508
BLAKE2b-256 7bfa1c6a151c57b8aa2161cc3a649d00c5888b9a4314329a56a65a8998c8dc3d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 83dc8e612db390c83edcaf9e9af523fb51e961eb684eb2a640fe98154a26f057
MD5 36cffb2b527e157556b3ae813c5ac82b
BLAKE2b-256 2334db31329dfc8a6b4a023ac756cb1df9f750dbc1fde448690ed3f6c4a2a5a8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 245d0d1a24fc04055b9d87d5418b5e7e34d8787aceee5944f427eb8f84012f27
MD5 98dc4b3721d0477be81b99573f76f7c6
BLAKE2b-256 4478aed3adea17b785789d585861a0767b281c4e42cf6e27b807533c243dc53c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 db0e52afa48c40c29ef26873de311821e23f8da20dce09a9cade2f954c1e953b
MD5 9f01d6f91e88a2bb6d1950f17f6c5a78
BLAKE2b-256 64c66673f7cb0c71dd9b40b4ab057935d63d8d43cd4ee256ebbd482619e629aa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 bcb1736814bb37e045ce800435adeaaaf58f8d0a5681c700024913ec752ed4a2
MD5 1b36518d2376d23416e417f665589216
BLAKE2b-256 3b813eb4118793e813f5175189b74525018fad6daa836d510652b55d0e3cacd1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b0d14c8fe7149360740aa7f0acf13828fff3d7b414bdba1fadfbbeb407f27e97
MD5 c4a431426fcf474d4fa05d9b506ef557
BLAKE2b-256 d775d8346dcc3c3a1573614cd0ee77b6c211ffb90d095c01a9fb5d992eea794b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1a978a9bbabe24b95f5ee0eb86e0be2eb818679d104abd2df6d226a28747566a
MD5 9801a1649418d9e76e30e6438173737a
BLAKE2b-256 07913800cc9f75facfeabd3d1104f2bdbbedb74bd59d06611466895d1f1813c3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp311-cp311-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 09495ecc380d5baef093e4c22ce3b9891660d07a7c89983d67d6f218b9f98bb9
MD5 0c25143fe3ec42fe60ab871cc518c8c8
BLAKE2b-256 1319af0c48fb0cdfde268779792cff3be2d3dc3b87ae21e2fe2b6a11c2084a28

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.2-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8ae618e2914fdc6b6feab5594c9caf09b743b3579d6674ea904581a188c29e73
MD5 d581f3410ba24c4e32a2b252484fa376
BLAKE2b-256 615844acded1704f028f8c1af715e7a287d83b5cdbe14d23ffb8191ad61d76ca

See more details on using hashes here.

Provenance

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

This release

0.5.2 This release

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