NeonRP
A developer-friendly command-line engine for playing and iterating on file-backed text RPGs — your whole world is plain files you can read, diff, and version.
Install
# macOS / Linux
curl -LsSf https://worldlines.gg/install.sh | sh
# Windows (PowerShell)
irm https://worldlines.gg/install.ps1 | iex
Installs uv (if missing) then uv tool install worldlines. Verify with
neonrp --help — or just run worldlines. The curl/irm path avoids the
macOS Gatekeeper and Windows SmartScreen prompts a downloaded file would trip.
Double-click launcher (no terminal)
Download a platform launcher and double-click it. It opens a terminal, runs the first-time install (or self-updates on later launches), then hands off to the TUI.
| Platform | Download |
|---|---|
| macOS | WorldLines.dmg |
| Windows | WorldLines.bat |
Because the app isn't signed yet, the first run only needs one approval:
- macOS — right-click
WorldLines.app→ Open → Open, orxattr -d com.apple.quarantine /Applications/WorldLines.app. - Windows — SmartScreen → More info → Run anyway.
macOS/Windows remember the choice afterward. Linux uses the terminal install above.
Users in China (throttled GitHub / Cloudflare)
If curl https://worldlines.gg/install.sh times out:
# Force uv onto a China-hosted PyPI mirror, then install:
export UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple
uv tool install worldlines
# …or pass CHINA_MIRROR=1 to the installer in one shot:
CHINA_MIRROR=1 curl -LsSf https://worldlines.gg/install.sh | sh
Alternative mirrors: mirrors.aliyun.com/pypi/simple,
mirrors.cloud.tencent.com/pypi/simple. neonrp self-update honors the same
UV_DEFAULT_INDEX, so exporting it in your shell profile keeps upgrades on the
mirror too.
Developers — editable install
uv tool install -e /path/to/NeonRP # picks up local code changes
neonrp --help
Play
neonrp # launch the TUI → pick a built-in world → play
That's it. Prefer driving the engine from the shell?
neonrp init # scaffold a project in the current dir
neonrp run "look around" # take a turn
neonrp save # checkpoint
neonrp undo # step back
neonrp branch "steal-route" # fork an alternate timeline
neonrp init is enough to start in TUI build mode; fresh projects expose the
packaged builtin worlds and skills automatically.
Why an engine, not a web chat
NeonRP is built around engine-like guarantees a chat box can't give you:
- Resume / Undo / Branch — checkpointed gameplay you can safely explore.
- Plan → Diff → Apply — changes are visible and validated before they land.
- Append-only events + snapshots — reproducible, debuggable runs.
- Minimal-context retrieval — fast even with large worlds.
- Sandbox & Replay — isolated experimentation and determinism checks.
Terminal UI
neonrp tui # interactive gameplay
neonrp tui --continue # resume the last session
neonrp tui --provider lmstudio # local OpenAI-compatible server
neonrp tui --import-card char.png # import a SillyTavern card first
Single-pane Claude Code-style transcript + input, slash-command workflow with completion, live token counters, and streaming output.
| Key | Action | Key | Action | |
|---|---|---|---|---|
q / Ctrl+Q |
Quit | Ctrl+K / Ctrl+P |
Command palette | |
Esc |
Interrupt the in-flight turn | F6 |
Copy full transcript |
See the TUI Guide for the full picture.
Testing
uv run pytest -q # fast regression
uv run pytest --cov=neonrp --cov-report=term-missing # coverage
NEONRP_E2E_LLM=1 uv run pytest tests/test_llm_real_endpoint.py -q # real LLM e2e
Documentation
- CLI Reference — every command: validate, index, agents, import, sandbox/replay, embedding retrieval, and more.
- Tutorial: Your First Game — zero to first turn.
- TUI Guide — terminal UI documentation.
- Architecture Overview — system design.
- Product Roadmap — release direction.
- Developer Guide — contributing and internals.
Metadata
Release files for neonrp 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| neonrp-0.3.0.tar.gz | 56.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| neonrp-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.5 MB
Release files / neonrp-0.3.0.tar.gz
| Download URL | neonrp-0.3.0.tar.gz |
|---|---|
| Size | 56.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4d9d8e79c56135d0b34050d4e4633a4879d46f26114baf7a8354790cf874f865
|
|
BLAKE2b-256 checksum How to use checksums |
3b58297b0b447b051c6c13896cc0acc0b319b7b0ed30693d71e453ef76274c91
|
| 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 Jul 13, 2026.
Transparency logRelease files / neonrp-0.3.0-py3-none-any.whl
| Download URL | neonrp-0.3.0-py3-none-any.whl |
|---|---|
| Size | 35.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e0a23b04e906d82afc67c8fed2accf19b3818903f92df67de27e54cd2c2c34b
|
|
BLAKE2b-256 checksum How to use checksums |
0f55bbbbe1398a2b38a6191d80cc631bf40fe44b721b597175ebca51f5d32280
|
| 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 Jul 13, 2026.
Transparency log