Mossnote docs Open Mossnote

Reference

Limits, formats and options

Reference tables for limits, command-line and environment options, file formats, app addresses and map building blocks.

Limits#

WhatLimit
Note text / title50,000 / 200 characters
Answer to a question2,000 characters
Person's name / notes80 / 20,000 characters
Farm entry's name / notes80 / 20,000 characters
Progress maximum on a person1 to 99
Custom fields on a person or farm entry30 fields; label 40, value 500 characters
Planted or harvested count0 to 999,999
Tag name / tags on one record40 characters / 30
Links on one note50
Journal name60 characters
Section name30 characters
Seasons / season name / days in a season1 to 12 / 20 characters / 1 to 99
Game year1 to 99,999
Search query200 characters
Map name80 characters
Shapes / markers / layers / guides per map3,000 / 500 / 30 / 50
Points in one freehand stroke5,000
Text on a map label / on a text object / note on an object120 / 2,000 / 500 characters
Marker name / status / short note80 / 30 / 5,000 characters
Tags / custom fields on a marker10 / 10
Marker types50 (name up to 30 characters)
Map versions kept30 automatic, 50 named; automatic ones at most every 10 minutes
Import file size50 MB
Deleted items are kept30 days

Command-line and environment options#

Computer version only. Everything is optional.

FlagVariableDefaultWhat it does
--port <n>MOSS_PORT4317Port to listen on
--data-dir <folder>MOSS_DATA_DIRplatform defaultWhere the data folder is
--journal <name>MOSS_JOURNALnot setJournal (file name without .db) to open at start; made from the Default template if it does not exist. If it is damaged or was made by a newer version, Mossnote stops instead of opening a different journal. Unset: the one used last
--lanMOSS_LANnot set1 allows paired phones; 0 never, whatever Settings says. Unset: the choice saved in Settings
--no-openMOSS_OPEN_BROWSER10 stops it opening a browser
MOSS_BACKUP_KEEP14Automatic snapshots to keep per journal
MOSS_LOG_LEVELinfoerror, warn, info or debug. Logs never include note text
MOSS_HOST127.0.0.1Address to listen on. Must be a loopback address (an override exists but is unsupported)
--version, -vPrint the version
--help, -hPrint the options

Mossnote needs Node 22.14 or newer, or Python 3.10 or newer with the Python package, which brings its own Node.js. Older versions are refused with a message, because the SQLite module does not work on them. Node 22, 24 and 26 are tested. An option or a word that Mossnote does not know is reported and nothing starts. --port=4000 works as well as --port 4000, an option wins over its variable, and a variable that is set but empty counts as not set. The web version has no options; its address base is set when it is built (MOSS_BASE).

App addresses#

You can bookmark any of these. /… is relative to wherever Mossnote is served.

AddressShows
/Today
/day/<key>One in-game day
/journal and ?flag=…&state=…&tag=…&undated=1&order=ascThe Journal and its filters
/notes/<id>One note
/people, /people/<id>People list, one person (list also takes ?tag= and ?sort=updated)
/farm, /farm/<id>Farm list, one entry (Stardew Valley only; other journals show Not found)
/maps, /maps/<id>Maps list, one map (?pin=<id> selects a marker)
/search?q=…Search results
/settings, /settings#dataSettings and a section
/tags/<name>Redirects to the Journal filtered to that tag
/pairThe pairing page (computer version, phone access on)

In the web version the app also answers any other address with its Not found page, so a typed or bookmarked path always opens the app.

Export format#

Export JSON writes one JSON file. Its top level has these keys:

KeyHolds
format, formatVersionWhich kind of file, and its version (currently 1). A file with a newer version than the app can read is refused.
exportedAt, appWhen it was made, and the Mossnote version.
journalNameThe journal's name.
settingsCalendar, layout (template, sections), preferences and marker types.
tags, people, plantings, maps, notesYour records. They keep their identifiers, reference tags by name, and drop anything in Recently deleted.
  • Dates are written as { "year": 1, "season": 0, "day": 3 }; a note's date also gets the season's name for readability, which is ignored on import. In a day-counter journal "season" is always 0.
  • Import validates every field. It reports problems with their position in the file and changes nothing if there are any.

Export Markdown writes a readable document: # Mossnote, a line with the date and counts, then ## Journal (one ### heading per day, notes marked ✦ or ?), ## Not dated, ## Questions (### Open, ### Solved), ## People, ## Farm and ## Maps. Sections with nothing in them are left out.

A single map's Editable project file is a separate JSON file (.mossmap.json) that holds that map only.

Map building blocks#

  • Marker icons (20): pin, dot, star, flag, question, exclamation, door, key, chest, person, house, tree, water, mountain, cross, eye, heart, diamond, bolt, cave.
  • Named colours (6): ink, moss, sky, rose, amber, plum, plus a custom colour. Named colours adapt to the light and dark themes; exports use fixed colours.
  • Line widths: 1, 2, 3, 5, 8, 14. Line styles: solid, dashed, dotted.
  • Text kinds: Text, Card, Callout, Sticky. Connector routes: straight, curved, elbow. Arrowheads: none, one end, both.
  • Suggested layers: Background, Terrain, Paths, Locations, Notes. Suggested marker types: Important, Question, Person, Treasure, Entrance, Blocked, Interesting.

Under the hood#

  • Database: SQLite, one file per journal, with full-text search (FTS5) and automatic migrations.
  • Fonts: Inter and Literata, bundled; nothing is fetched.
  • Licence: MIT. SQLite WebAssembly in the web version is Apache-2.0.

These pages describe Mossnote 0.1.0-beta.1 and were checked against the source and the running app. Something wrong or missing? Tell us on GitHub.