Skip to main content

A11

A concurrent action and streaming runtime for building AI agents.

A11 lets you write agents as ordinary async def code: values stream between producers and consumers, work is packaged as composable actions, and the same code runs in one process or across a network with a transport swap. The API is Python; the runtime underneath is a native C++20 implementation, so the streaming and concurrency stay fast and off the event loop's critical path.

📖 Documentation →

Install

pip install "a11-kit[llm]"

The [llm] extra pulls in the Anthropic and Google model SDKs. Drop it for the core runtime only.

See it in 30 seconds

Chat with a model right from the terminal (streaming its reply, and its thoughts with -v):

export GEMINI_API_KEY=...        # or ANTHROPIC_API_KEY
a11 chat -v

The ideas

A11 is small at its core — a few ideas compose into everything from a one-file helper to a fleet of networked agents. (The Principles page goes deeper.)

  • Everything is asynchronous. Every operation that can wait is a coroutine you await; the runtime schedules thousands cooperatively. Completion is an event (await action.done.wait()) and lifecycles are context managers that finalise — or abort with the right status — for you.
  • Everything is a stream. The unit of state is a node: a single ordered sequence of chunks with a writer end and a reader end. An agent rarely has its whole answer at once — it has the next token, frame, or tool call — so nodes make incremental production and consumption the natural shape, with backpressure built in.
  • Actions are wired streams. An action's typed input/output ports are nodes, so calling one is wiring streams together. A handler can emit output before it has finished reading input — exactly what streaming an LLM response through a pipeline looks like.
  • Two extension points: storage and transport. A ChunkStore is the log behind a node (swap the in-memory default for disk, a database, or fault injection); a WireStream moves bytes between peers (in-process, WebSocket, HTTP SSE, WebRTC). Everything above them is unchanged, so making an agent distributed is a transport swap, not a rewrite.
  • Sessions tie it together. A Session multiplexes wire streams, dispatches incoming action calls against a registry, and drains and closes the connection cleanly.

A taste

Produce into a node and read it back — backpressure and finalisation included:

import asyncio
import a11


async def main() -> None:
    async with a11.AsyncNode.create("tokens") as node:   # seals on exit
        for word in ["A11", "streams", "everything"]:
            await node.put(word)                          # await = backpressure

    async for token in node:
        print(token)


asyncio.run(main())

Stream a model's reply through that same node abstraction — interact_with_llm is just an action whose text_output port carries tokens as they arrive:

import a11
from a11.sdk.interact_with_llm import INTERACT_WITH_LLM_SCHEMA, interact_with_llm
from a11.sdk.llm import LlmHeaders

interact = (
    a11.Action(INTERACT_WITH_LLM_SCHEMA)
    .bind_handler(interact_with_llm)
    .set_header(LlmHeaders.PROVIDER.value, "gemini")
    .set_header(LlmHeaders.MODEL.value, "gemini-3.5-flash")
    .run()
)

# ...then, inside your async code, feed the conversation in and stream the reply:
async for chunk in interact["text_output"]:   # tokens as the model emits them
    print(chunk, end="", flush=True)

The guides build these up step by step — from a node, to a WebSocket echo session, to calling an action on a remote server, to a tool-using agent.

Learn more

  • Documentation — principles, guides, and the full Python API reference.
  • Guides — hands-on walkthroughs from a single stream to a networked, tool-using agent.
  • Examples — runnable programs under examples/.

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.2.3.tar.gz (748.8 kB 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.2.3-cp314-cp314-manylinux_2_28_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

a11_kit-0.2.3-cp314-cp314-manylinux_2_28_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

a11_kit-0.2.3-cp314-cp314-macosx_14_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ x86-64

a11_kit-0.2.3-cp314-cp314-macosx_14_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

a11_kit-0.2.3-cp313-cp313-manylinux_2_28_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

a11_kit-0.2.3-cp313-cp313-manylinux_2_28_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

a11_kit-0.2.3-cp313-cp313-macosx_14_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ x86-64

a11_kit-0.2.3-cp313-cp313-macosx_14_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

a11_kit-0.2.3-cp312-cp312-manylinux_2_28_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

a11_kit-0.2.3-cp312-cp312-manylinux_2_28_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

a11_kit-0.2.3-cp312-cp312-macosx_14_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ x86-64

a11_kit-0.2.3-cp312-cp312-macosx_14_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

a11_kit-0.2.3-cp311-cp311-manylinux_2_28_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

a11_kit-0.2.3-cp311-cp311-manylinux_2_28_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

a11_kit-0.2.3-cp311-cp311-macosx_14_0_x86_64.whl (7.3 MB view details)

Uploaded CPython 3.11macOS 14.0+ x86-64

a11_kit-0.2.3-cp311-cp311-macosx_14_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

File details

Details for the file a11_kit-0.2.3.tar.gz.

File metadata

  • Download URL: a11_kit-0.2.3.tar.gz
  • Upload date:
  • Size: 748.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for a11_kit-0.2.3.tar.gz
Algorithm Hash digest
SHA256 83152319def530b639555d942eea9e6ea70a7622341b5be442da2b904e6860de
MD5 d3859a17f62b79ebf0a060b773888a42
BLAKE2b-256 2d4336937c0222e465269cda2a60b1a3bd2566ab7eadf5c3b8d53ae31b459a81

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 61fb976c1b13906a8d0a72e323ddce0bd909426266a7fa9d7d164acbf0ec9c61
MD5 c302ef524feea58254ac39b4f55c590e
BLAKE2b-256 423d8b494f656a73b60bd4967de9994bf1566290fc4362189e1ecdf3fe678837

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d09e69bef6530c37e62e712b1b46f49d1a095d2e97f9b8b3b72b663152c8df19
MD5 58d6e23248f4ccc1a625b736ffbccdb3
BLAKE2b-256 40ef0550d918ba2249896273496596da454e0b638e54f304d82ab5a4af12cba7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp314-cp314-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 31f29176aa9b3796476f16f0b08d08e891170e90ad95978c45c46d270b628d8a
MD5 26ead96f5c2a53d46a3aaaf801f02686
BLAKE2b-256 f589c57745672430d7ac520f94f693e52e834a4414c950af3c6671369b3b6748

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 96cbb8bea16d304c33986499a362b4358ea5c4acd85e965520225c5924ddf962
MD5 c68b84641fc1e4c9d883ed4028114021
BLAKE2b-256 644e02ceef4a2beda519ed3266fd1ab2bcf6e86c19d46bb19000867a21dca0e0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c95c2b8696f31d005b10ef95225a16eb6f6524e1dcd36ba3cc9fec8b30696cc3
MD5 a3e2a9a8db60977a6ae0c7b0492a3727
BLAKE2b-256 5f9d180d2020c8c46eda86c891c166686f8aa029aa0b9416e97d73c9c8c446ef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ad83a8ead52309ae4e0c415e997922fafd7cf9238dae264e11b82f6204bcb86b
MD5 b679bd3b0ac637bb2a21b7b551588c4c
BLAKE2b-256 acc3069ab704519c9e5e306a00078bfbcc6c73bdd6c47f45bd6adb0d16ecb4ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp313-cp313-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 9c05002f65dc5ad67792a835d962e6e4d3020ea1f789cd19f322710050116a87
MD5 ba40d60fe6b79f69b4a040477206cf40
BLAKE2b-256 0250300b3a97887291d6bf0cd9ba11fee53eab4a076ce078ac8dc864eaab9f40

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 48e9d09d6c182648861d8f518a6ad21cc15343e50c0c4c5766d1fe494a91ab1e
MD5 d6d261da603ded8900122622a77d73ce
BLAKE2b-256 04d8af7da0e91bd2cfd3dd2deb459a66b05bcc9908dff7d12f42fbaa0034da6f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fbed5ce0c3244884d1e5059fb01090c90a32c05ed3115897b5963b840dc4139c
MD5 0e8b351ba53e75d95ad3f8e0ea2e9e19
BLAKE2b-256 b5609dae5ba12f620acf876e9147aa74b8bb7e86aaa2bcb2ea059558b1f22a44

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9b079edc3224a59bc43d99d28940ba1abda63f107340f0b7837bc6a779c6335f
MD5 d3f04be0dec96e8065757997e4dc8394
BLAKE2b-256 e56fadd9bcdbb28f836e3d2df27d093234adef4ece13b0adaf979907c9ce649f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 7f3e5d02e29f06e1c344355521ac241e0d0364bfed248b7387575899bd9f4251
MD5 f4e05a73b646445482021ab3d888edbb
BLAKE2b-256 2ef1cbf5ada0e2d9886c6af80812864c17ea31d0c88a253280013af32a2078f5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 64794f30b0f16e620a890a236963db7c8c2de6559fd37e7dd1652daaf78a4ab6
MD5 41de9a7478b5033807888699aee79414
BLAKE2b-256 ca46f0a9be8ba6ba3d34aeb408745c7c3b6e8a77ba903eb2ca48d686deba1d0b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 999fdb39ca34e6fea38ae92a772cb6e8b32863560a9f4cb2e1d4297643fbc79f
MD5 a7ab9aed32cedf190b5d5dbea0301400
BLAKE2b-256 16de82703b4fa387ba69c9236a0e151b67504d24b26f773feb7b5ae4eafb4afe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 616074190397e287fbb46bd401499d8135bf36e36fe62e3ef08938aabdbad780
MD5 3b89112829e80e6469d752abb8c70c37
BLAKE2b-256 70c01f61c17ea5abc4d4870c859fbc978ca40ee1e61801d89daba608e967c426

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp311-cp311-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 ff70e764b33100698ee3ceeadc82dd1772780d4ab6d9b1789f89db8622bb95cc
MD5 0d4fa63b81cdc4203e76d45d504c66d8
BLAKE2b-256 1facbd65b79250d4b41d2afd9c2221b30a04db41ce84826ef1357d05bc3d2d09

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for a11_kit-0.2.3-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2d4a6793757d212a261006be6479d960147b021fef117b369147e16f8f185480
MD5 377ea1dcaef1ded320c242d28ac61940
BLAKE2b-256 891db682e2ab68aa06e0e8ebdf88f1072d3c7be1e0f4cbc93d20d0d0ece576d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11_kit-0.2.3-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: release.yml on hpnkv/a11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.5.6

17 files

0.5.5

17 files

0.5.4

17 files

0.5.3

17 files

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

This release

0.2.3 This release

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