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

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.6
File Size Uploaded
a11_kit-0.7.6.tar.gz 2.5 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for a11-kit 0.7.6
File
a11_kit-0.7.6-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.6-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details
a11_kit-0.7.6-cp314-cp314-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 macOS 14.0+ ARM64 Details
a11_kit-0.7.6-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.6-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
a11_kit-0.7.6-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
a11_kit-0.7.6-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.6-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
a11_kit-0.7.6-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
a11_kit-0.7.6-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.6-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
a11_kit-0.7.6-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details

Total release size: 141.3 MB

Release files / a11_kit-0.7.6.tar.gz

Download URL a11_kit-0.7.6.tar.gz
Size 2.5 MB
Tags Source
SHA-256 checksum
How to use checksums
93df1ceabcb8dcd34e2af21928df8443919265a370a4b0233bd3d8ec19e9eec6
BLAKE2b-256 checksum
How to use checksums
4e80ce539326cc249427a40af6b1eadd4599b4075bb270f4cfa1ff2f9325946b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 16, 2026.

Transparency log

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

Download URL a11_kit-0.7.6-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
6637ac39e4364c9a92a5673afa383f45d6ef28a56bc62788a9d8de3bd936e52c
BLAKE2b-256 checksum
How to use checksums
4fc094802fa85ebab1b819b99ea6e273de90fdb284b1d4524b39d554994e92cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 16, 2026.

Transparency log

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

Download URL a11_kit-0.7.6-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
4e8e1a7bd9e58f8fc044b65522fc35e2b4cf93fce22a224d151e0181a1e1b394
BLAKE2b-256 checksum
How to use checksums
7a6e0827af5e78160268fce92989d45a88e3f23049e24d4705888b7a0c40854f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 16, 2026.

Transparency log

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

Download URL a11_kit-0.7.6-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
e1c6c57eca19ad741f0d760ef29f2541cc50bf22cd58a93798b8df6dc619a966
BLAKE2b-256 checksum
How to use checksums
53abaf6ad0f698b595ec6230f12dc2621d82fa6344fffdcd4c90b65aed430fec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 16, 2026.

Transparency log

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

Download URL a11_kit-0.7.6-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
4c3ddac999a9e41cf0244f964722d71b80b9f6c27198a645d4256ddf96dd8cbb
BLAKE2b-256 checksum
How to use checksums
d3264056daacebf7af09ff34e04cce3a339673fdb95c9fcc9d3d65f51ee22f6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 16, 2026.

Transparency log

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

Download URL a11_kit-0.7.6-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
f5c87ff3cbf3dcebbb208a13c511786d0f3c45e62e1c32715f3fee6fca5f03e1
BLAKE2b-256 checksum
How to use checksums
b116993b56cddc10e74a0efcba9aee6fd56656b8884be9ceb7f1a9e787bf996f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 16, 2026.

Transparency log

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

Download URL a11_kit-0.7.6-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
e9a0e184040155317fb02af2a679f6777b55cc45a5f7ef58122ccfb4918d34b3
BLAKE2b-256 checksum
How to use checksums
c35047b4641652da2cfad630ddb96d277f7ca64c8a0e562c093444e8219c2096
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 16, 2026.

Transparency log

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

Download URL a11_kit-0.7.6-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
49e9a40678fe24dfb2d7f18e0a9a0df6980d7004fd1c58ada5b346d2de88f4c0
BLAKE2b-256 checksum
How to use checksums
7b06ea929b33fa3a5a754f5e11510c727c5a3cca5862f05f0a2b749e7071b1ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 16, 2026.

Transparency log

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

Download URL a11_kit-0.7.6-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
66f528fdd6094a0031d55a72ba97c4faeebb789983b6d92a656710541a06c88c
BLAKE2b-256 checksum
How to use checksums
21ca460bf34268bd05aaf8128a805b20b21df9c2083ca913a880ad6f8af702e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 16, 2026.

Transparency log

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

Download URL a11_kit-0.7.6-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
28425a7b136a197202518e56debd21afffa6a05836295f673629b587b685a678
BLAKE2b-256 checksum
How to use checksums
c64e50ce324f1e6f248315249508a0216cd9dc62b1a9efed7e7e4cfc4835736f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 16, 2026.

Transparency log

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

Download URL a11_kit-0.7.6-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
1c7b44e6b87d9ce8cdcbbd807c296cf5897042fc0fa42af0d47da4509e07e926
BLAKE2b-256 checksum
How to use checksums
748ef6d0c2be160ae614b3d25ff793ec2459c9a81d0433005156ec35a64138ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 16, 2026.

Transparency log

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

Download URL a11_kit-0.7.6-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
e26ce7a2e7c6b53b06fa27d112b52fd57848d76667790468f4b5dea08a8362da
BLAKE2b-256 checksum
How to use checksums
9f7f4f9d3bdb069c1e436c10e56535d1d42179a77844da4253f6d560f5c1d4a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 16, 2026.

Transparency log

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

Download URL a11_kit-0.7.6-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
c0b6af6fd5bdd19f54cc6ff3fed4038735071b141f0a2bf63f43d003537e1e87
BLAKE2b-256 checksum
How to use checksums
9e911092164cf2153a1d789a70492301f9e958c33fc209f00daea6eefbe89c50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.6 This release

13 release files

0.7.5

13 release files

0.7.4

13 release files

0.7.3

13 release files

0.7.1

17 release files

0.7.0

17 release files

0.5.3

17 release files

0.5.2

17 release files

0.5.1

17 release files

0.5.0

17 release files

0.4.6

17 release files

0.4.4

17 release files

0.4.2

17 release files

0.4.1

17 release files

0.3.3

17 release files

0.3.2

17 release files

0.3.1

17 release files

0.3.0

17 release files

0.1.3

8 release files

0.1.2

8 release files

0.1.1

17 release files

0.1.0

3 release 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