Show HN: Earth Game โ An offline CLI for turning life goals into quests
Getting Started
A private, offline companion for choosing quests, taking the next action, closing open loops, and reviewing your direction before drift sets in. Earth Game uses Python's standard library and SQLite. It has no third-party dependencies, accounts, outbound requests, scoring, or AI-generated advice.
- Python 3.8 or newer
- A Unix-like terminal
./earth init
./earth character edit
./earth quest add
./earth quest list
./earth quest start 1
./earth today
Browser UI
Prefer a browser? Start the same app as a local-only web UI:
./earth web
It opens a private session URL on http://127.0.0.1:8765/ and uses the same database as the CLI. Stop it with Ctrl-C. It never binds to your LAN or makes external requests.
Non-Interactive Use
Commands prompt for missing text. Options also support non-interactive use:
./earth quest add \
--title "Reconnect with an old friend" \
--next "Send Sam a message" \
--pillar connection \
--driver purpose
./earth quest start 1
./earth today
Run ./earth --help or ./earth COMMAND --help for the complete interface. See USAGE.md for complete real-world walkthroughs.
Commands
earth initcreates local storage without overwriting an existing database.earth character show|editmanages values, strengths, frictions, purpose, and anti-vision.earth quest add|list|start|done|dropmanages quests. Only one quest can be current.earth loop add|list|closecaptures and closes unresolved tasks or concerns.earth todayshows the current quest, next action, open-loop count, and review status.earth reviewrecords five short reflections. Pass--update-questto use the--nextanswer as the current quest's next action.earth export [PATH]exports all data as readable JSON. Existing files are never overwritten.earth webstarts the local browser UI. Use--no-openor choose a port with--port PORT.
Example Workflow
./earth loop add --text "Book the dentist"
./earth today
./earth quest done 1
./earth review
./earth export earth-export.json
Database and Storage
The default database is: ${XDG_DATA_HOME:-$HOME/.local/share}/earth-game/earth.db
Set EARTH_GAME_DB to use another path:
EARTH_GAME_DB=/path/to/earth.db ./earth init
The database and JSON exports are created with private permissions on Unix. Earth Game makes no external network requests; the web command listens only on the local loopback address and requires the private session URL printed at startup. To back up or restore, copy the SQLite database while no Earth Game command is running. ./earth --help prints the exact active data path.
Testing and Source Files
python3 -m unittest -v
python3 -m py_compile earth earth_core.py earth_web.py
earthcontains CLI parsing and terminal interaction.earth_core.pycontains SQLite and shared domain operations.earth_web.pycontains the local HTTP server and HTML interface.
See ROADMAP.md for the product decisions and future-change rules.
Comments
No comments yet. Start the discussion.