Skip to main content

A11

A11

Build AI applications like normal software.

A11 is the open-source runtime for connecting models, tools and interfaces while keeping your architecture. It gives ordinary asynchronous code named streams, concurrency, tools and local-to-remote execution, and exposes the running application to Studio.

The Python API runs on a native C++20 runtime. TypeScript, Kotlin, C++ and Flow use the same action boundary where an application needs another language or process.

  • 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.

Run the first action · Try the live research agent · Read the documentation · Star A11

Try A11 live

The hosted parallel research agent plans a topic, searches the web for each brief, reviews the returned evidence concurrently, and streams a cited report to the browser. Its default model and search backends need no visitor account or API key.

Run your first streaming action

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

a11 chat reuses a gateway at the default endpoint, or starts one for the duration of the chat with the current directory as its coding workspace. --cwd PATH selects another workspace for a new gateway. An explicit --gateway URL must be reachable.

In a coding chat, /sandbox unrestricted grants host filesystem access and disables kernel process confinement. /sandbox workspace-write or /sandbox read-only restores confinement. Approval remains a separate setting (/approval suggest|auto). Sandbox changes affect subsequent tool calls for all clients of that gateway, not already-running processes.

Studio and IDE clients can call the UI-only configure_coding_agent action with sandbox_mode (read-only, workspace-write, or unrestricted) and/or approval_mode (suggest or auto). Omitted fields keep their current values; the result contains approval_mode, sandbox_ceiling, and network. This control is excluded from the coding agent's model-facing action list.

Input questions appear above the TUI composer. Use Up/Down to select and Enter to answer, or type a response when free text is allowed. An output-area status line shows Working during model calls and Waiting for input while a question is pending.

Add capabilities incrementally

Streaming. An asynchronous iterator yields values before it finishes. Named outputs give model text, reasoning, progress and structured values their own interfaces. The caller reads those streams and checks the action's final status separately.

Concurrency. Use ordinary Python tasks or C++ runtime primitives for independent work. Use nested A11 actions when the runtime should understand a parent/child relationship and propagate cancellation.

Tools. Expose registered actions to model calls through the SDK, or serve the same registry through MCP. The application still owns validation, authorization and policy.

Remote execution. Serve a registry from another process or machine. The caller configures a connection and calls the action; the handler's input and output contract stays stable.

Flow is available when an application needs a composition expressed as data. It is optional: model APIs, MCP, LangGraph and existing application code can remain part of the stack.

Inspect the work with Studio

Open Studio to explore an endpoint's action schemas, run calls and inspect streamed outputs, logs, timings, failures and cancellation.

A11 Studio showing an action and streamed results

Explore complete applications

  • Deep research plans a topic, searches the web in parallel and streams a cited synthesis.
  • Model interactions present one streaming interface across Claude, Gemini, Ollama and OpenAI-compatible providers.
  • The a11 chat --voice-model ... path keeps audio capture, transcription and model interaction on separate streams.
  • Generative media streams progress independently from generated image bytes.
  • Browser tools let a model call typed actions implemented inside an existing page.

Each guide names its provider, model and hardware prerequisites. Local actions and remote transports do not require a model.

Install only what the application needs

The Python distribution is a11-kit, imported as a11. Provider integrations are optional extras such as a11-kit[ollama], a11-kit[claude] and a11-kit[openai]. Browser and TypeScript applications use:

npm install @curiositystack/a11

The standalone C++20 runtime needs no Python installation. Build and link it through its exported CMake targets using the instructions below.

Go deeper

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 <cstddef>
#include <iostream>
#include <memory>
#include <optional>
#include <string>
#include <vector>

#include <absl/log/log.h>
#include <absl/status/status.h>
#include <absl/status/status_macros.h>
#include <absl/strings/str_split.h>

#include "a11/actions/registry.h"
#include "a11/nodes/async_node.h"

namespace {

using a11::actions::Action;
using a11::actions::ActionPortSchema;
using a11::actions::ActionRegistry;
using a11::actions::ActionSchema;
using a11::nodes::AsyncNode;

ActionSchema SplitWordsSchema() {
  return ActionSchema{
      .name = "split-words",
      .inputs = {{"text", ActionPortSchema{
                             .name = "text", .type = "text/plain"}}},
      .outputs = {{"words", ActionPortSchema{
                               .name = "words", .type = "text/plain"}}},
  };
}

absl::Status SplitWords(std::shared_ptr<Action> action) {
  ABSL_ASSIGN_OR_RETURN(std::shared_ptr<AsyncNode> input,
                        action->GetInput("text"));
  ABSL_ASSIGN_OR_RETURN(
      std::optional<std::string> text,
      input->NextObject<std::string>().Await());
  if (!text.has_value()) {
    return absl::FailedPreconditionError("text input ended before a value");
  }

  ABSL_ASSIGN_OR_RETURN(std::shared_ptr<AsyncNode> output,
                        action->GetOutput("words"));
  std::vector<std::string> words =
      absl::StrSplit(*text, absl::ByAnyChar(" \t\n"), absl::SkipWhitespace());
  if (words.empty()) {
    return output->Finalize({.wait = true}).Await().status();
  }
  for (size_t index = 0; index + 1 < words.size(); ++index) {
    ABSL_RETURN_IF_ERROR(output->Put(words[index]).Await().status());
  }
  return output->Finalize(words.back(), {.wait = true}).Await().status();
}

absl::Status RunExample() {
  auto registry = std::make_shared<ActionRegistry>();
  ABSL_RETURN_IF_ERROR(registry->RegisterSync(
      "split-words", SplitWordsSchema(), SplitWords));
  ABSL_ASSIGN_OR_RETURN(std::shared_ptr<Action> action,
                        registry->MakeAction("split-words"));

  ABSL_ASSIGN_OR_RETURN(std::shared_ptr<AsyncNode> input,
                        action->GetInput("text"));
  ABSL_RETURN_IF_ERROR(
      input->Finalize(std::string("named streams arrive early"),
                      {.wait = true})
          .Await()
          .status());
  ABSL_RETURN_IF_ERROR(action->Run().status());

  ABSL_ASSIGN_OR_RETURN(std::shared_ptr<AsyncNode> output,
                        action->GetOutput("words"));
  while (true) {
    ABSL_ASSIGN_OR_RETURN(std::optional<std::string> word,
                          output->NextObject<std::string>().Await());
    if (!word.has_value()) break;
    std::cout << *word << '\n';
  }
  return action->Wait().Await().status();
}

}  // namespace

int main() {
  const absl::Status status = RunExample();
  if (!status.ok()) {
    LOG(ERROR) << status;
    return 1;
  }
  return 0;
}

This is the same split-words action as the Python quickstart: the registry owns its schema and handler, the input carries one complete value, and the output emits words as a stream. Reading the output before Wait() drains it while the handler is running and preserves backpressure.

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.

Metadata

Release files for a11-kit 0.7.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for a11-kit 0.7.7
File Size Uploaded Provenance
a11_kit-0.7.7.tar.gz 2.5 MB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for a11-kit 0.7.7
File
a11_kit-0.7.7-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
a11_kit-0.7.7-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details
a11_kit-0.7.7-cp314-cp314-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 macOS 14.0+ ARM64 Details
a11_kit-0.7.7-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
a11_kit-0.7.7-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
a11_kit-0.7.7-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
a11_kit-0.7.7-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
a11_kit-0.7.7-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
a11_kit-0.7.7-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
a11_kit-0.7.7-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
a11_kit-0.7.7-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
a11_kit-0.7.7-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details

Total release size: 141.4 MB

Release files / a11_kit-0.7.7.tar.gz

Download URL a11_kit-0.7.7.tar.gz
Size 2.5 MB
Tags Source
SHA-256 checksum
How to use checksums
b04fc460e07f8d7595e56eb16e3f1ad3a4aa0c3093311a322ff9da5018a00dc6
BLAKE2b-256 checksum
How to use checksums
37128df3bbf47dcd861b564f0e771bfba9ec32332c63883667446de7188f4f0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / a11_kit-0.7.7-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL a11_kit-0.7.7-cp314-cp314-manylinux_2_28_x86_64.whl
Size 12.6 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
95e27e4b5864a6b797cfb29cc86a5467e1d4f50847aeda1590ca6b61273f7de2
BLAKE2b-256 checksum
How to use checksums
c72dcf1dd2ee1f4ddf8ec8bb7f98b40b404a17e76cf0a11d99e05fd57601b2bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / a11_kit-0.7.7-cp314-cp314-manylinux_2_28_aarch64.whl

Download URL a11_kit-0.7.7-cp314-cp314-manylinux_2_28_aarch64.whl
Size 12.0 MB
Tags CPython 3.14 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
4245279848ebf2ab49968f010e1474fe7a5a9a54d5509eb11667fed366063e87
BLAKE2b-256 checksum
How to use checksums
d4eaa4d739545dfca1f5e2b7d5606d3ae497b8f6f7fcde471a4b77e1da26a064
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / a11_kit-0.7.7-cp314-cp314-macosx_14_0_arm64.whl

Download URL a11_kit-0.7.7-cp314-cp314-macosx_14_0_arm64.whl
Size 10.1 MB
Tags CPython 3.14 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
fb48e5a8e4afcd74524933ebdfe676f938d110ca2064d914932160a85eef9feb
BLAKE2b-256 checksum
How to use checksums
4fbb774600587bf626bb04d20f0cb62b71061eff226c2a2119a582ff146c5354
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / a11_kit-0.7.7-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL a11_kit-0.7.7-cp313-cp313-manylinux_2_28_x86_64.whl
Size 12.6 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ae94cbc0d8918ca7fa02f60aa6b34810701125d8557d4ccff656a65c6c714cf5
BLAKE2b-256 checksum
How to use checksums
8abd0c6b9398265cc3244586ee65f9f5b8220076b3165ea37a3ca6bed6d92d37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / a11_kit-0.7.7-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL a11_kit-0.7.7-cp313-cp313-manylinux_2_28_aarch64.whl
Size 12.0 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
62f1846b59741aa3df7f886186e4e9505da2551265b9d87d12214bbac64208ca
BLAKE2b-256 checksum
How to use checksums
0f8fb65b7f5ea3b93ff2114c83b89c62464661ce5cd56e48c784e0044b21dc6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / a11_kit-0.7.7-cp313-cp313-macosx_14_0_arm64.whl

Download URL a11_kit-0.7.7-cp313-cp313-macosx_14_0_arm64.whl
Size 10.1 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
2a41044592d7e8f43112a0f5badaab84f8d0c42631d3251c954d1ba608b63f3a
BLAKE2b-256 checksum
How to use checksums
31589f123fbdab38fede987584ece1168e1130c59346d1e5ed9c883110db1a49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / a11_kit-0.7.7-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL a11_kit-0.7.7-cp312-cp312-manylinux_2_28_x86_64.whl
Size 12.6 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c085c918df942ae3b8138888381441c3cc036722905976703372cdd24d608dc9
BLAKE2b-256 checksum
How to use checksums
646be8fc3d6e33d5d89074af671fd750d798990bdc225cc66a5fb3c3f7dcdad7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / a11_kit-0.7.7-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL a11_kit-0.7.7-cp312-cp312-manylinux_2_28_aarch64.whl
Size 12.0 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
26cfdd45425e0884c6a5ff86828ad87cce7481df3d729f0abeec25de897b52b5
BLAKE2b-256 checksum
How to use checksums
54c1457c20b275ebbc6fd37a87642e2a24f8eb6361e666de99a15c99cff06ba1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / a11_kit-0.7.7-cp312-cp312-macosx_14_0_arm64.whl

Download URL a11_kit-0.7.7-cp312-cp312-macosx_14_0_arm64.whl
Size 10.1 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
231c3b10d164782db48a05fecec7ac10f01fabbaf15ddb89f00fbcfcbf1bac82
BLAKE2b-256 checksum
How to use checksums
a150f5a700baef8c7718b40033483f7e1a12ba916a6187ecd2de298ad2fe5817
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / a11_kit-0.7.7-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL a11_kit-0.7.7-cp311-cp311-manylinux_2_28_x86_64.whl
Size 12.6 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3870f22c7a906586f98fb807d23126e924c023cf24070a091a772e6b11798e14
BLAKE2b-256 checksum
How to use checksums
c08d78542d3a52ae57283d997e0041fc993b053d80dbaa91342dfdf794e29395
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / a11_kit-0.7.7-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL a11_kit-0.7.7-cp311-cp311-manylinux_2_28_aarch64.whl
Size 12.0 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f301069a5a96d0a66f64cd09532e47eddbe0369fcf5d83d9fad44db3c206719e
BLAKE2b-256 checksum
How to use checksums
0f3c71d683a1814008f27ba9756a241002d90d60ad77d7b6cfda1e48b9a4c300
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / a11_kit-0.7.7-cp311-cp311-macosx_14_0_arm64.whl

Download URL a11_kit-0.7.7-cp311-cp311-macosx_14_0_arm64.whl
Size 10.1 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
61dd87cb334e28b58ddc547cb4bfa4b28ab0f2216c8afe7e8661c51a6e985f15
BLAKE2b-256 checksum
How to use checksums
d7507659480cce09c489a08db5a6aa5e5219be58fa76bccf05c9daf53c4dd34e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Security for a11-kit 0.7.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 13 files in this release have been uploaded with provenance metadata.

Select from 13 files

Attestation for a11_kit-0.7.7.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.7.7 This release

13 release files Full provenance

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