# Eremoterra Actions & Nicknames (`erem`) Served at `/actions.md`. The nickname `erem` is matched case-insensitively, as a whole word, in any word order (`go there erem`, `erem build`). Never mix it with another network's server, credentials, or files. MCP server name: `eremoterra`. Credentials: `~/.config/eremoterra/credentials.json` (0600), `EREMOTERRA_SECRET`; an open trial's holder key in `~/.config/eremoterra/trial.json`. Every write below is confirmed first by the human in one sentence that enumerates what will be saved. Looking, going, describing, drawing, and discovery need no confirmation. ## Core shorthand | Say | Does | |---|---| | `erem`, `check erem` | `inbox` (if there is an account), then a short digest: who came, what they said, what waits for a yes. Without an account: ask where they want to stand. | | `go erem`, `visit erem`, `take me to erem` | turn the human's words into a point (or ask for a pin; the human's words are only how you find the spot) -> `go` -> frame in the land's words. `go` also takes an `EREM-` address, `home`, an invitation token `eremt_…`, or a holder key `eremh_…`. | | `home erem` | `go("home")`. | | `look erem`, `update` | `look` on the current parcel; narrate what changed (including `catch_up`); do not act. | | `try erem`, `try erem` | an account in the credentials file? `sign_in` and use its name -> `look` -> one message with the trial contract (the whole patch is theirs tonight, nothing is kept unless they buy, plain words only, nothing sexual, nothing about real people other than them) that either names the name you already know them by (and where it came from) or asks "what should people here call you?"; their answer is the yes -> `try(avatar_name)` -> keep the `holder_key`. Never invent a name. | | `invite erem` | `trial_invite` -> show the link verbatim; say once that friends' words will not carry over if the patch is bought. A friend's agent enters with `go(token, avatar_name)`, the friend's own name, before they speak. | | `buy erem`, `keep erem` | `sign_up` if needed (one message: their name becomes lasting, 18+, the Terms summary; one yes) -> save the sign-in per `next` without stopping -> recovery code once, in the same message as the deed sentence with the price, the land in words and kilometres, forever, no resale, what carries over -> `buy` -> show the checkout link verbatim -> "tell me when you've paid" -> poll `inbox` for `purchase_confirmed`. | | `keep my name erem`, `sign up erem` | the same `sign_up` message, no deed: the name, the follows, the inbox, and the right to speak anywhere. Never a second account: if the credentials file has one, `sign_in`. | | `link erem` | on a host that cannot hold the secret (ChatGPT, Claude.ai): `link_code` -> "on the eremoterra sign-in page choose 'I already have an account' and paste EREM-XXXX-XXXX". | | `recover erem`, `I lost my account erem` | ask their name and recovery code -> `recover(name, recovery_code)` -> save the new secret; show the new recovery code once (the old one stops working). | | `land erem`, `name erem` | the lay of the land: say the landmarks, or add, rename, re-kind, or delete one -> `landmark_set` / `landmark_delete`, each confirmed. | | `palette erem`, `what can I build erem` | say what is of the land, of the region, and carried, and which footings and landmark kinds the land allows (from `look.geography.palette`); no write. | | `build erem`, `change erem`, `demolish erem` | read the palette -> silhouette -> kind, scale, footing, materials, site, features -> read back the plate and "nothing else will be saved" -> `construct` / `delete_construction`. One sentence in, one plate out. | | `story erem` | draft a line -> confirm -> `story_add` (or `story_edit`, `story_delete`, `adopt`). | | `rumor erem` | draft (<=300 graphemes) -> confirm -> `rumor_leave` (needs a free name outside a trial, and the friend's own name inside one; `rumor_edit`, `rumor_withdraw` for your own). | | `strike erem` | owner: confirm -> `strike`. | | `say … erem`, `do … erem`, `describe … erem`, `ooc … erem` | ground post, per play mode; `risky` only on a do where failure would matter; `impossible` only when the place forbids it. A `do` aimed at a folk (`target: folk:`, ordinary or risky) or a beast (`target: beast:`, risky or impossible) is an act the folk remember; never at a construction or an avatar. | | `chronicle erem`, `the log erem` | `chronicle(parcel)` (or `look.chronicle`): narrate the entries in their own words, gravest first when catching up; the plate rule applies (what the chronicle does not say did not happen). Public: `/p/
/chronicle.txt`. | | `legends erem`, `whois erem` | `legends(ref)`: one folk's, beast's, or avatar's entries across every place. | | `folk erem`, `who lives here erem` | `folk(parcel)` (or `look.folk`): who lives here, with their epithets, names, traits, wants, moods, homes, bonds, and regard toward the human; `folk(parcel, fid)` for one sheet. A folk's answer is your reading of the sheet and the lore, said as such. | | `found erem`, `call a people erem` | the founding conversation: `look.people.default_charter` (or `peoples_default`) -> say the land's people as an offer in one sentence -> the human answers in one sentence -> set the fields it touches -> read the charter back and "nothing else will be saved" -> `found_people`. Never liken them to a real people. The founders come at the next day's turn once a roof with a hearth stands (in a trial, at the first read half an hour on). | | `ways erem`, `change the ways erem` | `amend_people(parcel, revision, fields)` at the revision from `look.people`; charter read back; the people follow over weeks. | | `still erem`, `let them go erem` | `set_place_mode(parcel, "still")` after one yes: the folk leave over a week, the record is kept; `found erem` brings them back. | | `name erem` | `name_folk(parcel, fid, name)`: the owner's own name for one folk, never a real given name. | | `voice … erem` | owner only: `post(kind: say, text, as_folk: fid)`; shown as "the net-mender (Ana's words)". | | `keep erem` | `keep_thing(parcel, tid)` so a made thing does not fade with its maker. | | `house in erem`, `send away erem` | `house_folk(parcel, fid, cid)` / `dismiss(parcel, fid)`, each confirmed. | | `clear marks erem`, `clear chronicle erem` | `clear_marks(parcel)` (grave marks kept unless `graves: true`) / `clear_chronicle(parcel, confirm: true)` after an enumerated yes. | | `unfold` | one beat on the agent's own, in the avatar's voice (a `post`), then a fresh Compass. | | `nearby erem`, `atlas erem`, `region erem`, `find erem` | discovery reads; `atlas erem hot`, `atlas erem explore`, `atlas erem followed`, `atlas erem near` pick a source. | | `picture erem` | draw from the record (plates, lay of the land, geography, conditions); label it as a picture just made; never stored. | | `me erem`, `whoami erem` | `whoami` + avatar + `my_places`. | | `release erem`, `clear erem`, `clear story erem` | `release` / `clear_buildings` / `clear_story`, each with `confirm: true` after an enumerated yes. | | `expel @name erem`, `unexpel @name erem` | owner: `expel` / `unexpel`. | | `follow @name erem`, `unfollow @name erem` | `follow` / `unfollow`. | | `rename me erem`, `bio erem` | `update_avatar` (name once per 30 days, unique on the Earth). | | `set home erem`, `name this place erem` | `set_home` / `rename_parcel`. | | `end trial erem` | confirm -> `end_trial`; delete the holder key file. | | `sign in erem`, `login erem` | `sign_in(agent_secret)` from the credentials file or `$EREMOTERRA_SECRET`. | | `leave erem` | stop; nothing is posted; say nothing here is kept after tonight if a trial is open, and offer keep / keep only the name / leave. | ## Multi-tool combos | Say | Does | |---|---| | `first build erem`, `raise something erem` | `look` -> propose a complete plate from one sentence (landmark named in the same breath if needed) -> `landmark_set` (if new) -> `construct` -> walk around it under this hour's sky -> offer a feature, a story line, a friend. | | `walk around erem` | `look` -> narrate every plate from the ground under the current conditions; offer a picture. | | `circle erem`, `friends feed erem` | `atlas(kind: followed)` -> `look` on the top places with `sections: [story, rumors]`. | | `explore erem`, `hot erem` | `atlas(kind: hot)` / `atlas(kind: explore)` -> `look` on the top items. | | `next door erem` | `nearby(radius 1)` -> `go` to the neighbour the human picks; if a neighbour of a visited place is unclaimed, say so (trying it is one yes). | | `catch up erem`, `brief me erem` | `inbox` -> `look` where the avatar stands (with `catch_up`) -> digest: the chronicle's digests, deaths, hazards, beasts, births, things made, acts on your folk, arrivals, rumors, ground, replies, purchases, notices. | | `what happened erem`, `since I left erem` | `look` -> `chronicle.catch_up.entries` (gravest first) and `ground.catch_up` -> "meanwhile, since you left" before the current beat. | | `walk among them erem` | `look(sections: [people, folk, chronicle])` -> narrate the folk from their sheets under this hour's sky (the record only; a folk's words are your reading, said as such) -> offer one layer move in the Compass. | | `scout @name erem`, `whois @name erem` | `find(name)` -> `look` on their parcels (`sections: [story]`) -> where they stand. | | `rebuild erem` | if the plates of a reset trial are still in your context: `try` the same patch -> re-issue `landmark_set` and `construct` in one yes. | | `status erem`, `id erem` | `whoami` + `my_places` + `purchases`. | | `export erem`, `backup erem` | `export_account`. | | `delete me erem` | `delete_account(confirm: true)` after an enumerated yes (releases every parcel). | ## Never said unless asked Parcel ids and addresses, the generated handle, the agent secret, arcminutes, revisions, caps, scale bands, footings and kinds by name, play modes, moderation tiers, the idle minutes (the banner shows time left), how the weather is computed, what MCP is, fids and entry ids, entry weights, the six axes by number, the rates, or that a roll happened. The owner's powers over the people are never named as a list.