GEIST

Glossary · อภิธานศัพท์

Every word GEIST uses, in English and Thai. These are the same terms the product, the CLI and the docs are checked against — one list, so they cannot drift apart.

Identity & membership

Accountบัญชีบัญชี คืออะไร?
the authentication identity: a row in Supabase auth.users. Created when someone signs in (Discord, GitHub, Google, or email magic link). This is the technical credential, not the public persona. See ADR-007.
Memberสมาชิกสมาชิก คืออะไร?
a community participant (the human). Every Member is backed by one User/Account and is represented publicly by a Profile.

Not: maker (as-person) · user (as-person)

Profileโปรไฟล์โปรไฟล์ คืออะไร?
the public identity of a Member; the public.profiles row, 1:1 with the User/Account. Holds handle, display name, avatar, bio, and links. A Profile is complete once it has a handle (onboarding done).
Handleแฮนเดิลแฮนเดิล คืออะไร?
a Member's unique, case-insensitive public identifier (e.g. nuch), shown and linked as @handle (the public page lives at /@handle).
Lead Petสัตว์เลี้ยงหลักสัตว์เลี้ยงหลัก คืออะไร?
the Pet a Member chooses to lead their Page hero. Defaults to the Member's most-adopted published Pet when unset; only a Member's own published Pet can be their Lead Pet, and the Page falls back gracefully if it is later deleted/unpublished. See ADR-056 (Page v2).
Earned Badgeแบดจ์ที่ได้รับแบดจ์ที่ได้รับ คืออะไร?
qualitative recognition derived from a Member's real contribution stats (published Pets, total adoptions) via deriveBadges(). Non-gameable — the counts come from others, not self-action — and shown as calm labels, never as a rank or a displayed number (guardrail ①). See ADR-027.
Builderนักสร้างนักสร้าง คืออะไร?
the collective identity of the GEIST community: everyone here is a builder. A Builder is not a title but a decision — anyone who acts on the fact that they now can (the belief; see docs/CONCEPT.md, docs/BRANDING.md, ADR-118). builder is allowed as a person too ("a builder like you"); the account-and-role noun for one individual is a Member.

The brand

GEISTGEISTGEIST คืออะไร?
the name of all of it: the brand, the native desktop app, the geist:// URL scheme, the geist CLI, and this website. heygeist.com is GEIST; there is no separate name for the site. The four senses were never ambiguous to a Member, and all of them keep the word. Note heygeist/geist-hub is a different product in the same org, so "hub" is spoken for and is not revived as a name here.

Not: Pet Hub · GEIST Platform (docs-only)

Product surfaces (the world the terms live in)

Pageเพจเพจ คืออะไร?
a Member's living public page at /@handle: their Lead Pet, identity (bio, links, structured fields), recent ships, Pinned, Earned Badges, and one Open in GEIST. The lite Page (/lite/@handle) is its read-only, no-install preview variant. Renamed from Desk. The schema deliberately keeps the old word (desk_guestbook, desk_showcase, desk_id, desks), so desk is allowed db-only rather than retired outright — the same trade already made for user and shipMoment. desktop is a different word and is never affected by this rename. The coinage "The Digital Desk" for the community's Discord home stays retired; say the GEIST Discord, or simply Discord. See ADR-044, ADR-046, and ADR-056 (the getDesk read-model behind it).

Not: Digital Desk · Desk (as-name)

Pinnedปักหมุดปักหมุด คืออะไร?
a small, ordered, capped set of Pets a Member pins to their Page to express taste; may include any published Pet (own or others'). Distinct from a Collection, which holds only its owner's own Pets, carries a title and a slug, and is reviewed before anyone else sees it — Pinned is neither named nor reviewed, and it lives on a Member's Page rather than on the Catalog. The verb is pin; the set is Pinned. Renamed from Desk Showcase; the table stays desk_showcase. (Page v2.)

Not: Desk Showcase (as-name)

Petสัตว์เลี้ยงสัตว์เลี้ยง คืออะไร?
the creature: a small animated character that lives beside a Member's AI agent, listed in the Catalog (/pets); always a conforming ADR-006 spritesheet. A Pet is either curated (system-owned, owner_id null) or Member-uploaded (owned by a Member via their Profile). The catalog is currently all Member-uploaded — curated is a latent capability (the schema allows it) but nothing is seeded. A Member may own many Pets. A Member-uploaded Pet is a draft until its owner publishes it. See ADR-009.

Not: companion · living pet · buddy · codex (as-creature) · friend (as-creature) · geist (as-creature)

Catalogแคตตาล็อกแคตตาล็อก คืออะไร?
the public browse surface for Pets at /pets: every published Pet, discoverable by free-text search, Trait filter, and sort. Distinct from a Pinned (one Member's pinned taste) — the Catalog is the whole published set, unfiltered by curation. The Catalog extends continuously as you scroll rather than by page; search, trait, and sort live in the URL and are shareable, but a scroll position is not. See ADR-018 (URL-driven discovery) and ADR-084 (cursor-paged infinite scroll). Collections sit beside the Pets. A Collection is a named, reviewed set of one Member's own Pets; the Catalog carries the published ones as their own section, and each has a page at /collections/<slug>. ADR-160 amends ADR-149: the admin-curated editorial shelves ADR-149 removed stay removed, and what came back is the half ADR-028 deferred — a Member curating their own Pets. The Catalog itself is still the whole published set, unfiltered by curation. The singular /collection is an unrelated feature — see Skin. Collection has no entry of its own yet: its Thai label is the owner's under #656, and #763 makes a concept unaddable without one.
Traitนิสัยนิสัย คืออะไร?
a Pet's temperament label (Calm, Cheerful, Dreamy, Energetic, …), chosen at upload (up to 3) and the Catalog's filter axis. Heed the name clash: the domain and the UI both say Trait, but the code and the schema call it a tag (PET_TAGS, pets.tags, ?tag=). Say Trait when talking to a Member, tag when talking to the database.
Pet Ownerเจ้าของสัตว์เลี้ยงเจ้าของสัตว์เลี้ยง คืออะไร?
the Member who uploaded a Member-uploaded Pet; shown as by @handle on the catalog tile and detail page. Curated Pets have no owner.
GEIST appแอป GEISTแอป GEIST คืออะไร?
the native desktop client registered to the geist:// URL scheme; it runs Pets and is the target of Open in GEIST. Distinct from the GEIST website (this app, whose Catalog lives at /pets) — both are GEIST. See ADR-011.
GEIST CLICLI GEISTCLI GEIST คืออะไร?
the terminal client a Member uses to install a published Pet into a desktop app's pet folder (geist install). Its feed commands (post, delete, status) left with the Feed in 1.0.0 (ADR-181). The command is geist; the npm package is @heygeist/cli. These are two different names and only one of them is a name a Member types — the package name appears once, in an install line. @geist/cli is retired: that scope was never ours, nothing was ever published under it, and the rename landed 2026-08-02 (#810, with ADR-113 §6 amended in place). Published to npm 2026-08-08 at 0.2.0 — npm i -g @heygeist/cli is a real instruction now, and the one-way door ADR-113 §6 named is open: the package name is permanent.

Not: @geist/cli

blog postบทความบทความ คืออะไร?
one long-form article at /blog/<slug>, written to bring people who have never heard of GEIST to GEIST. A blog post is a markdown file a writer owns and has no database row of its own. Say blog post, never a bare post, for this concept. In Thai it is บทความ. Per ADR-106 a term may legitimately differ per locale — these are names, not translations. Every blog post carries exactly one ask. See ADR-117 §7 (the noun) and §5 (the single ask).
What's NewWhat's NewWhat's New คืออะไร?
the GEIST app's release history on the website, at /whats-new: one entry per shipped macOS version, mirrored from the public heygeist/geist-public releases into docs/app-release/ and landed through a pull request, never fetched live. A withdrawn version stays listed and is marked as such — someone whose app will not launch after updating needs that page to exist. It is the site's only surface for app releases — a Pet's Release is a different sense of the word; see that entry. The website's own notes at /releases — called the platform archive while it existed — were removed by ADR-126 §5, and its three URLs redirect here. The two had to be separate collections while both existed, because both products shipped a v0.1.0 and a v0.2.0 meaning entirely different things; the site now carries one timeline, and it is the app's. What's New is registered in src/lib/nav.ts the way /blog is, so it appears in the sidebar, ⌘K, the marketing header and the footer. See ADR-123 for the surface and ADR-126 for the nav and the removal. - _Note_ The Thai label is the English words in Latin script (owner's call, 2026-08-16), following Challenge / GEIST / Hatch Night / API. Unlike Challenge — whose transliteration shipped by default while the decision sheet's slot sat blank — this one was chosen deliberately, with the plain-Thai option (บันทึกการอัปเดต) considered and rejected. That word is now retired: it was the old nav.releases label and, being unqualified, is enforced by the Biome word rules.

Not: Changelog (as-name) · Release notes (as-name)

SeriesSeriesSeries คืออะไร?
GEIST's monthly themed set of Pets, told as a story: a number and a name, a story, its art, and a lineup of Pets that each carry one line about their part in it. One Pet in the lineup may be held back as the secret Pet: it is never released, and a Member gets it only by a Claim inside the window. A Series runs for one window that every Pet in it shares, and it keeps a page at /series/<slug> that never moves; /series shows the one running now. A Series reaches the Spotlight carousel on /pets only when an admin puts it there: it shows as one Series slide while it runs, and as a teaser before it opens. A new Pet can be uploaded straight into the lineup; it is released when the Series opens, and until then its release follows the Series: move the opening and the Pet moves with it. The week a Series is open is its drop: Members Collect its Pets and Claim its secret. See ADR-170, ADR-172, ADR-174, ADR-176 and ADR-177. - _Note_ The Thai label is the English word in Latin script, following Release and What's New (ADR-170).
SpotlightSpotlightSpotlight คืออะไร?
the ordered list an admin curates for the carousel at the top of /pets. Each item is a Series or a Pet, and the list has no dates: an item leaves by itself when its own thing ends (a Series when it closes, a limited edition on its final day), and a Pet otherwise stays until an admin removes it. Limited editions that can still be adopted join after the list without being added. The five other pages that show Spotlight Pets show the carousel's Pets in the same order. An admin adds to Spotlight; a Series page has a Show in Spotlight switch. See ADR-172 and ADR-174. - _Note_ Never "pin" for this: Pinned is a Member's Page. The Thai label is the English word in Latin script, following Series.
Silhouetteภาพเงาภาพเงา คืออะไร?
the one-colour shape of a Pet that is not public yet, cut from its Idle frame when the Pet is uploaded. Before a Series opens, and for its secret Pet until the reveal moment, the Series page and its Spotlight teaser show silhouettes in the lineup's seats, with no names. It is the only image of a Pet that may be public before its Release. See ADR-174. - _Note_ The Thai label is agent-proposed (2026-09-25) and awaits the owner's review.

Lifecycle (how a Pet begins, and how it travels)

hatchฟักฟัก คืออะไร?
bring a new Pet into existence: a Member creates their own Pet (/hatch). Nothing is taken from anyone.
ReleaseReleaseRelease คืออะไร?
the moment a Pet goes public. Before it, the Pet is hidden from everyone but its owner and admins: absent from the Catalog, its own page and the GEIST CLI, as if it did not exist. From it on, the Pet can be adopted, and the Catalog's newest-first order places it at this moment rather than at its upload. Every Pet has a release time; a Pet nobody scheduled was released when it was uploaded. Only an admin schedules one, and only on an Official Pet — a house Pet or an artist collaboration. A release can be moved at any time, even after it has passed: moving a live Pet's release into the future returns it to hiding until the new time. Members who already adopted it keep it. A release never skips review — an unapproved Pet stays hidden whatever its release time. While a Pet waits for its release, its owner sees a countdown to it. See ADR-168. One word, two senses. A Pet's release is unrelated to a GEIST app release listed on What's New; the two never share a surface, so both keep the bare word. Say Pet release or app release wherever both could be meant. Drop is not a synonym: Hatch Night already uses it for the season's eggs. - _Note_ The Thai label is the English word in Latin script (owner's call, 2026-09-16), following What's New. ปล่อย was considered and rejected: beside สัตว์เลี้ยง it reads as setting a pet free, and ปล่อยของ is already ship's label. Debut / เปิดตัว was the other candidate.
adoptรับเลี้ยงรับเลี้ยง คืออะไร?
take an existing published Pet home from another Member. This is what the catalogue's counters count: pets.install_count, /api/adopt (the ADR-032 beacon), and the manifest fetch behind them are all recording adoptions. The phrases "total hatches" and "most hatched" named this act and are retired.

Not: download (as-name) · total hatches · most hatched · most-hatched · install (as-name) · import (as-name)

collectเก็บเก็บ คืออะไร?
take a released Series Pet onto your account, free and for good. A Member must be signed in; the Pet then waits on the account for the GEIST app. Collecting all of a Series' Pets inside its window opens the road to its secret. Distinct from Adopt, which hands a Pet to the app, and from Hatch, which makes a new one. See ADR-176. - _Note_ member_skins.source = 'collect' is the older free catalogue collect on /collection; a Series collect carries its own source value.
claimรับรับ คืออะไร?
take a Series' secret Pet, possible only inside the Series window, by one of three roads: complete the Series (collect all its Pets, then tap Complete the Series), Collect together (a friend collects their first Pet through your link, and you both claim), or an email code. Each claim carries a number within its Series, shown only to its Member in their Secret bundle. After the window closes nobody can claim; the secret is gone for good. See ADR-177.
Open in GEISTเปิดใน GEISTเปิดใน GEIST คืออะไร?
the member-facing action that performs an Adopt in one step, handing a published Pet to the GEIST app via its geist://pet/import deep link; the primary alternative to fetching the Pet's package by hand. Import is the wire's word for this, never the Member's. See ADR-011. download stays retired; the macOS app installer keeps its own labels as allowed phrases (Download for Mac, Download GEIST, Your download is starting), and its URLs as wire-only allows (owner ruling on #1131, 2026-09-26).

Not: Pet Import · download

Collectibles & shelves

Skinสกินสกิน คืออะไร?
a Pet's cosmetic look, owned by a Member and carried on the wire (the skin= param on geist://pet/import). A skin is just a look is a definition, not a second name. A Member's own skins live at /collection, singular — the page titled "Your collection". Gift and Swap are retired: a Skin never moves to another account. See ADR-180. Read that path twice. /collection singular is this Skins page. /collections plural is the Catalog's Collections — a named set of a Member's Pets, an unrelated feature (see Catalog). Two adjacent paths name two unrelated things, and the collision is deliberate and permanent: ADR-160 §4 kept the obvious URL for each rather than renaming one. Neither is a typo for the other, and a change to one must never be applied to the other.

Not: look (as-name)

Pet Cardการ์ดสัตว์เลี้ยงการ์ดสัตว์เลี้ยง คืออะไร?
the keepsake a Member gets for each Series Pet they collect: a painted scene of the Pet, with a slim band carrying the Pet's name, the Member's name, the Series tag and the day, and on the back one diary line in the Pet's voice, the Certificate line and the licence line. Every seat of a lineup, including the secret, has its own painting. The Pet's own Secret bundle holds the secret's card. It carries the Licence line. Distinct from the Catalog's Pet tile. See ADR-176 and ADR-182.
Secret bundleชุดความลับชุดความลับ คืออะไร?
what a Member gets for claiming a Series' secret Pet: the secret's Pet Card stamped with their completer number, and a zip of the Pet (pet.json, spritesheet.webp, a signed proof and the licence). Issued once per Member per Series. Its files are private: GEIST hands a short-lived link only to the Member who claimed. The public Page shows only "Found the secret". Replaces the retired completer card. See ADR-182. - _Note_ The Thai label is agent-proposed (2026-09-30) and awaits the owner's review.
Completion recordบันทึกการครบชุดบันทึกการครบชุด คืออะไร?
the row that says a Member claimed a Series' secret: Member, Series, road, number and time. It is read from the Claim, is never public, and outlives the account that made it. The number shows only to its Member. See ADR-182. - _Note_ The Thai label is agent-proposed (2026-09-30) and awaits the owner's review.
README badgeแบดจ์ READMEแบดจ์ README คืออะไร?
the Pet image a Member puts in their GitHub README, one per @handle. Distinct from an Earned Badge, which is recognition GEIST derives from real activity. See ADR-176 and ADR-182. - _Note_ The Thai label is agent-proposed (2026-09-30) and awaits the owner's review.
Binderแฟ้มการ์ดแฟ้มการ์ด คืออะไร?
the tab on "Your collection" that holds a Member's Pet Cards and Secret bundle, grouped by Series, newest first.
Catalog numberหมายเลขแคตตาล็อกหมายเลขแคตตาล็อก คืออะไร?
the permanent number GEIST gives each Pet it made, shown GEIST-0042, assigned once in release order and never reused. Member-uploaded Pets have none. See ADR-179.
Certificateใบรับรองใบรับรอง คืออะไร?
the record that a Member collected, claimed or earned a Pet, with its certificate number: one running count per Pet (Rory · S2 · #1204 inside the Series window, Rory · #3121 after it), never reused. A Member who removes the Pet and collects it again gets the same number back. GEIST signs it and hands it to the GEIST app with the Pet; it names the collector by @handle, never by email. Collects in the first minute of a Series window get their numbers by a random draw. Distinct from the completion number a Claim carries (see Completion record). See ADR-179.
Genuineของแท้ของแท้ คืออะไร?
the mark the GEIST app shows on a Pet whose files match a GEIST art proof. A copy is never blocked: a changed file reads Modified, and still runs. See ADR-179.
Licence lineข้อความสัญญาอนุญาตข้อความสัญญาอนุญาต คืออะไร?
the one sentence shown beside every save of GEIST art: what a Member may do with it and what they may not. Its words live in one place, the messages key common.licence.line, read in code through src/lib/licence.ts; nothing else may hard-code it, and the lawyer edits that one string. It applies to GEIST art only: the Pet Card, the pet package zip of an Official house Pet in a Series lineup (as LICENSE.txt), the Secret bundle and the README badge. A member-uploaded Pet, or one made with an outside artist, keeps its own credit and carries no line. Member copy says Save, never "download". See ADR-182. - _Note_ The Thai label is agent-proposed (2026-10-01) and awaits the owner's review.

Ships & warmth

shipปล่อยของปล่อยของ คืออะไร?
a Member's record of a work session's outcome (shipped, or didn't) starring one Pet, with its own share surface at /m/<shareId>. The humble flex — the Pet speaks for the Member. "Ship Moment" is retired as a noun. The /api/ship-moment route still carries the old word because its caller is the desktop app; that rename ships after the app does (#658).

Not: Ship Moment

Warmthความอบอุ่นความอบอุ่น คืออะไร?
affection shown to a Pet (pet_cheers), deliberately non-numeric: never a count, never a rank (ADR-068). Currently dormant — in the code, switched off on live surfaces. Bringing it back is a decision, recorded in an ADR.