TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Save notes about where you left off in a game, and make a copy with private details removed when you want to share it.
ProductivityPython · JavaScriptGitHub @loganpendragonmultiverseOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗⭐ Gold Star Project I consider this project complete. Fixes, maintenance and good new ideas are still welcome. About Gold Stars
Save notes about where you left off in a game, and make a copy with private details removed when you want to share it.
Create a first card from an empty file ({"version": 1, "cards": []}), add another card, duplicate one with a generated unique ID, or remove one after confirmation. The browser updates game headings and printable values together. List fields use one item per actual line.
Edits stay only in the current tab until you download the new JSON file. Closing or reloading a changed editor prompts before leaving; printing does not save changes or clear the warning. No browser storage or network sync is added. Starting a download keeps the warning active because saving can be canceled. After saving the current JSON file, choose I saved the download to clear the warning. Editing, adding, duplicating or removing a card disables that acknowledgment until you export the current state again. IDs must be unique and required fields nonblank before download or the Print cards action. You can remove all cards and download a valid empty collection.
New and duplicated cards respect the HTML's selected privacy mode: default omits private notes, --share-safe also excludes screenshot references and unknown fields, and --include-private explicitly enables private notes. Retained text can still be sensitive. After editing a comparison page, its original comparison is hidden; download the new cards and regenerate the comparison with the CLI. Sources and existing outputs remain unchanged.
The browser editor blocks duplicate card IDs before download and explains how to correct them. Required fields must remain nonblank. After correcting an ID, download the edited cards and reopen them with the CLI.
Comparisons now tell the difference between booleans and numbers, even inside nested values.
JSON true differs from 1 and false differs from 0, including inside nested metadata. Numeric 1 and 1.0 compare equally; object key order does not matter, while array order does. Existing field-presence and privacy rules still apply.
Compare two saved sets of game cards using the same privacy settings for both.
Use where-was-i current.json --compare previous.json --share-safe --format html --output comparison.html. Both files must be version 1 card inputs. Comparison covers full files and cannot be combined with --game. Default comparisons omit private notes; --share-safe additionally removes screenshot references and unsupported fields from both sides, including removed and added cards. --include-private is explicit and incompatible with --share-safe. Retained goals, location and story text still need review. Changing an ID appears as removal/addition; neither input is modified.
Where Was I? Save Companion turns a small local JSON file into private return-to-game cards. Each card keeps the practical context that save files usually omit: current location, immediate goals, controls worth remembering, story context, loose ends, and the next action.
python -m pip install .
where-was-i examples/cards.json
where-was-i examples/cards.json --game "North Road" --format json
Cards can carry a spoiler boundary and a private note. Markdown reports omit private notes unless --include-private is explicitly supplied. Existing output files are never replaced.
The tool does not inspect game saves, synchronize accounts, infer story state, or verify that a note remains accurate. The JSON file is the source of truth and may contain spoilers or personal notes, so store and share it accordingly. Requires Python 3.10 or newer.
Part of the Logan Pendragon Forge open-source collection. Licensed under the MIT License.
Add editable printable return-to-game cards, last-played and screenshot references, and explicit share-safe exports with omission previews.
where-was-i examples/cards.json --format html --output return-cards.html
HTML edits card fields and downloads a new version 1 input; print layout includes full field values. last_played is an ISO date, screenshot_reference is a text attachment reference, and save_catalog_id optionally points to an operator-chosen catalog record. Neither images nor saves are opened. --share-safe works with Markdown, JSON and HTML: it omits private notes, screenshot references and unsupported extension fields, reporting counts without copying omitted values. Retained location, goals and story text still need review before sharing. --include-private is incompatible with --share-safe. Default reports continue to omit private_note. Source files and existing outputs remain unchanged.
The local card editor requires unique card IDs before download. If an edit duplicates another card ID, correct it and download again; required fields must also remain nonblank.