Skip to main content

OpenAIDR

Session collection for AI coding agents.

OpenAIDR reads the session state AI coding agents already write to disk and normalises it into one session model with stable span identity.

Today it reads one kind: Claude Code. Codex and Cursor are the intended next kinds and are not read yet — a session from either is absent from the output entirely, not collected and marked. The parsing dependency supports more formats than this package instantiates, which is a distinction worth holding onto; what each additional kind would cost is measured in Agent kind coverage.

It answers what an agent did, never what that means. No scoring, no identity resolution, no findings, no upload path. Interpreting a session is a consumer's job; OpenAIDR takes no position on what a consumer concludes.

Why it is separate

Reading an agent's session log and normalising it is plumbing, and it runs on one machine — so it is open. Every new agent format is coverage a contributor can add without touching anything that interprets the result.

Session parsing itself comes from Uber's ADR project (adr-sensor, Apache-2.0), confined behind an adapter: upstream types convert at the boundary and never appear elsewhere. Any one agent kind can instead be backed by an OpenAIDR-owned reader on the same contract — per kind, not all-or-nothing.

Install and run

uv tool install openaidr

That installs an openaidr command:

$ openaidr --version
openaidr 0.0.1

openaidr sessions prints what each agent on this machine actually did — sessions, turns, tool calls, and how each one ended. Per-call timings come from the transcript's own record of both ends of a call, not from the parsing dependency's event schema, which carries no timestamp below the session.

For Claude Code it also reads the per-server MCP connection logs, which is the only place the transport, the server's advertised identity, and the outcome of an MCP call are written down. That enrichment is best-effort — the path is an undocumented cache — and every way it can fall short is reported rather than passed off as an absence.

$ uv run openaidr sessions --since 2d --detail
claude-code:96a1d0d4-d106-4cd1-9031-1e174593f8d0  [claude-code]  2026-08-29T05:11:38+00:00  86 turns
                   142c  Read
                    79c  Bash
    rejected        41c  github/create_issue

--format json emits the same account machine-readably, --agent-kind selects one kind, and --since bounds the window. Nothing is resolved to a component and nothing is judged: what a consumer concludes is the consumer's concern.

Design

docs/specs/session-collection.md — the session model, span identity, per-agent-kind normalisation, and the collection interface. Decisions in docs/adrs/.

Status

Pre-alpha. Session collection works for claude-code, backed by a reader of our own over Claude Code's JSONL transcripts: sessions, turns, tool calls, and span identity. The model has six outcome statuses; this reader emits five of them (unknown, rejected, pending, ok, error) from Claude Code's own transcripts and, for MCP calls, its per-server connection logs — interrupted is modelled but not emitted, since neither source records it. One cold pass, held in memory.

Not yet built: incremental collection over a watermark, and the six further agent kinds that adr-sensor also parses — for claude-code the dependency's parser is already in use, called one file at a time; the other six are simply not read yet. Why this reader walks the tree and calls that parser itself, rather than going through adr-sensor's own whole-tree walk, is recorded in docs/specs/session-collection.md.

Licence

Apache-2.0. See LICENSE.

Metadata

Release files for openaidr 0.1.0

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

Source distribution (sdist)

Source distribution for openaidr 0.1.0
File Size Uploaded
openaidr-0.1.0.tar.gz 171.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openaidr 0.1.0
File Interpreter ABI Platform
openaidr-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 234.6 kB

Release files / openaidr-0.1.0.tar.gz

Download URL openaidr-0.1.0.tar.gz
Size 171.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b69aacfd2c06613da06fd55e021794adf81754764330a42169794e43e8d8d7e1
BLAKE2b-256 checksum
How to use checksums
8ad54291499a3918b94a60495ef51ff1e300ce65fc5399399e2c52a1ff9fbead
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 4, 2026.

Transparency log

Release files / openaidr-0.1.0-py3-none-any.whl

Download URL openaidr-0.1.0-py3-none-any.whl
Size 63.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cf46fd32f59efcfe3221bb44950e1e3423d9088054e99c64863591a11ef1161a
BLAKE2b-256 checksum
How to use checksums
f86e9232c43c5f166f3f7cdae94252c7efdbdbdcf46742936c70619a7a134287
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 4, 2026.

Transparency log

Release history Release notifications | RSS feed

0.7.0

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

0.0.1

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