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

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

a11_kit-0.5.4-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.4-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.4.tar.gz.

File metadata

  • Download URL: a11_kit-0.5.4.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.4.tar.gz
Algorithm Hash digest
SHA256 9a86177ba0688abac5c3e907f8b05ff7b68d75541d9394abaacb64d214926f55
MD5 299c5eda6c1f14ff19f339c21f67f1c0
BLAKE2b-256 3a916d66af965940087a0c67936e1319d988d5349dc044478afe58537c4073de

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ced0873906bd6218773ea3cf2118223aef0bd571a1d19dea17a7cd13ef5952f7
MD5 a670984d217d64956c70d301287cbfb7
BLAKE2b-256 6532ce5041c54e215b07a4cbe515738c22ff0c5220846c1edd35a750fd971b65

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6e256734c2560fac8a0b494bc9f05f72c4cb9fc06ee724a8011557239ee6f505
MD5 389b869ac20204c6171ee9f8f7a4611d
BLAKE2b-256 31470e49d5e00663b18438ecce5d511150229dabdd30204373948ac1040ba9aa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp314-cp314-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 75f4bb8067ae5e768310ed201494c816532c5d2210c05292be9272ecb79ba712
MD5 c32d0469147f5eb0e7408b69f4389127
BLAKE2b-256 2cc60f17cec1dd1f116d719074c702e470e8d260bfd3c086c86800d343e728bb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2baf0e602592b233d1bf51b016b91da5aa09fcc1751a0e7f0fd3f31d5317164d
MD5 98bcb4bf1af7b4c98d900c409bd9f132
BLAKE2b-256 60eb8e3f292dc63b466dc4e43bdc44f456868a9eacd4f5129c6eb46627047c10

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c4b3f8ad8889c72c572a9096250fab759fcdf9495656e4553b4933cf90c6e9a6
MD5 b4e9ad71ef0cac94a4886128e76a66f6
BLAKE2b-256 e2f6c39cf9ca529fe270721e43047d1ddf04ffbb96870ff994427acdd75c95e0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f9bcc4de0dbf7f515ae6b483609b2d92d690e94457f85f9118541bec2a5143d8
MD5 422da99c665e144ee3638eef7b70b977
BLAKE2b-256 bf1e3d958c4d14932f6b18dba6490a042b5b660395ba22fbc7c03120d48c3090

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp313-cp313-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 ddad6f047842483dd4b642af110cdb507597cb719dcf231d9c883e27eaf719aa
MD5 6aed6b0d3528fbb93dba56f23cee2dd3
BLAKE2b-256 6f09fbbdacad741136f6d671ddcc820f10cacbe13840353a4a10bb9cefc97f74

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0d521f1033d0133f94a6d88816751ae021e1bbda49957d9862f825c0b1404213
MD5 d887e64490f48e28d1c5b3e72d6989f2
BLAKE2b-256 ab27f8dcd051f2d30554da667765f77af55e67083203992ccca7d02d1d21ea6e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d2bfa355bfe4b1ddc2d75ed7e550045c94d0679f93062dc20e94e47b3b5a2850
MD5 ca1537cd106724f385d29fe0cfe62aa3
BLAKE2b-256 4f2116662b1bfea79218397509c205f69e71b720f12ece27b2a6dc34e8dbfa65

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5edd62bb520d8ca9899011e5dcf762ca1e823c4c8067480ccfb7afe48120165b
MD5 b55c1913aed626acb0c1042ce069aa3d
BLAKE2b-256 d02510bd3a2c1305e73ecfd138d86a06ee8c439ab109dea4ce3be32c0016f8ce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 259d4d4a088c524b99e6d378c66c938e3c65dac7164b7a1aac8281d1987c7033
MD5 2cd8487e117b044c98ebbc1df64e5e91
BLAKE2b-256 34d33f7aef55679434633717c7693585571fe96f1169635c83720fc96657af01

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1c4a7a03de6a84973f9b6573406c1f29ab1aec9adeff43518cc8d0769dbeee7f
MD5 0d6955d5b4d435dd75be8b7868dc3529
BLAKE2b-256 a3239f6b9ce60afc51d6d14df5ffc48f0115c3450c97e0236bd85cac13a22468

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d2c3a577ffb8147bb5bb682e24f71dec3b1ae1372901ee1ba4925544deea909c
MD5 aeb93d68a7c75faa215a83ccf9589161
BLAKE2b-256 4e73bd7c5323f56de5b6c3008db15bcf35edd52004fb17ba9fe5c6ed9722ee8a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 41c90a1ef54396fe24dc19d23d9be29445edbe18572f18a445c4d1b9f863c281
MD5 95d746cf1c74fdcce3c883c471a609b2
BLAKE2b-256 b643de461103f29cae542e54e2157496cf29bb9c6546bb7156d3e518a84c795d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp311-cp311-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 132f6b5caea25cdf0bf4ae5fe6dab10f940620ea77f683f7432b94916ebd2625
MD5 ce39345a46c5f37c9e22fa4f58bbbe04
BLAKE2b-256 053a0db2b62af3b7bceaf3db48525737734379a8019edb1330c5f29c6c31f64e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.4-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f3c36c6a8082ad6b217b81669d174148e87541aa6bc45b7a016198ec1ebcbbd2
MD5 c0eb7a8429dac273f4e0699c073a599c
BLAKE2b-256 782ecea13da5212c001199e9fd804e58b0b7ba2e80839848e96fa24609bd03a5

See more details on using hashes here.

Provenance

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

This release

0.5.4 This release

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