Skip to main content
jun

jun

the AI writes the code. you raise the daemon.

pypi python license


jun is a tiny terminal game for the age of AI coding. It runs in its own pane beside Claude Code. Every tool call your agent makes becomes prey — catch it in rhythm, chain combos, and raise a daemon that's a portrait of how you actually code.

pip install jun
jun init    # connect Claude Code, then restart it
jun         # the hunt begins

daemon getting too powerful?  jun off.


Claude Code works. you hunt.

The instant your agent picks up a task, the hunt is live. Its tool calls fly in as tokens — catch them in the green, chain a combo, trigger a surge. Every catch feeds the daemon you're raising.

call becomes
edit a strike
bash a heavy hit — land it in two
read / grep a wide, gentle scan
a quiet agent your daemon catches its breath

The daemon's form is generative, shaped by how you actually code. Lots of edits grow more limbs. Lots of test runs grow armor. Lots of reading grows more eyes. No two daemons are alike, and yours is the thing you screenshot and share.

      ·˘˘˘·
   ╭─────────╮
   │ ● ● ● ● │
   │   ‿ ‿   │
   ╰─────────╯
    │ │ │ │ │
    ╨ ╨ ╨ ╨ ╨

what works

  • Live hunts that start on their own — driven by your agent's real tool calls, not a simulation.
  • Per-kind cursor motion — a read drifts, a test run races, a thinking pause makes the cursor waver. The kind tells you how to time the catch.
  • Heavy tokens — a test run takes two timed hits, one per cursor pass.
  • Golden tokens — a rare jackpot, claimed with a quick double-tap in the zone. A perfect golden catch can permanently mutate the daemon with a spark.
  • Focus as the stakes — misses drain it, a quiet agent lets it recover, and at zero the hunt collapses.
  • Combo surges every five clean catches.
  • Evolutions — four permanent forks, sixteen possible daemons.
  • Daily streaks with a one-miss shield, and daily objectives that re-seed at midnight.
  • Training mode — practice against a simulated agent. Banks nothing; the daemon records only real work.
  • jun card — a shareable daemon card with your best run.
  • ? help, first-run intro, crash-safe atomic saves.

controls

key action
space catch a token · start a training run
1 2 choose a form at an evolution fork
esc end the hunt · leave a screen
? help — the loop and the controls
q quit (always saved)

A live hunt starts on its own when your agent works — that is the game, and it is what grows your daemon. With no agent, space starts a training run. The daemon is a record of your real coding.


how it connects to Claude Code

jun is standalone — it never launches or wraps Claude Code. Run it in a separate pane. jun init adds three hooks to ~/.claude/settings.json:

  • PostToolUse — each tool call becomes a hunt event
  • Stop — ends the hunt
  • Notification — surfaces "⚠ Claude needs you" in jun, so you never miss a permission prompt while you're catching tokens

The hook is written as an absolute <python> -m jun ... command, so it works even when jun isn't on Claude Code's PATH. Restart Claude Code after jun init — it only loads hooks at startup. jun off removes them cleanly.

If you installed jun with uvx (ephemeral), jun init would record a path that disappears after the run — install jun persistently instead (pip install jun, or uv tool install jun).


all commands

jun            # play (the default)
jun init       # connect Claude Code's hooks (run once, then restart Claude Code)
jun off        # remove the hooks
jun card       # print the shareable daemon card
jun new        # release your daemon and start fresh

development

uv sync
uv run jun

Issues and PRs welcome — bug reports especially. Release notes live in CHANGELOG.md.


jun is not productivity software

It is not a SaaS. It will not 10× your output. It's a daemon. It lives in your terminal. It's a little bit feral — and that's the whole point.

the AI doesn't need you. your daemon does.

Never be bored vibe coding again.


Released under the Apache License 2.0.

Metadata

Release files for jun 0.2.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 jun 0.2.0
File Size Uploaded
jun-0.2.0.tar.gz 33.8 kB Details

Built distribution (wheel)

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

Total release size: 67.5 kB

Release files / jun-0.2.0.tar.gz

Download URL jun-0.2.0.tar.gz
Size 33.8 kB
Tags Source
SHA-256 checksum
How to use checksums
f440c5d270fc90de778b3e521db39ef42b8717775b31e68ca160147851deda0e
BLAKE2b-256 checksum
How to use checksums
52b0489f4a2e5b94473bdde18e0b0b4522d4f73a4878a363efef7fc950539bb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 19, 2026.

Transparency log

Release files / jun-0.2.0-py3-none-any.whl

Download URL jun-0.2.0-py3-none-any.whl
Size 33.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
10fa68fdedb17bfa3abe9dc85531fa9258f6fc4e3f7acd9e23e035e3375e1769
BLAKE2b-256 checksum
How to use checksums
787ce1b744f905e0ba3b4b34c8a0d052a851cbaa85379662ee8b8d9097235cae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

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