Skip to main content
relayr: the bridge between artifactr and reflexr.

Docs Nightly Python 3.12, 3.13 and 3.14 Coverage: 100% Typed: pyright strict License: MIT

relayr is the bridge between artifactr and reflexr: events from chats and artifacts become events for rules, and runs act back in the chat as proposals and notices. It uses only the two libraries' public APIs, and neither library imports it or the other.

Status: built: the v0.1 plan. Both adapters, telemetry across the bridge, rules from chat and evaluation, and stackr's template wires it all into an application. It is on PyPI as relayr-ai, since the name relayr on PyPI is an unrelated project, and it is imported as relayr: uv add relayr-ai.

Why

An application can mount artifactr and reflexr side by side, on one database and one telemetry setup, over one shared context: the same tenant and workspace ids name the same context in both. But the two halves don't talk to each other. A rule can't see what people say in a thread, and a run can't put its result in front of the people it concerns. Each application that wants this would write its own glue, and meet the same hard parts: duplicate and lost deliveries, rules that trigger themselves, two kinds of session that don't line up, and events that anyone could forge. stackr's RFC-0002 designs the bridge once, and relayr is where it is built.

What it does

  • Inbound: chats and artifacts become events (built). One follower per workspace, with a lease, a cursor and dead letters, publishes selected artifactr events into reflexr under the artifactr namespace, such as artifactr:message_posted, artifactr:artifact_changed and artifactr:proposal_resolved, so that a message fires a rule exactly once, across a restart and a redelivery (ADR-0006).
  • Outbound: runs act as participants (built). A pydantic-ai capability and helpers let a run act in artifactr as its rule's own external agent, reflexr:<rule>, so artifactr's rules apply to it: under a propose write policy its edits are proposals, and relayr never resolves one (ADR-0002).
  • Notices by default (built). A rule's messages start no turn in the thread, unless the rule's allowlist grants it (ADR-0007).
  • Chains and sessions kept apart, and linked (built). A thread is never a causal chain, and a chain never joins a thread's session or model history; traces are linked, and Langfuse sessions tagged, across the two (ADR-0003, ADR-0004).
  • Rules from chat (built). A rule drafted in a thread is a rule artifact, reviewed as a proposal, and goes live in reflexr's stored rules only when a person who may install rules accepts it, with provenance recorded both ways. A rule changed in reflexr directly is proposed back to its artifact (ADR-0005).
  • Evaluation (built). Proposal outcomes become feedback on the runs that proposed them, with measures of acceptance, rewrites and rules from chat that stay live, in the evals extra.
  • A ledger of its own (built), in memory or in SQL, behind the sql, sqlite and postgres extras.

Documentation

relayr's documentation is its section of lattice's site, at https://lattice.alexnodeland.com/relayr/, built from docs/relayr/.

Contributing

See CONTRIBUTING.md for setup, the trunk-based workflow, and the RFC and ADR process.

License

MIT

Metadata

Release files for relayr-ai 0.1.1

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

Source distribution (sdist)

Source distribution for relayr-ai 0.1.1
File Size Uploaded
relayr_ai-0.1.1.tar.gz 45.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for relayr-ai 0.1.1
File Interpreter ABI Platform
relayr_ai-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 108.9 kB

Release files / relayr_ai-0.1.1.tar.gz

Download URL relayr_ai-0.1.1.tar.gz
Size 45.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ae170a0712cbe287363967e6ca19f1f998a4b87b535ccc74c53c6fbf74ae6381
BLAKE2b-256 checksum
How to use checksums
6d194477971f65ffa31b9d8d8d5865f45db2e323b32a5f592e0116318f652355
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 Oct 17, 2026.

Transparency log

Release files / relayr_ai-0.1.1-py3-none-any.whl

Download URL relayr_ai-0.1.1-py3-none-any.whl
Size 63.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d8b8af38b4fb1e9e4576cb544c43f517d4d58bebe208afefcaabffdf0ce7357c
BLAKE2b-256 checksum
How to use checksums
de3395e4386ecea0cb8027f1b7a56e7d942c3c8d0e0546cf11b0772caa22e3cd
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 Oct 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 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