Skip to main content

results

Seal a run, record what it produced, and verify the chain.

Install

pip install results-cli

Quick start

results init
results seal prereg.md analysis.py data.csv --role input
results access "read zenodo metadata" --level "metadata only"

# run the computation, then record its outputs
results run output.json --run-id exp_001 --note "ICC analysis"
results claim "ICC = 0.42" --run-id exp_001 --confirmatory --location "Table 2"
results verify --files
chain intact: 5 events

  access       1
  claim        1
  init         1
  run          1
  seal         1

file hashes:
  ok         prereg.md
  ok         analysis.py
  ok         data.csv
  ok         output.json

all checks passed.

Commands

Command What it does
results init Start tracking results here
results seal <file>... Hash inputs before a run
results access <note> Record a data-access event
results run <file>... Record outputs after a run
results claim <text> Bind a manuscript claim to a run
results verify Check the ledger chain and every hash it names

The chain

A number in a manuscript names a claim. The claim names a run. The run names its outputs. The outputs were hashed when they were recorded. The inputs were hashed before the run started.

manuscript  →  claim  →  run  →  output file  →  sha256
                                  input files  →  sha256

results verify --files walks the whole thing and tells you what moved.

Data-access levels

The access timeline is what makes the confirmatory/exploratory distinction verifiable.

Level Meaning
nothing seen No target data touched
metadata only Structure, region names, sample sizes — not outcomes
structure seen Data shape and distributions, not the target variable
outcomes seen The dependent variable was observed

An analysis registered after outcomes seen is retrospective.

Verify output

Result Meaning
chain intact Every event's prev_hash matches the line before it
CHAIN BROKEN The ledger was edited after it was written
ok File matches its recorded hash
CHANGED File was modified since it was recorded
MISSING File no longer exists

The ledger

Append-only JSONL in .results/ledger.jsonl. Each line is hash-chained to the previous — editing or inserting a line breaks the chain. git diff shows what changed; results verify checks whether it should have.

Claude Code

plugin/ is a Claude Code plugin that tells Claude when to reach for the CLI.

/plugin marketplace add elliottower/results
/plugin install results@results

For all three reproducible-science tools in one plugin (results + prereg + citations):

/plugin marketplace add elliottower/reproducible-science

MIT licensed.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

results_cli-0.2.0.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

results_cli-0.2.0-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file results_cli-0.2.0.tar.gz.

File metadata

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

File hashes

Hashes for results_cli-0.2.0.tar.gz
Algorithm Hash digest
SHA256 de53eff818e6ef57b44f504ca2660b5ab7fca443a7b21b4d95e1dc31c142501d
MD5 31cf3a68199e3adb36a443e2fcdaae64
BLAKE2b-256 8cbd6bd1b28320bb64d01ecc42f0dfc7b2c0ec0ceb07dfb2e889bb9eaf07843b

See more details on using hashes here.

Provenance

The following attestation bundles were made for results_cli-0.2.0.tar.gz:

Publisher: publish-results.yml on elliottower/reproducible-science

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

File details

Details for the file results_cli-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: results_cli-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for results_cli-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b41e7105098f5f7b483fed4875a1783b87fdfdb2084ba3efb4683128e6fe71c3
MD5 eb3f6da140e45653ee5e7531ba44451f
BLAKE2b-256 6f31666e569f537639fedc89275157b35962e64fa793928e469775e26da93775

See more details on using hashes here.

Provenance

The following attestation bundles were made for results_cli-0.2.0-py3-none-any.whl:

Publisher: publish-results.yml on elliottower/reproducible-science

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

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

This release

0.2.0 This release

2 files

0.1.0

2 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