JinnLab 3
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 experimentb— run the Batch experimentd— save the current Strategy Designer version1–9— switch major workbench tabse— export experiments to CSVq— 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:
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)
| File | Size | Uploaded | |
|---|---|---|---|
| jinnlab-3.3.3.tar.gz | 23.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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