Skip to main content

JinnLab 3

JinnLab Architecture

JinnLab is a keyboard-first Textual research workbench for repeated Prisoner's Dilemma and evolutionary game theory.

Portfolio-grade capabilities

  • Head-to-head Axelrod matches with cooperation metrics and seeded reproducibility.
  • Batch experiment builder across multiple strategies and seeds.
  • Pairwise strategy payoff matrix.
  • Finite-population evolutionary simulation with mutation and generation snapshots.
  • Round-robin tournament rankings.
  • Rule-based Strategy Designer with persistent version lineage (v1 → v2 → v3).
  • Persistent strategy notes and experiment notebook (hypothesis, observation, conclusion).
  • Reproducible experiment IDs and match reruns.
  • SQLite/WAL persistence, CSV export, analytics, and a headless JSON/CSV CLI.
  • In-app instructions and plain-English result interpretation on every analysis workflow.

TUI

Run:

jinnlab

Keyboard shortcuts: m starts a match, 1–9 navigate major labs, r refreshes, e exports, and q quits.

The Guide tab explains score, cooperation rate, tournament rank, population share, seeds, repetitions, and how to avoid over-interpreting a single run.

Headless CLI

jinnlab match "Tit For Tat" Defector --turns 200 --repetitions 10 --seed 42
jinnlab tournament "Tit For Tat" Defector Grudger Cooperator --output csv
jinnlab matrix "Tit For Tat" Defector Grudger
jinnlab evolve "Tit For Tat=40" "Defector=30" "Cooperator=30" --generations 100

Install

bash install.sh
jinnlab

Data lives at ~/.local/share/jinnlab/jinnlab.db; exports live under ~/.local/share/jinnlab/exports/.

Development

python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
pytest

CI and container

GitHub Actions tests Python 3.10–3.12 on pushes and pull requests.

Headless experiments can run in a container:

docker build -t jinnlab .
docker run --rm jinnlab match "Tit For Tat" Defector --seed 42

The TUI is intended for a real terminal; the container entry point defaults to the headless CLI.

Keyboard shortcuts

  • m — start the current Match experiment
  • b — run the Batch experiment
  • d — save the current Strategy Designer version
  • 1–9 — switch major workbench tabs
  • e — export experiments to CSV
  • q — quit

The Match, Batch, and Designer screens are vertically scrollable so their primary action buttons remain reachable on smaller terminals.

3.2 Designer live refresh

Custom strategy families are available immediately after saving. Use FamilyName for the latest version or FamilyName vN for an exact saved version.

Install from PyPI

JinnLab is available on PyPI:

python3 -m pip install jinnlab
jinnlab

Upgrade to the latest release with:

python3 -m pip install --upgrade jinnlab

Package page:

https://pypi.org/project/jinnlab/

Release files for jinnlab 3.3.3

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

Source distribution (sdist)

Source distribution for jinnlab 3.3.3
File Size Uploaded
jinnlab-3.3.3.tar.gz 23.5 kB Details

Built distribution (wheel)

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

Total release size: 46.6 kB

Release files / jinnlab-3.3.3.tar.gz

Download URL jinnlab-3.3.3.tar.gz
Size 23.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7e745736dbe9d88323c777aed6e6e08c6b7b132e070d1912196377ad1323f8b0
BLAKE2b-256 checksum
How to use checksums
0bc5db946ed1209cabc61a5c9346803969d596c9b55bd02bd1ffae27a1614d45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 23, 2026.

Transparency log

Release files / jinnlab-3.3.3-py3-none-any.whl

Download URL jinnlab-3.3.3-py3-none-any.whl
Size 23.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
53e0ac7c622733d18f33356c44b4c4f1102ba461f66f70989779aff2e828f7f1
BLAKE2b-256 checksum
How to use checksums
9cf672adceb78b34a3be1ae8d866e0a22b249a6c72a875e6ea5906614a0a87b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

3.3.3 This release

2 release files

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