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

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

a11_kit-0.5.6-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.6-cp314-cp314-macosx_14_0_arm64.whl (9.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

a11_kit-0.5.6-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.6-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.6.tar.gz.

File metadata

  • Download URL: a11_kit-0.5.6.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.6.tar.gz
Algorithm Hash digest
SHA256 f10785718b77d6f18f61bb4ec9e4fe88d9037f4b7e613e17a90efc92a6c61040
MD5 9dffbc4d8d0a4b827d44502ee64275c6
BLAKE2b-256 24342b69f464079b19a56de65b0b9b3fa2702d62395cd17eb17c88d36e40d7c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7bdf12706c4d1eb6f20af45749b5b329580b826d7e27c0ea6d5942651999d4c
MD5 2423e40040a7959f8bcc49669fedb564
BLAKE2b-256 cf41d9528cedd6d62d3f43e0a83c9a900114512daba5cbcf8cb90ebd6d1901ac

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a68a084b87894efaf72b57b62336ef3ef57fb2e46cb55273cc1c7cab502ccbfd
MD5 88de0d84213855a0b5bdcd7ee37eed56
BLAKE2b-256 ff0d487a9d5a4efc6cc3278c6ecd4811f2442875d9484de5b088561dfc57bebb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp314-cp314-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 fa7ba61f5848c49ce8ef5e21d90de3e884ee058376af7e7c8717e09b83fb5bf2
MD5 b17423c0ec3e9efc1397502dd59f2f79
BLAKE2b-256 3a99dec774b5c504feeade980a5cd8188cdb946ea3a8a8a4cf1dd9fde10f5562

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1eb99ac0657b2b03b07f8afb9346cb3a77bb77dea103a8421f13d6a0806a09a3
MD5 94b5bb468285999e04d610622d5d6624
BLAKE2b-256 7da777ea8f0e44c2e37f96bd6498368ad557ef16ad19c0d9ac24e5edacda32c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e8e0653265b90883e5532eadfc47a9244e77825d9a46e8c3b43ca8f6ed8e9112
MD5 a37afb5ce90cb3dcbfecaa139a432453
BLAKE2b-256 bb9de42b6de49777430d43df9401f443e438636f942ec1ab870bbe0762a13e27

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 52e2f3e37595efb14e711f22a13b453fe35402c66b3671fdea0a5db1823d1a36
MD5 707bc03e59f96e31b24ef8679bda8c4d
BLAKE2b-256 2eb14540b88f5b13ef2ce186f70d208cc2205feeb602c6b30c5da8f717b61805

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp313-cp313-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 ef6a9e8c0a74dfaed397297f33f3e45d107032b763b38ad4e0d7bdce18acf93e
MD5 83ed39d62e0df015ed336204aa65f29d
BLAKE2b-256 e77d48721b7649fce3bc2d02f4856c4e2d9b9b146be8996e4bc29d53c8fa31c3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 073e447ddf9e1b9234e1c8614c40db9754c132a47cb842e30381e9ca5678c92d
MD5 b0e73a012e55e78c8b626c5f96164554
BLAKE2b-256 439c4ed1b61c79f467508ec9d4f5c10a96d48d4f4f63a3217ab8255c658c1109

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8dff2a07ed038a4511dc53c310452ac5b8e3cdebb73d1a28984e9033f72f3a3e
MD5 1328b8f63be3a454bb5fc839f6c6748c
BLAKE2b-256 50bc02ffb3b2c9d2977a28fe693360463aff1e366b7d6a63e61b2ffc679e165b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 250c8db0c9d086f404480fada1612566bcd32038061df24cd2e472ab1ce44ee8
MD5 7d25bff58372945a1f593290c52cdcb6
BLAKE2b-256 2a21bb79a54b25c8017238e192e8ccab2beef252d25b33741cdc596be223354d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 600e5045c39011aa47dbe351ab79a3aea23812680743c8ba6f4dc89b50c457b2
MD5 5e48ec2062e4ab525d4863aa63b88171
BLAKE2b-256 c5e363dc40073bc1d0c2f4d0ec3f9c0fa41e57b23332e4e1729f37997733a477

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 172bed31daf073c828929aed7a104819abd5937398f54e8d11e7d0262edd94bb
MD5 bf776dbae86a8ed0ad117f3d823009f5
BLAKE2b-256 791a90b3f8ca743739d23b9cf8d60573c116c2e705f6ed34c21d8d0c3f72b9da

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e5a07035f545d5d15bc4513f016655ad19dc828a5173134d04b3f2e82dda236f
MD5 2f46ed5d69b8de5e89693f143440d5c2
BLAKE2b-256 46a3d5e40c405c5a9f03e9cd0b94e24d4cd5ff3181f76b60adca07c0fd6a5c0a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9fb0c90343d8244751dc523b53aa4c273b6ba1793a1d2478ff89db915cd8df4b
MD5 79f627520b23a539b25487f3f9ed5e39
BLAKE2b-256 e12262a1577df15e6ca1b4984c973bcd4d03feaaf93b30527d725a321052760a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp311-cp311-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 6823857223ce1f60b4c9285281f2d177a7cbfdfe68de75258371a2a1b5edead5
MD5 fe4bfd543c4207b81bfa65910f5b14ee
BLAKE2b-256 02b8d454023765d09c99712bf1ea0490695bc656212ac41491abf994b54b443e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.5.6-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 207ab13bd954d91afac499e04d7e5f9a07873df1384cf12ab451125a485efbfe
MD5 8de53a6dfb923b889d771cdd1723e72c
BLAKE2b-256 b2a081815655b674b021483123ccfdf5d72b2824e25327a407f9f9f45502b41b

See more details on using hashes here.

Provenance

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

This release

0.5.6 This release

17 files

0.5.5

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