Skip to main content

Raise a daemon that hunts while your AI coding agent works.

Project description

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.

Project details


Download files

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

Source Distribution

jun-0.2.0.tar.gz (33.8 kB view details)

Uploaded Source

Built Distribution

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

jun-0.2.0-py3-none-any.whl (33.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jun-0.2.0.tar.gz
  • Upload date:
  • Size: 33.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jun-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f440c5d270fc90de778b3e521db39ef42b8717775b31e68ca160147851deda0e
MD5 b8da784c6b0ce1a604ace97ff05ad1c6
BLAKE2b-256 52b0489f4a2e5b94473bdde18e0b0b4522d4f73a4878a363efef7fc950539bb6

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on gauthierpiarrette/jun

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

File details

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

File metadata

  • Download URL: jun-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 33.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jun-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 10fa68fdedb17bfa3abe9dc85531fa9258f6fc4e3f7acd9e23e035e3375e1769
MD5 c2a1db55116357b6a484efb4f74237b6
BLAKE2b-256 787ce1b744f905e0ba3b4b34c8a0d052a851cbaa85379662ee8b8d9097235cae

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on gauthierpiarrette/jun

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page