Skip to main content

adrinaline

ADRs in a line: git-native Architecture Decision Records for humans and coding agents.

adr keeps decisions as Markdown files with YAML frontmatter in your repository, numbers them sequentially, links them into a graph, ties them to the code they govern, and answers every question in plain text or JSON.

Install

uv tool install adrinaline   # provides `adr` (and `adrinaline`)
# or run without installing:
uvx adrinaline --help

Requires Python 3.14+ and git.

Quick start

adr init                                   # docs/adr/.template.md + 0001-record-architecture-decisions.md
adr new "Use PostgreSQL" --tag storage     # docs/adr/0002-use-postgresql.md (proposed)
adr accept 2
adr new "Use PostgreSQL 17" --supersedes 2 --accepted
adr list
adr graph --format mermaid                 # paste into any GitHub/GitLab Markdown file
adr check                                  # CI-friendly validation

Tie decisions to code

Add scope globs to an ADR's frontmatter:

scope: ["src/db/**", "migrations/**"]

Then:

adr for src/db/pool.py                     # which decisions govern this file?
adr check --diff origin/main --strict      # CI gate: changed files governed by ADRs in force

History

Every read command accepts --at REF:

adr list --at v1.2 --status accepted       # what was in force at release 1.2?
adr log 7                                  # git history of ADR 0007

For coding agents

Add one line to AGENTS.md (or your agent's equivalent):

Run `adr prime` at the start of every session and follow the ADRs it lists.

adr prime --budget 400 limits the briefing to about 400 words, picking the most important and most relevant decisions first (the top-scored ADR is always shown). adr skill prints a skill that teaches agents when and how to write ADRs; redirect it into your agent's skill directory (for example adr skill > .claude/skills/adr/SKILL.md). Every command accepts --json and returns a stable error envelope with exit code 3 on domain errors. Global flags (--json, --dir, -q, --at) work before or after the subcommand.

Commands

Command Purpose
adr init Create the ADR directory, template and ADR 0001
adr new TITLE Create an ADR (--supersedes, --amends, --depends-on, --relates-to, --body-file -)
adr show REF / adr list / adr index Read ADRs
adr accept / reject / deprecate / supersede Change status
adr link / unlink Manage relations
adr graph [REF] Text, Mermaid, DOT or JSON graph; --reverse for impact, --rank for keystones (text or JSON only)
adr for PATH ADRs governing a file
adr check Validate everything
adr renumber REF --to N Fix numbering collisions after merges
adr log REF Git history of an ADR
adr prime / adr skill Agent briefing and skill

The full specification is in docs/SPEC.md.

Licence

MIT

Metadata

Release files for adrinaline 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 adrinaline 0.1.0
File Size Uploaded Provenance Actions
adrinaline-0.1.0.tar.gz 1.2 MB Without provenance Details for adrinaline-0.1.0.tar.gz

Built distribution (wheel)

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

Total release size: 1.3 MB

Release files / adrinaline-0.1.0.tar.gz

Download URL adrinaline-0.1.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
e9e6063c9efa90b8f43a18458a2a4f85692c4d4e1609698b326959ff94a58c75
BLAKE2b-256 checksum
How to use checksums
1dde8e71fb0b2436934397ed7087d595ac0ddc472eb62ee4625d1ea9f1d45306
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

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

Download URL adrinaline-0.1.0-py3-none-any.whl
Size 28.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2da81b20fe35f010508283be78393f54b783848738d029529d1f230bf0839229
BLAKE2b-256 checksum
How to use checksums
e86957afe9ee6b5042e9630b8dbffea9355fc85571d149441bac0a62a23ab18d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for adrinaline 0.1.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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