Changelog
Everything that shipped across OnlyWorlds, week by week, and the milestones back to 2012.
Follow it in a feed reader with the Atom feed, or read it as JSON.
October 2026, 339 changes
Tuesday 20 October
59 changes
Site 8, Atlas 18, Obsidian plugin 1, TypeScript SDK 13, Python SDK 8, Schema 10, Unity SDK 1
Site8 changes
The Changelog goes back to the beginning
What's new is now the Changelog, at onlyworlds.com/changelog (the old address leads there), and it reaches back to the start: the main milestones since 2012 sit in their months beside the releases, and older years fold into one line each. A dashed mark shows a date we know only roughly. The list is quieter too: each source's name heads its changes, and a package's small patch releases fold into one line.
Hand an AI seat to another member
An AI seat can be handed to another member: on the Access card, the owner picks who answers for it. The seat keeps its key and its work, follows that member's role and leaves with them.
What's new, in one place
One page for everything that shipped across OnlyWorlds, with a feed you can follow. onlyworlds.com/whats-new lists the site's changes, Atlas's, and each new release of the Obsidian plugin, the AI toolkit and the packages, newest first, each linking to its full notes.
Known of: what anyone could see
When a player knows of a Character only through their own sheet, they now also see what anyone could see of them: how they look, their height and weight, their species and their reputation. Their thoughts, history and motives stay with you. The page says so: "Known of: Mara knows only what anyone could see of this Character."
A player knows what their Character's sheet points to
A player now sees what their own Character's sheet links to: her home, her species, her family, her friends and rivals, her abilities. They see each one's name, description and picture, not every detail, since knowing someone is not knowing all about them. The rest still comes through what she lived (the events she was in) and what she was told. Anything you hide stays hidden, so hide what should stay secret before your players look. Tools that read as a player read the world again from the start once, today.
One link for a whole table
A player link can now seat a whole table. On your world's page, choose A table of players, say how many times the link works, and tick the Characters your players may pick from. Each person who opens the link picks one, once, with no account, and reads your world as that Character. A Character someone already plays shows as taken, and a hidden Character can never be picked. Tick none, and each player names a fresh Character after themselves.
Hide an element from your players
On an element's page, Hide keeps it from everyone in your world but you, your co-builders and whoever made it: not the element, its name, or any link or count that would show it. View as shows your world as a player, a Character or a stranger would see it, so you can check before you share. Tools used by contributors read the world again from the start once, today.
A guest's reset keeps what it has
When a guest's view of a world changes, for example when the owner lowers their role, the API asks their tool to read the world again from the start. It used to say to replace the local copy; it now says to keep what the tool already holds, since a member keeps what they had so far.
Atlas18 changes
A Narrative's dates say when it is told
The help on a Narrative's two dates follows the OnlyWorlds standard: the start date is when the story is first told or recorded, and the end date is when it stops being told, empty while it still is. The span a story recounts lives on its events. Nothing moves on your timeline.
The first screen's links are easier to see
The line of links under the two doors on the first screen is a little heavier, like links elsewhere in the OnlyWorlds tools.
Light mode reads as clearly as dark
In light mode, the quiet text that read well on black was too pale on white: setting names, counts, field labels and hints. It now uses the same quiet grey as the rest, and links and button words take a deeper blue that stays readable on their own tint. Empty fields on an element are quieter by colour, not by fading.
Buttons and tabs in the same typeface as the page
Some buttons, tabs and chips, such as the Settings tabs, the chart filters and the counts on the type filters, were drawn in the browser's default typeface. They now use Open Sans like the rest of Atlas.
An identity key is shown, never changed
Some tools mark two elements, in one world or in two, as the same being with an identity key. Atlas shows that key on the element, where you can read it but not change or remove it, and keeps it as it is when it gives elements new ids. A custom field can no longer be named Identity key.
The quietest text is easier to read
Hints, counts, labels and small icon buttons that Atlas drew in its faintest grey now use the quiet grey that stays readable on every background, in dark and light mode. Toggles that are on also fill their icon or turn bold, so on and off differ by more than colour.
Someone your Character only knows of shows as known of
Playing a Character, you now see the people, places and things your Character points to, one step out. Those you only know of show their name, picture and description, with a line that says so, rather than a page of empty fields. Atlas never changes or sends one back, and when you come to know one fully, its whole page arrives.
A link for a whole table: each player picks who they are
A game master can now make one player link that works for several people. Opened in Atlas, it says how many places are left and lists the Characters the game master chose; taken ones are greyed at the bottom. Pick one and Atlas opens the world as that Character, with no account. If someone took it a moment before you, Atlas shows the list again and nothing is used up. A link with no list asks your name and makes a Character for you.
A link for an AI agent says what it makes before you open it
Opening a link made for an AI agent now asks "Open this world as an AI agent?" and says that Atlas joins as a seat the link's maker answers for, not as you. To join a world as yourself, ask for an invite link for a person.
The main button stands out, and deleting looks like deleting
Atlas now draws its buttons the way every OnlyWorlds tool will: one solid button where you begin (Start a world on the first screen), an everyday button for saving and creating, a quiet one for Cancel and Back, and a link. On the first screen, Start a world and Explore Moppetopia no longer look alike. Buttons that delete or forget, in Settings and in their dialogs, are red, and Forget everything is no longer a plain grey button.
A field name written in capitals stays as written
Field names now come from the rule every OnlyWorlds tool shares, so Atlas and Lantern name a field the same way. A custom field written in capitals keeps them: a stat block's STR reads STR, not Str, and "max_HP" reads Max HP. The Writing room's line about your book, chapter and scene names now reads "Labels: ... · Edit".
Settings names your new role as soon as Atlas finds it
When your edit is the first thing to meet a role change (the owner made you a guest, and you changed something you no longer see), Atlas now says so at once, and Settings, This world names your new role and the kept count straight away. Before, Settings kept the old role until Atlas next read the world from OnlyWorlds.
When the owner changes your role, your copy keeps everything
If the owner of a world shared with you makes you a guest, Atlas keeps everything you had and says so once. What you no longer see online stays here as it is and stops syncing, and changes you make to it stay here too. Before, editing such an element offered to delete it as if someone had removed it online. When the owner gives you a bigger role again, those elements sync again. Settings, This world names your role and how many elements are kept from before.
Labels read in sentence case everywhere
The first screen's doors and the room names along the top now start with a capital, and field names take one only on their first word ("Birth date", "Image URL"): the house rule for every OnlyWorlds tool. A few messages say "cannot" where they said "can't", and a pane with no world open now says what to do: pick one from the sidebar.
The small print on the tip card is easier to read
On the OnlyWorlds tip card, the small "These are optional." before See all and Turn off was too faint to read comfortably, in both themes. It now matches the two links beside it.
3.6.0
Hidden elements, for members of a shared world.
TypeScript SDK13 changes
2 patch updates, 4.42.1 to 4.42.2
4.42.2, 4.42.1
4.42.0
Schema 00.32.02 (Skeld, OW Council h58 #8811): repinned to schema-dist v0.32.2-dist.29.
4.41.0
A known-of stub's public fields (keel PR 117, keel #448), live in production, and schema-dist v0.32.1-dist.28, which publishes them.
4.40.0
The "known of" stub's client half (keel PR 113, B16; keel #421 §7g), live in production since 2026-10-20 13:47.
4.39.0
The party link (keel #422 PR 2, keel PR 110), live in production since 2026-10-20 13:15.
4.38.0
Schema 00.32.01 (the Captain's word, h55 #8395): repinned to schema-dist v0.32.1-dist.26.
4.37.0
The hidden mark (keel #421), live in production since 2026-10-20 09:24; walked on staging with the mark on, 25 of 25.
2 patch updates, 4.36.1 to 4.36.2
4.36.2, 4.36.1
4.36.0
fieldLabel keeps a word written all in capitals as written (STR reads "STR", plan_B "Plan B"), so a custom stat block reads the same in every tool (Temper, h63 #8197; Lantern and Atlas both call it). Schema field names are all lowercase, so no schema label changes.
4.35.0
createWorldLink(worldId, { preview }) and preview on OwWorldLink (keel #422 PR 1, live 2026-10-20): a person or player link with preview: true is /join/#, so a chat that unfurls it shows the world's name and picture; the code stays in the fragment. Absent means off, as keel…
4.34.0
fieldLabel(name) and FIELD_ACRONYMS: a field name as the words a tool shows, by the house rule (OW Style, the Captain 2026-10-20): sentence case, acronyms kept wherever they fall (birth_date → "Birth date", image_url → "Image URL"). Seeded from Atlas's humanizeFieldName as of…
Python SDK8 changes
3 patch updates, 0.10.1 to 0.10.3
0.10.3, 0.10.2, 0.10.1
0.10.0
Public fields on a known-of stub (keel PR 117, Keel #448), live in production. The schema is repinned to schema-dist v0.32.1-dist.28 (canonical 00.32.01; only presentation.json and its manifest moved), ahead of @onlyworlds/sdk's dist.27 pin.
0.9.0
Known of (keel PR 113), live in production since 2026-10-20 13:47, and folder format v0.3.10. The schema is repinned to schema-dist v0.32.1-dist.27 (only its example moved), equal to @onlyworlds/sdk 4.40.0's pin.
0.8.1
The schema, repinned to schema-dist v0.32.1-dist.26 (canonical 00.32.01, the Captain's word, h55 #8395): one description changed, an Event's characters are the Characters who know about it (present, aware or involved). SCHEMA_VERSION is 00.32.01; ELEMENT_TYPES and FIELD_KINDS…
0.8.0
The hidden mark (keel #421), live in production since 2026-10-20 09:24.
0.7.1
The reset rule says keep. ApiError.is_resync_required and the feed's docstring: on a 409 resync_required, walk again from the start and keep what the local copy holds that the new walk does not name; a reset never empties a copy. They said replace. Keel says keep since PR 104…
Schema10 changes
6 patch updates, v0.32.1-dist.26 to v0.32.2-dist.35
v0.32.2-dist.35, v0.32.2-dist.34, v0.32.2-dist.29, v0.32.1-dist.28, v0.32.1-dist.27, v0.32.1-dist.26
Calendar profile: the conformance fixture
profiles/calendar.fixture.json: 52 cases a calendar reader must pass, generated from @onlyworlds/sdk 4.42.2 (25 calendars, 113 steps with their words and breakdown, and 27 values a reader must refuse). The calendar page now also states how a counting-down era numbers its years…
Calendar profile, stricter refusals
The atlas_calendar profile now also refuses era bounds that are not whole numbers, month and weekday names that are not strings, loose JSON, and an eras or intercalary that is present but not a list. The SDKs read the same refusals. The schema is unchanged (00.32.02).
Calendar profile, the reader's contract
The atlas_calendar profile now lists every value a reader refuses (so two readers never disagree on what is a calendar), makes grain required, and states the leap-year and era-overlap edges. Read against the TypeScript SDK's reader. The schema is unchanged (00.32.02).
Extension profiles
A new profiles/ folder: one page for each extension field that tools agree to read the same way. The first two are x_identity_key, which marks one being who appears in several worlds, and atlas_calendar, a world's own calendar (months, weeks, eras), read by Atlas and the…
OnlyWorlds Unity SDK 0.8.0
A world folder zipped as one .owworld file imports into Unity as a read-only world cache, measured in the Editor, a desktop player, an Android IL2CPP player and a WebGL player; the calendar reader follows the new atlas_calendar profile and its conformance fixture; the schema pin…
Monday 19 October
25 changes
Atlas 15, Obsidian plugin 2, AI toolkit 1, TypeScript SDK 3, Python SDK 1, Schema 1, Unity SDK 1, History 1
Atlas15 changes
The OnlyWorlds tips and the map's placing hint read in light mode
In light mode, the dark card that names an OnlyWorlds idea (such as "One world, many tools") showed its second line and its See all and Turn off row dark on dark, and the hint over a map while placing a pin did the same with its Cancel. Both now keep light text on their dark card.
The drawing strip reads in light mode
While drawing a zone on a map in light mode, the strip at the top (Trace, Finish, Cancel and the hints) was dark text on a dark floor and close to invisible. It now keeps its dark floor with light text in both themes, like the rest of the controls over a map.
The agent mark in Knowledge and Pages
In a synced world, a knowledge entry or a page an agent changed last now carries the same small mark after its name as an element page does. Point at it or tap it for who made the change. A person's change carries none, and your own edit takes it away.
A page made on another device shows its text
A page keeps its layout on the computer that built it, and OnlyWorlds holds its text. Opened anywhere else (a world you view, a shared world, your own world on a second device), the page said it had no content yet. It now shows that text, and adding to it there keeps the text instead of starting over.
Words that match a view-only world
On a world you can only view, Home's recent rows said Edit and could be dragged, and the Charts list of undated elements said to drag them onto the timeline. Home now says Open (or Read for a story) and its rows stay put, the undated list says to click one to open it, and a chart card's Edit is Open.
A view-only world offers nothing it would refuse
A world opened with a read key, or from a player link, still showed what Atlas would then refuse: fields to click and edit, link pickers, Add aliases, + buttons, the writing editor, map drawing, chart dragging. Now everything reads. Element pages show their values plainly, writing and knowledge open as text to read, pages open as their visitors see them, maps and charts move and zoom with nothing to drag into place, and no + appears anywhere. Search, Find, opening and your own view settings work as before.
Custom fields on a view-only world are for reading
A world you can only view showed "+ Add field" and a remove button on each custom field, and then refused the change. Its custom fields now show as they are, with nothing to add or remove, and an element with none shows no Custom fields section.
A new file and the world's total arrive together
Right after a file was added, the Files section could show it beside the world's old total for a moment. The file now stays as Adding until the new total is in, and a removed file leaves together with its share of the total.
Keep files with an element
In an online world, an element's page has a Files section: add a pdf, a text file or a world's own bundle, up to 25 MB each, with a label that says what it is for. Each file shows who added it and when, and an agent's is marked. Download fetches it fresh; Remove takes it off OnlyWorlds for everyone. The header shows how much of the world's 250 MB is used. Files live on OnlyWorlds only, never in your copy of the world or its world file.
The link to Access survives signing in
Signed out of Atlas, Invite someone opens your world on onlyworlds.com at Access. If the site asked you to sign in first, it then opened the world's overview instead. It now opens at Access either way.
A wrong PIN is called a wrong PIN
Downloading a world with its key and a mistyped PIN said OnlyWorlds did not accept the key, which sent you to check the wrong thing. It now says the PIN was not accepted.
Invite a player with no account
In Invite someone, A player now makes a link that needs no account: your friend opens it in Lantern and reads the world as one Character, seeing only what that Character knows. Pick which Character they play, or let the link make a new one for them. A player who wants their own account is one choice down, as A player with an account.
Atlas opens a player's link
A player's link opened in Atlas used to say it was of a kind Atlas did not know. It now opens the world to read, as the Character the link gives you, with no account and no PIN. You can give the name the game master sees.
Making a world online signs you in to OnlyWorlds
Signed out, Make online and New world on OnlyWorlds now ask for your email or username and password, sign you in, and make the world on your account, as they do when you are already signed in. They used to take an email and a PIN through the older OnlyWorlds API. Atlas keeps a token for this browser, never your password.
A co-builder's change to the now goes through
A co-builder may move a shared world's now on OnlyWorlds, though not its other details. When you changed the now together with the description, both stayed in your copy. Now the now is sent on its own and lands, and only the description stays behind.
2 patch updates, 3.5.1 to 3.5.2
3.5.2, 3.5.1
4.3.1
A patch to 4.3.0: the council skill's commits that 4.3.0 left out by accident.
TypeScript SDK3 changes
4.33.1
An agent: true client's file uploads now declare it: createFileTicket (and so uploadFile) sends X-OW-Agent, the one files route keel's document lists it on (keel PR 95), so the file reads added_by.agent: true. The other files routes and the upload host get no such header.
4.33.0
FILE_EXTENSIONS (every extension a file on an element may end in, to its kind: keel's list, .yml and .markdown included) and fileKindOf(name) (the kind, or undefined), so a file picker's accept list reads the SDK's instead of a copy (Atlas, h20 #7841).
4.32.0
Files on elements (keel #393), for Atlas's file list on an element: listFiles(type, id): the element's files, newest first (OwFileRow: id, name, kind, size, label, added_by with name, membership and agent, added_at), as keel sends them. uploadFile(type, id, file, { name?, kind?…
onlyworlds 0.7.0
Folder format v0.3.9, the provenance lines (§4.2). export_world writes two keys into world.json: source, {server, world, at} (the client's API origin, the world's id, and when the export began, as an ISO timestamp in UTC), and exported_as, {kind, role, character}, which slice…
v0.32.0-dist.25
Serial 25: example/world-export.json, a fixture of the world-export envelope (the file onlyworlds.com's Download gives you), pinned by the platform's own test so tools can build against it. No field, type or walk change.
OnlyWorlds Unity SDK 0.7.0
Join a world by link, read the one-file export and write it as a folder, and an export's world.json says where it came from and which slice it is (folder format v0.3.9). A minor release because it adds public API (below).
19 OctFiles on elements
Users can attach files to elements on onlyworlds.com.
Sunday 18 October
16 changes
Site 8, Atlas 6, AI toolkit 1, TypeScript SDK 1
Site8 changes
Search reads your world's text
The API can now search a world for words: it finds every element whose name, description or other text holds all the words you ask for, as whole words, and shows a short piece of the text around the match. Names that match come first. The MCP server's search tool now reads the same text, where before it matched names only.
A member's agents follow their role down
When you lower a member's role in your world, the AI agents they added follow it down. An agent never keeps a higher role than the member who answers for it: set a contributor to guest, and their agents read as guests and change only what they made. Raising a member's role leaves their agents as they are, and your own agents and other members' agents are untouched.
A member's agents leave with them
When a member leaves your world, or you remove them, the AI agents they added to it now leave with them. Those agents' keys stop working at once, and everything they wrote stays in the world under their names. Your own agents, and other members' agents, are untouched.
A deleted element answers 410
Asking the API for one element that was deleted from your world now answers 410 instead of 404. The answer also says when it was deleted and where the deletion sits in the world's change feed. An id your world never held still answers 404, and the older v1 API is unchanged.
Recent changes says when an agent wrote
On your world's page, Recent changes now names an agent's write as an agent's: by the seat's name, an agent. Atlas already said so on the element; the site now does too. And the box that shows a new write key says plainly that a write key with your PIN acts as you, and that a person gets an invite link or a player link instead.
Invitations start on guest
When you invite someone to your world, by email or with an invite link, the role now starts on guest, the one that sees least. Raise it to contributor or co-builder on purpose before you send. Every role list on your world page now runs the same way, from guest up to co-builder.
Lantern is on the tools page
Lantern, your worlds on your phone for players and game masters at the table, now has its place on the tools page and in Open with on your world's page. And when you open a world in Atlas, Atlas asks for your email and password; an account token still works under I have an account token.
The home page settles in
The front page now builds itself over a few seconds when you arrive: the parts fade in one after another, and any click or key shows everything at once. If you prefer it still, add ?landing=plain to the address; if your browser asks for reduced motion, it never plays.
Atlas6 changes
In a world you share, a change to its details is told once
Only a world's owner can change its own details on OnlyWorlds, such as its description and its calendar. When you change them in a world someone shared with you, Atlas says once that the change stays in your copy, and no longer sends it again and repeats itself with every save. Change them again and Atlas tries once more.
Signed in, Make online asks only for your PIN
Signed in to OnlyWorlds, Make online makes the new world on your account and says so, so it no longer asks for your email. Your PIN still goes with it, once, so Atlas can upload the world's contents.
A map can draw its zones as a coast, a forest or a river
On a map's page, Map style offers Ink on parchment, Modern atlas and Hatched. A zone whose subtype names its kind (Landmass, Sea, Lake, Range, Forest, Marsh, Desert, Territory, River, Road, Wall, Border, Coast; a Route or a Path draws as a Road) is drawn as one: a coast with its shore, a range hatched, a river that ends at the sea with its name along it. Only the look changes: your zones stay exactly as they are, and Plain brings back the usual map. On a map with a picture, the zones take the style's lines and names and the picture stays the ground.
Trace a zone by dragging
While drawing a zone, turn on Trace and drag along a coast or a river. Atlas keeps the few points that carry its shape, so the zone stays light to store and to edit. A click still places one point.
A new zone with no supertype gets polygon or line there
Other OnlyWorlds tools cannot yet tell an area from a line by anything a zone carries, so when you leave a new zone's supertype empty, Atlas writes its shape there, polygon or line. A supertype you type is kept as you typed it.
Sign in to OnlyWorlds with your email or username and password
Settings, OnlyWorlds, Account now asks for the email or username and password of your onlyworlds.com account, as Lantern does. Atlas keeps a token of its own for this browser, named for it on your Account tokens page, and never your password. If you already made an account token, "I have an account token" under the form still takes it.
4.3.0
The toolkit speaks the standard at 00.32.00 and the folder format at 0.3.7, and its SDK passages match @onlyworlds/sdk 4.31.0 and the onlyworlds Python package.
@onlyworlds/sdk 4.31.0
Signing in with a password (keel #211): signInWithPassword({ email | username, password, tokenName }) turns an email address (or username) and password into a new account token (ow_a_) for this device, named tokenName, the name the account's tokens page lists it under. It signs…
Saturday 17 October
13 changes
Site 1, Atlas 7, Obsidian plugin 2, Python SDK 2, Unity SDK 1
Invitation buttons stay clear on a phone
On a phone, the cookie notice no longer sits over Open in Lantern and Open in Atlas when you open an invitation link: on that page it now takes its own place at the top.
Atlas7 changes
A click on the type strip, the writing tree, the map list or the chart's controls is no longer lost
The row of element types above the elements list, the tree of books in the writing sidebar, the list of maps and the bar above the chart were redrawn whenever anything changed, and a click that fell across a redraw did nothing. They now redraw only when what they show changes.
A click on an element's page, in Settings or on the right pane's tabs is no longer lost
These were redrawn whenever anything changed, even a sync step that changed nothing they show, and a click that fell across a redraw did nothing. They now redraw only when what they show changes.
A click on a sync badge opens what it says
A click on the conflicts or not-syncing badge on the sync pill could land on the pill instead and refresh from OnlyWorlds. It now opens the review, or Settings.
A click on a room or the sidebar's two tabs is no longer lost
The row of rooms along the top and the Worlds and world tabs above the sidebar were redrawn whenever anything changed, as the Worlds list was until 1.51.3, and a click that fell across a redraw did nothing. They now redraw only when what they show changes.
A click in the Worlds list is no longer lost
The Worlds list and its Start a world buttons were redrawn whenever anything changed, and a click that fell across a redraw did nothing. They now redraw only when what they show changes.
New maps, pins, zones and markers go in elements/
In a world folder from an older Atlas that keeps its maps in spatial/, a new map, pin, zone or marker is now written to elements/, as the folder format asks. The old files stay where they are and still open, and an edit to one is saved in its own file.
One element in two places opens from elements/
When a folder holds the same element in both elements/ and spatial/, Atlas opens the one in elements/, as every other OnlyWorlds tool now does. Neither file is changed.
Obsidian plugin2 changes
3.5.0
Tables, cards and a relationship canvas for your world, and safer saves.
3.4.0: sign in with your account
Sign in in the plugin's settings with an OnlyWorlds account token (made on onlyworlds.com under your account). Download World then lists your worlds, and the plugin mints its own key per world, named after the vault: no key copying. Sign out forgets the token and revokes it on…
Python SDK2 changes
0.6.0
Export a world folder to Open Knowledge Format (OKF) v0.2 (onlyworlds.okf, Keel #191): export_okf(folder, out_dir) or python -m onlyworlds.okf FOLDER OUT-DIR writes one markdown concept per element (fields in the frontmatter, text under headings, links as bundle paths and as…
0.5.1
The reader skips a dot-prefixed file in a type directory, a tool's litter rather than an element, and lists it in Folder.skipped, even when it holds a valid body. Before, it was read like any file, and one that sorted first could stand in for the real element (Skeld's…
OnlyWorlds Unity SDK 0.6.0
A world folder that Atlas wrote now opens whole: its pins' and markers' links, and the older spatial/ layout. A minor release because it adds public API (below).
Friday 16 October
25 changes
Site 4, Atlas 13, TypeScript SDK 6, Python SDK 1, Unity SDK 1
Site4 changes
A new key for your AI, and a Character for it to play
If an AI in your world loses its key, give its seat a new key instead of a new invite: the old key stops working at once, and the seat keeps its role, its Character and everything it wrote. The person who set it up can do this, and so can the world's owner. As the owner you can also choose which Character a seat plays, any Character in your world or none; the AI can then change that Character, but never delete it.
A seat for your own AI
A member of a world can now give their own AI a seat in it with one button on their world page: its own key and secret, no invite link to pass around. Its role is at most yours, and it can play its own new Character, yours, or none. The owner has the same button beside Invite an agent.
Open an invitation in Atlas too
An invite link from a friend now offers Open in Atlas beside Open in Lantern, so you can join their world in your browser as well as on your phone.
Your invitation waits while you sign up
New here? Open the confirmation link from the sign-up mail, in any tab, and the invitation is still there. It waits for an hour.
Atlas13 changes
Refresh says up to date only when it is
A refresh that met a refused key, a busy or unreachable OnlyWorlds, or a change that did not send now says only that, and no longer also that everything is up to date.
A refused key's line says so
In Settings, This world, a key OnlyWorlds no longer takes is no longer described as one that reads and writes.
An online world takes a new key without unlinking
When OnlyWorlds stops taking a world's key, Settings, This world now takes a new one in its place: paste it from the world's page, or, signed in, Atlas makes one from your account by itself. Everything in the world stays as it is, edits not yet sent included.
A refused key says why
Sync now tells a revoked key, a key OnlyWorlds no longer knows (the world was deleted there, or you were removed from it), a read key and a wrong PIN apart, and says where each is fixed.
Joining a world without a PIN asks for none
Someone who joins a world shared with them, on an account that has no PIN yet, now opens it to read straight away, with a line on where to set one. Atlas asks for the PIN only when the account has one.
The ask to sign in goes once you have
A link that waits for you to sign in, to open a world or to accept an invitation, now takes its message down the moment the sign-in lands, instead of leaving it on screen through the next question.
A map shows its pins as of a date, by their element's dates
The date bar under a map now moves pins too: a character's pin from their birth on, a place's from its founding, an event's only while it lasts. Pins without dates always show, and so does the one you have selected. All dates shows every pin.
A link to a world never takes you out of the one you are in without asking
While another world is open, a link to a world you already have asks "Open it here?" and waits for your click, so you never keep working in a world you did not choose.
A link to one of your worlds opens it in Atlas
Atlas now answers a link that names one of your worlds on OnlyWorlds, the kind the world's own page there can give. Signed in, it asks once and opens the world, or opens the copy you already have. Signed out, it asks you to sign in first and then opens it in the same tab.
An element an agent changed last carries a quiet mark
In a synced world, when an agent made the last change to an element (an agent's own seat, MCP, or a tool that says it is an agent), a small mark sits after its name. Point at it or tap it to read who: "Last changed by Skeld, an agent". A person's change carries none, and your own edit takes the mark away.
Who last changed an element no longer reads as a change
OnlyWorlds now records who last changed each element and how. Atlas keeps that as it arrives and never sends it back: a conflict lists only the fields someone changed, importing a world file from a synced world does not flag it as unknown, and a world imported from another world drops it, since it names people in the world it came from.
Invite someone makes the link in Atlas
Signed in with your account token, Settings, This world, Invite someone now makes the invite link here, as Lantern does: choose a contributor or a player, sign it with your name, and the link appears once, with Copy and a QR code (and Send it where your system can share). It works once, for 7 days. Seeing and taking back links stays on the world's page on onlyworlds.com. Signed out, Invite someone still opens that page.
Signed in, the first screen lists your worlds on OnlyWorlds
Before you had a world in Atlas, the first screen showed only its two doors, even when you were signed in with your account token: your worlds on OnlyWorlds, your own and those shared with you, were offered nowhere. Now they are listed under the doors, and one click opens a world. Signing in from Settings on a browser with no world says where to find them.
TypeScript SDK6 changes
4.30.1
changes() and changesAll() hand back every cursor as a string, as OwChangesPage.cursor has always said. keel sends the cursor of a page at the head of the feed (an empty page, for any key but a guest's) as a number, and it passed through as one: a walk of an up-to-date world…
4.30.0
A friend with only a link (keel #353, D111): redeemJoin(code, { name?, agentName? }): redeems a join code that needs no account, at POST /join, sending no credential whatever key the client holds. The answer's kind tells the two apart: OwPlayerJoined (a read key, ow_r_, no PIN…
4.29.0
rekeySeat(worldId, seatId) (keel #355 piece 3, D108): a new key and secret for a seat whose AI lost its own, by its sponsor or the world's owner. The old key and secret stop at once; the answer has createSeat's shape (OwSeatCreated: key, pin, env), shown once. No…
4.28.0
Seats for your own AI (keel #355, D106), on an account token (ow_a_): createSeat(worldId, { name, role?, character? }): a seat for your own AI in a world you own or belong to, with its own write key and ow_s_ secret and no join link. You answer for it. role is at most your own…
2 patch updates, 4.27.1 to 4.27.2
4.27.2, 4.27.1
onlyworlds 0.5.0
Folder format v0.3.8, one id, one file (§4). A writer never leaves an element's id under both elements/ and the legacy spatial/, and a reader that finds one in both serves the elements/ copy. write_folder already wrote a whole folder under elements/ only, and…
OnlyWorlds Unity SDK 0.5.0
World calendars: OWCalendar reads a world's calendar (the atlas_calendar field Atlas writes on a calendar Construct) and formats, breaks down and parses dates on the world's integer time line: eras, months, weeks, leap and intercalary days. It is a port of the npm SDK's calendar…
Thursday 15 October
37 changes
Site 3, Atlas 25, Obsidian plugin 2, TypeScript SDK 4, Python SDK 2, Schema 1
Site3 changes
Agents can be held to their own voice
A new switch in your world's settings, off unless you turn it on: with it on, a story or message an AI agent writes in your world is told by that agent's own Character, never by someone else's.
Open an invitation straight in Lantern
When someone sends you an invite link to their world, the page it opens now offers Open in Lantern beside Sign in, so you can join from your phone. A link for an AI agent offers Open in Atlas.
Lantern on your world's page
Your world's Open with list now names Lantern, beside Atlas, Obsidian and an AI, with the one step that opens the world on your phone.
Atlas25 changes
Open in Atlas on an invitation joins you with your own account
An invite link opened in Atlas used to work only for an AI agent. An invitation made for a person now asks you to join with your OnlyWorlds account, says what your role lets you do, and then opens the world on a key made for you. Not signed in yet, Atlas takes you to sign in with your account token and the invitation comes back after.
Explore Moppetopia from Settings, once you have a world
The demo world could only be opened from the first screen or an empty world, so it was gone once you had a world of your own. Settings now has Explore Moppetopia above Replay the tour, and it opens your copy if you already have one.
Help covers the map you have open
With a map open in the right pane, the help panel now adds what you can do on a map under the room's own lines. Before, it showed only the room you were in.
Going down into a location's own map is explained where you meet it
A location can have its own map, and its pin on a bigger map leads into it. Now the map badge on that pin says so when you hover it, help on a map has a line on how to make one and go down and back up, and the Location and Parent Map fields on a map's page say in plain words what each does.
A world brought in as a new world opens with its own details
After Data, Import as a new world, the world opened with only its name until a reload: Home asked you to describe a world that already had a description, and the map had no Now for its dated zones. It now opens with its description, its dates and the rest, and the address and the world tab name the new world, so a reload keeps you there.
Refresh from OnlyWorlds says what came down once
A refresh that brought changes showed two messages with the same count in different words. Now one says how many are new or updated, and a refresh with nothing new still says it is up to date.
Pinch, slide and re-date on a phone's chart
On a touch screen, two fingers zoom the chart from eras down to days, and one finger slides it through time or moves the band in the strip below it. Tap a dot, then slide it along the axis to give it a new date, or slide a range by its end; the now-line slides too. Sliding across a dot you have not tapped moves the chart, so a crowded chart still travels. Up and down still scroll the page.
Hide a type from the list on a phone
On a touch screen the type strip in the sidebar ends with Hide types. Tap it, then tap a type to keep it out of the full list, or tap a hidden one to bring it back, and tap Done. With a mouse, a right-click on a type still does it.
Home points out dates worth a second look
Loose threads at the bottom of a world's home now lead with dates to check: a title revoked before it was granted, an event set off by one that began later, a character linked to a battle that ended before they were born. Each shows both dates in your world's calendar, and both names open the element. Some can be right, like a historian of an old war, so Atlas only points and never changes anything.
A map shows its zones as of a date
When zones on a map have a start or end date, a bar along the bottom of the map shows them as of the world's now. Slide it to watch a border change, or choose All dates to see every era at once. A zone without dates always shows, and dates read in your world's calendar.
A Find button in Writing on a touch screen
On a phone or tablet, the bar over a text has a search button that opens find, where Ctrl+F was the only way in. Link to element works from there too. With a mouse, nothing changes.
One way to sign in, and where your PIN comes from
Settings, OnlyWorlds, Account opens with the account token, the one way to sign in. Below it, the PIN says it is one for all your worlds and that you set it on onlyworlds.com, in Account settings under World PIN, and the email says Make online uses it.
A local world says when pictures can upload
An element in a world that is not online now shows an Upload picture row that says pictures upload once the world is online, with Make online beside it. Until then, an image URL can still show a picture from any address.
Atlas tells your browser what it may load
Atlas now asks your browser to reach it only over a secure connection, and to load scripts only from Atlas itself and send your world only to onlyworlds.com. Your keys and PIN stay safer even if a world file carries something it should not. Pictures still load from any address.
A world's name is its button
In the worlds list, a world's name is now the button that opens it, beside its star and sync buttons rather than around them. Screen readers no longer meet a button inside a button, and Tab moves from a world's name to its star. A click anywhere on the row still opens the world.
The update message clears the side panel's bottom row
On a phone with the side panel open, "A new version of Atlas is ready" covered the row of buttons at the panel's foot. It now sits above them.
Help and the tour speak touch
On a touch screen, help and the tour say tap where they said click, right-click, drag or a key, and leave out what only a mouse or keyboard can do. Help shows a short touch section in place of the keyboard list. With a mouse, nothing changes.
Messages without keys on a touch screen
Linking every mention no longer says Ctrl+Z undoes it on a touch screen, search says tap one to jump, and Charts says to tap an undated element to give it a date on its page, since dragging onto the chart needs a mouse.
The + on a writing row shows on a touch screen
A book or chapter in the writing list makes a chapter or scene from its +. With a mouse it shows when you point at the row; a touch screen cannot point, so there it now always shows.
A phone hears of Lantern
On a phone, the first screen and help point to Lantern, the OnlyWorlds app made for a phone: it catches notes at the table and keeps your world offline.
Opening a world counts its files
Opening Moppetopia now shows how many of its files are in place. In Firefox it took about twenty seconds on one quiet line; it still takes a while there, and now says how far it has got. Moppetopia and world files also write several files at once, so in Chrome they open faster.
Invite someone to an online world
Settings, This world, has an Invite someone link for a world you own online. It opens the world on onlyworlds.com at Access, where you make an invite link to send. The person you invite needs a free account.
No account yet? The way to one
Make online and New world on OnlyWorlds ask for an email and a PIN. Both now say where to make a free account on onlyworlds.com and where to set its PIN.
2 patch updates, 3.3.1 to 3.3.2
3.3.2, 3.3.1
TypeScript SDK4 changes
4.27.0
OwApiError.isIdempotencyInFlight (keel #307, D105): a request with the same Idempotency-Key is still running (409 idempotency_in_flight, retryAfter 1). Nothing was written by this one; send again with the same key and body after retryAfter and it replays the first answer…
4.26.0
The door of every write (keel #299, D104; keel 7c1b493). An opt-in agent: true on OwClientConfig sends X-OW-Agent on every element write (create, upsert, patch, delete, editLinks, bulk: the operations keel's document declares it on; never on reads, account routes or the image…
4.25.0
OwWorldMeta types every field keel's World declares (it named four): the description and picture, the calendar (time_format_names, time_format_equivalents, time_basic_unit, the three time_range_*), the three unit labels, public_read, owner_character, created_at, and new…
4.24.0
A world's invite links (keel C1, 48c10d4), on the owner's account token (ow_a_): createWorldLink(worldId, { reader, role?, days?, inviterName?, withCharacter? }) answers the new link with its code, link and the one line to send (the code is in this answer only: keel keeps a…
Python SDK2 changes
0.4.0
A retry that meets its own first try still running now waits and replays (keel #307, D105). After a timeout the client resends with the same Idempotency-Key; if the first request is still running, keel answers 409 idempotency_in_flight with Retry-After: 1. The retry policy now…
0.3.0
The door of every write (keel #299, D104). Client(..., agent=True) sends X-OW-Agent on every element write (create, upsert, patch, delete, edit_links, bulk: the operations keel's document declares it on; never on reads or patch_world), and keel records those writes as agent-made…
v0.32.0-dist.24
Serial 24: the folder lint knows changed_by and changed_via as server-set keys in an element's body (the platform now records who made each write), and the README names them. No field, type or walk change.
Wednesday 14 October
20 changes
Site 4, Atlas 11, TypeScript SDK 5
Site4 changes
Players' notes are told by their own Character
A player invited to a world as a guest writes notes into it as before, and each note is now told by the player's own Character. A note can be shared with the player's party, a group their Character belongs to, and the rest of the party sees it.
See your daily token rating on your account page
Your account settings now show how many tokens a day you have for asking and sorting with AI, and how many are left today.
Asking and sorting draw on a daily token rating
Asking your world a question and sorting your notes now draw on your account's daily token rating. The base is 100,000 tokens a day; early members have more. The rating resets at midnight UTC.
A co-builder can move a world's now
A game master who isn't the world's owner can move its present moment forward from their own key, as a co-builder. Every other world setting stays the owner's.
Atlas11 changes
A world that will not open says so
When a world could not be opened from a message, a retry or the list, Atlas could report it as a problem with work in the background. It now says it could not open the world.
Moppetopia says it is opening
After the download, Atlas still says what it is doing while it sets up your copy, until Moppetopia is open. Before, the last seconds showed the front page with nothing on it.
Moppetopia says how its download is going
While Moppetopia comes down, Atlas shows that it is downloading until it opens. On a connection that stops answering, it gives up after 30 seconds and says to check your connection, instead of waiting in silence.
Type icons you can tap on a phone
On a phone the type icons in the side panel are tiles big enough for a finger, each with its count under the icon, and the page behind the open panel is dimmed further.
A tap closes a message
On a touch screen a tap on a message at the bottom of the screen closes it. Before, a tap kept it there until you tapped somewhere else.
The hide button on a picture is an eye
The button in the corner of an element's picture hides every element's picture, so it now shows a crossed-out eye instead of an ×. On a touch screen it is gone; Settings, Elements has the same switch.
Words for a touch screen
On a touch screen the edit box no longer names keyboard keys, and the Data room asks you to tap to choose a file instead of dropping or clicking.
Names on the row of type icons
Settings, Elements, Type names in the sidebar: keep the icons on their own (as before), name the types your world has with their counts, or name every type.
A top bar for a thumb
On a phone the bar along the top keeps Home and Writing, puts Knowledge, Charts, Pages and Data under More, and every button in it is big enough to tap. Atlas is still built for a bigger screen; on a phone it now holds together.
The top bar stays in reach on a phone
Atlas now sizes itself to the part of a phone's screen you can see, address bar and keyboard included, to keep the top bar in reach while you write.
Rooms that fit a phone
An element's fields put each name above its value, so the value gets the whole width. A chart's side panel sits under the chart. The small buttons in each room are big enough to tap.
TypeScript SDK5 changes
4.23.0
TokenResource.consume(), getAccessKey(), revokeSession(), revokeAllSessions(): keel serves none of these routes (each answers 404 not_found on production; accounts/token_api.py mounts only status/ and encryption-info/). Spending is server-side, in the route that does the work…
4.22.0
client.me() and client.members(): GET /me (who this world key is: world, scope, kind, role, membership id, Character) and GET /members (the roster's rows, unwrapped from { data }). Lantern reads a player's role from /me by hand today. Types OwMe, OwMember, typed from keel's…
4.21.0
client.allowance(): GET /account/allowance (keel 872431f, Skeld h37 #4308), the account's daily AI allowance read without spending: token_rating, tokens_used_today, tokens_remaining, resets_at (the next midnight UTC). Account token only, like ask and sort. Type OwAllowance, held…
4.20.0
World calendars, Atlas's calendar code in the SDK so Lantern can name dates (Temper, h37 #4284): formatStep, formatYearLabel, breakdownStep, parseDate and the rest of Atlas's src/core/calendar.ts (Atlas 02d6a6d), plus worldCalendars, resolveCalendarLens and readCalendarValue…
4.19.0
tokens_remaining and token_rating on OwAskAnswer and OwSortAnswer: since keel a6244db (Skeld, h37 #4233) ask and sort spend from the account's daily token rating, one meter with the Council. remaining stays a count of answers: how many more calls of this size fit in what is left…
Monday 12 October
13 changes
Site 1, TypeScript SDK 8, Python SDK 1, Schema 3
Invite someone to your world with a link
On your world page, under Access, make an invite link with a role (guest, contributor or co-builder) and send it, or let them scan its QR code with a phone. Whoever opens it signs in, or creates an account, and joins your world. No email address needed. The link works once and expires.
TypeScript SDK8 changes
4.18.1
Schema repinned to schema-dist v0.32.0-dist.23 (same canonical 00.32.00). The one generated change is the id doc comment: a UUID, new ids minted as uuidv7, earlier uuidv4 ids still valid. No type changes. The vendored dist gains walk/lint_folder.py. README and AGENTS.md describe…
4.18.0
client.sort({ worldId, notes, slice }): POST /account/sort, ask's sibling (Temper for Lantern, h37 #3599; Skeld's route, #3591, #3594, #3596, #3597). Notes as words or { text, image_url }; the slice is the app's own lookup. Rows of four kinds come back to review (make, add_to…
4.17.0
changesAll returns epoch beside cursor and head: the last page's, so a full walk says which view epoch it ran under (a guest's integer; null for other keys or a keel without the field) and the first poll after it needs no extra walk to learn it. Live on Moppetopia: a full walk…
4.16.0
epoch on the feed (keel 979eb0c). OwChangesPage.epoch and changesHead()'s epoch: a guest's view epoch (an integer), null for every other key. It moves when what a guest may see changes, even with head unchanged, so a poll walks when either head or epoch moved; nothing needs to…
4.15.0
changesHead(): GET /changes?head=true, the feed's position now without a page (keel reads no element). Returns { head, cursor }: head is the world's change_seq, cursor a position to pass as since that re-sends nothing (a guest's carries its view's epoch). The cheap "anything…
4.14.0
The co-builder role is co_builder on the wire. OwJoinPreview.role and OwJoinedMembership.role listed 'co-builder', which is only the label keel shows (keel MemberRole.CO_BUILDER = "co_builder"). The types were open, so nothing broke at runtime, but a comparison written from them…
4.13.0
Ask your world (keel #159). client.ask({ worldId, question, context }) sends a question to keel's AI proxy with the account's ow_a_ token (a world key is a TypeError before sending) and returns OwAskAnswer (answer, model, stop_reason, usage, remaining). The answer comes from…
4.12.0
Joining a world by link (keel #212). previewJoin(code) reads what a join code holds without using it (OwJoinPreview: reader, world, invited_by, owner_character, role, with_character, expires_at) and sends no credential, whatever key the client holds. acceptJoin(code) accepts an…
onlyworlds 0.2.1
The schema, repinned to schema-dist v0.32.0-dist.23 (same canonical 00.32.00): the dist trues the Id description (a UUID; new ids uuidv7, earlier uuidv4 ids valid) and adds walk/lint_folder.py. ELEMENT_TYPES and FIELD_KINDS are unchanged; SCHEMA_DIST_TAG, SCHEMA_DIST_SERIAL and…
Schema3 changes
v0.32.0-dist.23
Serial 23: the Id field's description trued to what the platform does: an id is a UUID; new ids are minted as uuidv7; ids minted earlier as uuidv4 remain valid. One description line; no field, type or walk change.
v0.32.0-dist.22
Serial 22: walk/lint_folder.py accepts the folder format's own element keys (local_updated_at, server_updated_at, image_media_id) and reads a null string field as the unset string, so a linked Atlas folder lints clean. Serial 21 flagged every element of such a folder. Schema…
v0.32.0-dist.21
Serial 21 on canonical 00.32.00: walk/lint_folder.py, the folder check. Run it on a world folder (python walk/lint_folder.py path/to/world) and it names every key that is not a field of its type, every link that does not resolve inside the folder or points at the wrong type, and…
Sunday 11 October
31 changes
Site 2, Atlas 14, AI toolkit 1, TypeScript SDK 8, Python SDK 3, Schema 1, Unity SDK 1, History 1
Site2 changes
A guest sees what its Character knows
A story reaches a guest through its narrator or its circles (a Collective the guest's Character is in), never through who it is about. A secret written about a player's Character stays hidden until a knower names them. Conditional writes too: a PATCH can say "only if unchanged" and is refused, with the element as it is now, when someone else changed it first.
The API reference page carries the site's icon
The browser tab for the API reference showed a broken icon from the library behind it. It shows the OnlyWorlds icon now.
Atlas14 changes
World files read the same everywhere
Atlas now opens and makes world files with the OnlyWorlds SDK's own reader and writer, the same ones other OnlyWorlds tools use, so a world file made in one opens in the others. Files Atlas made before open as they always did.
The Web settings in plain words
Settings, Web spoke of hop depth, tier-derived defaults and per-ring caps. It now says Graph reach, explains Auto in one sentence, and calls the two switches by what they do: keep the graph still, and colour each line by type. The graph's own buttons say the same.
Capitals on the rest of the buttons
The last lowercase labels now start with a capital too: the command palette, Settings, the colour picker, the zone line styles, the chart menu, the calendar checks, the Worlds list and the tour's last page. The landing's doors and small status tags stay as they were. A world made without a name is now called Untitled world.
Capitals on the buttons
The Sharing room, the knowledge room, the calendar builder, the world clock and the new chapter dialog spoke in lowercase: publish, done, cancel. Their buttons, titles and labels now start with a capital, like the rest of Atlas. Small status tags such as live or not published stay as they were. A new page is called New page.
Stay offline is now Pause sync
The switch that stops one world syncing was called Stay offline, which read like a lost connection. It is now Pause sync (this world), beside Pause all sync.
One word for the kinds of element
Atlas called them both categories and types. It now says type everywhere. The landing's line reads Worldbuilding on OnlyWorlds.
Potentials list the names in your text
When a scene names an element without linking it, the name gets a dotted underline, but Potentials beside it said there were none. Potentials now lists those elements first, marked "in the text", each with a Link button that links it where the text names it. Your text does not change.
Downloading a cleared world again needs no PIN
When this browser cleared an online world, downloading it again asked for your PIN first. OnlyWorlds lets a key read without it, so the world now comes back either way, and its sync starts once your PIN is in Settings, under OnlyWorlds. An older ten-digit key still asks first.
Plainer words across Atlas
Four readers went through every line Atlas shows. Engine words like pull, push, slug and API gave way to what the screen calls things: Refresh from OnlyWorlds, the page URL, onlyworlds.com. Every delete confirm now says it cannot be undone.
Error lines point at a step that works
A few lines sent you somewhere that could not help: reopening a world that was still linked, or asking a shared world's owner for their key. A revoked or read key now points at Unlink, then Make online with a new key, and a member of a shared world is told to make their own key on onlyworlds.com.
The web legend counts right
The Web tab's legend read "1 links here" and "2 link here". It now agrees with its number.
Clear server deletes in one step
When elements are deleted on onlyworlds.com, Atlas asks what to do with each local copy, one click at a time: 114 deletes took 114 clicks. Delete all locally now clears them in one confirmed step. A copy you edited here since the last sync is listed first and kept unless you tick it.
Zones get their own icon
A zone showed a drafting compass. It now shows a pentagon, the shape a zone draws on a map.
4.2.0
Installs from the skills directory: npx skills add OnlyWorlds/toolkit (every skill carries the knowledge it reads; skill folders named as their skills). Descriptions rewritten in users' words. New skill: onlyworlds-consistency (contradictions between a world's elements). The…
TypeScript SDK8 changes
4.11.0
World lookup. buildWorldIndex(elements), lookupWorld(index, question, { limit }) and renderElement(element, index) find the elements a plain-language question is about, in a world held in memory: no model, no network, a few milliseconds. Ranking: names and short forms first…
4.10.0
World files. readWorldFile(bytes, { maxBytes, maxEntries, skip }) opens a .zip that holds one world folder (Folder Format §4.1, a portable copy) and returns { worldId, name, world, files }; writeWorldFile(files, topDir) makes one. Bytes in, bytes out: no DOM or file system, so…
4.9.0
Only if unchanged (keel #210). patch(type, id, partial, { ifMatch }) and editLinks(type, id, field, edit, { ifMatch }) send If-Match: "": the write lands only if the element is still at that change_seq. When it has moved, nothing is written and the call throws…
4.8.1
Schema repinned v0.31.0-dist.19 → v0.32.0-dist.20 (canonical 00.31.00 → 00.32.00). The standard's World gains public_read, the walk's first boolean field (scalar_bool). OwWorldMeta already carried public_read from GET /world; it stays read-only, since PATCH /world refuses it…
4.8.0
removeImage(keyOrUrl, { ticket? }): removes one uploaded image. A removal ticket from keel (POST /media/remove-ticket, keel D91), then the removal at the ticket's remove_url with the ticket only, never the API key. Takes the object key or the whole image_url. The image's…
3 patch updates, 4.7.1 to 4.7.3
4.7.3, 4.7.2, 4.7.1
Python SDK3 changes
0.2.0
Only if unchanged (keel #210). patch(..., if_match=change_seq) and edit_links(..., if_match=...) send If-Match: the write lands only if the element is still at that change_seq. When it has moved, nothing is written and PreconditionFailed is raised (412 precondition_failed), an…
0.1.1
The schema, repinned to schema-dist v0.32.0-dist.20 (canonical 00.32.00): the World gains public_read, a boolean. Export writes it into world.json as GET /world sends it; push never sends world keys, so nothing new goes out. ELEMENT_TYPES and FIELD_KINDS are unchanged.
0.1.0
The first release on PyPI. Python 3.12+, no runtime dependencies.
v0.32.0-dist.20
Canonical 00.32.00: the world definition trued (created_at, updated_at and public_read in; api_key, user and version out, they were never served). The walk now decodes boolean fields (kind scalar_bool): world.public_read is in schema.json. The Hyperion example re-exported after…
OnlyWorlds Unity SDK 0.4.0
List filters: OWListParams.Name, NameContains, Supertype and Subtype send the API's name, name__icontains, supertype and subtype filters. ListAllAsync now carries every filter onto every page.
11 OctLantern
OnlyWorlds in your pocket: a web page pinned to a phone's home screen that holds all your worlds offline and syncs when it can.
Saturday 10 October
32 changes
Site 11, Atlas 18, Obsidian plugin 1, AI toolkit 1, Schema 1
Site11 changes
A number too large for a field is refused with a clear message
An element's whole-number fields hold values between -2147483648 and 2147483647. A value past that now answers with an invalid_request error naming the field, where before it was a server error.
A page-not-found page that looks like the site
An old or mistyped address now lands on a page in the home page's family, with the ways back in: home, start, the documentation.
A world's calendar, writing and knowledge on its page
The world page shows what a world carries beyond its element counts: its calendar with the eras and the present year, its books with their chapters and pages, and what is known and by whom.
Every public page as Markdown, and a deprecation policy
An agent that asks for a page as text/markdown gets the same page as Markdown. The API document now states how versions and removals work: nothing is removed without six months' notice on the feedback page and in the document.
The API says which schema version it speaks
Every v2 reply's X-OW-Schema-Version header now carries the standard's version (00.31.00 today) instead of a fixed 2.0, so a tool can tell when the schema moved. The world's calendar steps (time_format_equivalents) accept whole numbers, as the standard says.
An element's picture on its page
An element with a picture shows it at the top of its page on onlyworlds.com.
The world page timeline on a phone
On a phone the timeline lists every marked element by date under the bar, each a link, and says what the ticks are.
Sign in with your username
The sign-in field takes your username or your email.
Remove a picture
An uploaded picture can be removed again through the API, by the account that uploaded it or by the world's owner. Its storage is given back.
Toolkit 4.1
Atlas can stay open while an agent writes a world folder. The api and modeling skills are brought up to date.
Obsidian plugin 3.3: world units
World.md gets a Units section, and heights, weights and the other measured fields show their unit beside the value, as in 182 cm. Units sync both ways.
Atlas18 changes
Time units keep their numbers
OnlyWorlds now stores a world's time unit equivalents as numbers (a week is 7 days), as the standard types them. Atlas read only words in that list, so a world saved that way arrived with the list empty and no calendar to offer. Atlas now keeps numbers and words both, exactly as they are.
A map's web shows places and zones
The Web tab drew every pin and every marker as a dot of its own, so a map's web was a knot: Moppetopia's Space Map drew 73 dots, 67 of them pins and markers. A pin now shows as the place it marks, and a zone's markers as the zone, with how many in its tooltip. On a place's own web, its pin shows as the map it sits on.
Notes keep their dollar signs
When a world's notes changed in another tab while you were typing in them, Atlas merged the two, and a "$'" or "$&" in what you typed was swapped for other text. Typed notes now go in exactly as written.
Hide empty fields
An element page can show only the fields that hold something: a new character was a wall of 38 empty rows. Switch it under the fields ("Hide the 21 empty fields", "Show them") or in Settings, Elements. An element with nothing filled in still shows its first section, so there is always somewhere to start.
A collection shows whole names
On a page, a collection cut most names short ("Captain ...") to fit the type beside them. The type now sits under the name, and a long name wraps instead of being cut, in Atlas and on the published page. A published page's link preview also carries its own opening text and its first picture.
Clearing the selection on an element page sticks
On an element page, the × on the selected element and the Escape key cleared the selection, and it came straight back. Both now go to the world's home with nothing selected.
A screen reader names each pin
Every pin on a map was announced as "Marker". Each pin now carries the name of the element it marks, and keeps it through a rename.
A map lists its pins by place and its markers by zone
On a map, the Web tab and the element page listed every pin and marker as "(unnamed)": Moppetopia's Space Map was linked from 118 things. Now "Linked from" counts what the story links, each pin reads as the element it marks, and markers fold into one entry per zone ("Crumblefields: 16 markers"). In the web itself an unnamed pin is named the same way, and a marker shows its zone when you point at it.
Remove picture says what it cannot do
Removing a picture takes it off OnlyWorlds at once, but copies already cached on the way can keep showing at its link for days. The question before a removal now says so, instead of promising the link stops working.
An edit made just after a sync now always uploads
When this computer's clock ran a little behind OnlyWorlds, a change made in the seconds after a sync could look older than the copy on the server, and Atlas kept it here without uploading it. Every change now counts as newer than the last sync, whatever the clock says.
Remove a picture you uploaded
An element whose picture you uploaded through Atlas has Remove picture beside Choose a picture. It deletes the picture from OnlyWorlds for good, after asking, and clears the image URL of every element here that showed it. The uploader and the world's owner can remove a picture.
Moppetopia opens faster, most of all in Firefox
Exploring Moppetopia wrote every element to this browser twice: once to build the copy, once to keep it. It now builds the copy in memory and writes it once, so it opens in about half the time, in Firefox (where each write is slow) and in Chrome alike.
Step into a place's own map, and back up
Click a pin whose place has a map of its own (the pin wears a small map badge) and an Open button appears beside it, which shows that map in the same tab. A map that sits inside another shows the way back at the start of its toolbar.
A busy element's web no longer knots
An element with many links drew its neighbours in one pile with their names printed over each other. The web now spreads them out, and each name takes the first free side of its circle or shows when you point at it, so no name covers another.
Forget everything in this browser
Settings, Storage has a button that removes everything Atlas keeps in this browser: the worlds kept here, your PIN and sign-in, the folders it remembers and every setting. It names any world that exists only here before you confirm, and asks you to type forget. Folders on your drive and worlds on onlyworlds.com stay. Afterwards Atlas opens as on a first visit.
Upload a picture for an element
In a world that is online, an element has an Upload picture row under its image URL. Choose a WebP, PNG, JPEG or AVIF file and Atlas puts it on OnlyWorlds and sets it as the image URL, so it shows on the element here and on onlyworlds.com. Anyone with its link can see an uploaded picture, even in a private world.
Renaming a file keeps an outside edit
When a world opens, Atlas gives hand-named element files their standard name in the background. It now reads each file just before renaming it, so an edit another program made a moment earlier is kept, and a file with unresolved git conflict marks is left where it is.
A world on a seat keeps its own secret
A world linked with a seat's key and secret (ow_s_) now keeps that secret for itself: it no longer takes the place of your account PIN, and your PIN is never sent for it. Where a seat may change only what it made, a change to someone else's element stays in Atlas and is listed under Not syncing, and the rest of the world keeps syncing. The PIN asked for when you open an account world takes four digits only.
3.3.0
World units, and the old template code removed.
4.1.0
Atlas can stay open while an agent writes a folder.
v0.31.0-dist.19
Serial 19 of canonical 00.31.00. New: schema.json, the decoded schema for any language; example/hyperion, a public example world folder that passes it. The README now says exactly how keys, link kinds, server-set keys and extension prefixes appear in data, and how VERSION maps…
Friday 9 October
32 changes
Site 4, Atlas 27, Schema 1
Site4 changes
World units
A world can name its units for length, mass and distance, such as cm, stone or leagues. They are labels; nothing converts. Set them in the world's Settings or through the API.
A new home page
onlyworlds.com has a new home page, with a short primer that walks through a world. The About page is folded into it.
The tools page, rebuilt
Five rows, from where to start to building your own, with a picture of each tool at work.
The world page, rebuilt
Each of your worlds has a page in five panes: Overview, Elements, Open with, Access and Settings. It works on a phone and can list every element at once.
Atlas27 changes
Units for a world's numbers
Settings, This world now names the units a world counts in: length for heights, mass for weights, distance for range, speed and elevation. Each one shows after its number in the element view, as written, so "hands" and "leagues" work too. Nothing converts. An online world keeps them in sync with OnlyWorlds, where every tool can read them.
More ways to convert opens the AI docs
In the Data room, the link to more ways to convert now opens the OnlyWorlds docs page on working with AI, which covers every way in, instead of the toolkit's front page.
Cards that stay where they are
On a young world's Home, the character and location cards stay in place once made, greyed with a check, and the question above them stays until both exist, so the block no longer changes shape under your first element.
Grow your world
After a character and a location, the Home suggests an event, a narrative, a map and a collective, each opening its own room: Charts, Writing, the map and Knowledge. A made one stays, checked, and opens that room. The waypoints are achievements in Settings, OnlyWorlds, not the route.
One clear question on a new world
It is a clear heading over its three answers, and the answers line up in one column.
The Data room says it in one place
Bring in takes anything in the OnlyWorlds format, whatever made it, and says right under that how to convert notes that are not in the format yet, with a link to more ways.
Moppetopia opens onto its elements
Exploring Moppetopia shows its elements in the sidebar, not the worlds list.
Two doors on the first screen
The first screen leads with start a world and Moppetopia. The tour, a world folder and the other ways in sit on one line under them.
A new world asks what you have
An empty world's Home asks one quiet question with three answers: start with a character and a location, bring in a world you have somewhere else, or look around Moppetopia or the tour. Nothing has to be answered.
One list of next steps
Once a world has a character and a location, its Home shows the next three steps in the order a world tends to grow, each opening the place where it is done. A step leaves when you have done it, or when the world already has it. See all opens the whole list in Settings, OnlyWorlds, where telling a story and who knows what are now steps too.
A link for each way in
atlas.onlyworlds.com/#/start starts a world, and #/bring-in starts one and opens its Data room, beside #/try-demo for Moppetopia. A world started from one of these links is not asked again.
The notes prompt, said plainly
The Data room says what the prompt is for: give it and your notes to an AI assistant, then paste the JSON it returns, which you review before it lands. The prompt now asks the assistant to convert only what your notes say.
One name for each way in
Start a world, explore Moppetopia and download a world from OnlyWorlds now read the same on the first screen, in add a world and in their dialogs, and the dialog for a new world on OnlyWorlds no longer says API world.
Try the demo world
The first screen, and add a world, offer Moppetopia: a small world downloaded from OnlyWorlds as your own copy in this browser. Change anything in it; nothing goes back to OnlyWorlds. Trying it again opens the copy you have.
A view-only world offers no Delete
In a world you view with a read key, an element no longer shows a Delete button that could only be refused.
Map labels no longer sit on pins or each other
A pin's name takes the first clear side of its pin; when no side is clear, hover the pin to read it. A zone and a pin with the same name show it once. The same holds in a page's map preview, which now matches the published page.
Names on the Home chart stay readable
On the chart on a world's Home, names no longer print over each other or over another element, and a timespan's line passes behind a name instead of through it.
One word for getting a world from OnlyWorlds
Every button, title and message that copies a world from OnlyWorlds to you now says download.
A link straight into the demo world
atlas.onlyworlds.com/#/try-demo opens Moppetopia as your own copy, the same as the button on the first screen. If you already have the copy, it opens that one.
A world can live in your browser
On Firefox a world now lives in the browser's own storage, and that is a full home: start a world, bring one down from OnlyWorlds, import one, or open a world file. On Chrome, Edge and Brave every new world asks where it should live: in a folder on your drive, where your AI and other tools can work on it, or in this browser.
Move a world from the browser to a folder
On Chrome, Edge and Brave, Settings, under This world, moves a browser world into your folder: Atlas copies it, checks the copy, then removes it from the browser. Sync carries on from the folder.
Download the whole world as one file
One .zip holds the world: elements, pages, notes, charts and images. Atlas 1.17 or later opens it on any browser, as a world of its own. The file leaves out the OnlyWorlds link and its key.
Link a world with an agent seat
Bring down a world from OnlyWorlds takes a seat's secret (ow_s_…) where it asks for the PIN, so a seat someone invited you to works in Atlas, with its own key and without the account PIN.
A cleared world keeps its place
If the browser clears its storage but keeps Atlas's list, the world's row says "Cleared by this browser" and keeps its link: bring it down again from OnlyWorlds, or open the file you downloaded. Clearing the site's data removes the list too, so the download is the way back.
A card asks for a copy before it matters
Once a browser world holds 25 elements, a written scene or a map image, its home shows "This world lives only in this browser" with Download, Move to a folder and Take it online. The × hides it for a week; a download hides it until the world has changed and a week has passed.
Keep the tour world
At the end of the tour: Keep this world, Save it to a folder (Chrome, Edge and Brave), or Start fresh. A kept Hyperion gets its own ids, so it can go online and sit beside a later tour.
Fixed: the link dialog's busy buttons
"Cancel link" and "Stop and keep what's here" showed from the moment the dialog opened. They now show only while a link is running. Elements that do not download now say that Refresh from API brings them, instead of promising a retry that never came.
v0.31.0-dist.18
Canonical 00.31.00: world units. Three optional World fields, length_unit, mass_unit and distance_unit (free-text labels; nothing converts). The nine fields that count in world units (Character and Creature height; Character, Creature, Object and Species weight; Ability range…
Thursday 8 October
5 changes
Site 3, TypeScript SDK 1, Schema 1
Site3 changes
Unity SDK 0.3
All 22 element types as typed C# models, and a writer that saves a world folder in the same bytes on every machine.
The Developers page, rebuilt
One page from the standard down to the platform and the ways to connect a tool or an AI, with each element type linked to its schema file.
New API docs
The API docs moved to onlyworlds.github.io, with a page for every error code; each error the API returns links to its page. The OpenAPI document now says how to sign in to every route.
@onlyworlds/sdk 4.7.0
OwApiError.isResyncRequired: 409 resync_required from /changes. Guests can follow the feed since keel D79; when a guest's view or a key's role changes, its stored cursor is refused. Drop it, walk from zero, and replace the local copy rather than merging.
v0.30.2-dist.17
README rewritten for tool builders. No schema, walk or presentation changes.
Tuesday 6 October
3 changes
Site 2, TypeScript SDK 1
Site2 changes
Upload pictures
A world's write key, or an AI agent over MCP, can upload an image to use as an element's picture. Each account has 1 GiB of image storage, shown on the account page.
The guest role
A world can take guests, people or agents, who see only what they created, what is addressed to their Character, and who else is in the world. A guest can follow its own slice of the change feed.
@onlyworlds/sdk 4.6.0
Published from e198298 (tag v4.6.0); the tarball was checked against a build of that commit.
5 OctInvite an AI agent to a world
A world's owner can make a one-use link that joins an AI agent to the world, with its own key and its own Character. The owner sees the agent among the world's members.
Sunday 4 October
27 changes
Site 1, Atlas 24, TypeScript SDK 2
Smoother sign-up
Confirming your email now signs you in, and the account pages fit a phone screen.
Atlas24 changes
Every error now says what happened, in plain words
The rest of Atlas follows what 1.15 started: opening, linking and creating worlds, elements, maps, zones, pins, calendars, writing, knowledge, pages, charts and the Data room all say what went wrong and what you can do, instead of passing on the browser's own error text, with Retry where running the step again is safe.
See what is not syncing, and why
When elements keep failing to sync, the sync pill shows a ⚠ with how many, and Settings, under This world, lists each one with the reason and the fix: give it a new id, shorten a custom field, or try again. A sync error on the pill now opens that list too.
Error details carry no names, paths or text
The details you can copy or send as feedback are now built from fixed facts only: the kind of error, its code and the field it names. An unexpected error still includes its own message, with capitalised names, file and folder paths, keys and email addresses taken out. A name typed in lowercase can still show, and you see the whole text on the feedback page before you send it.
Refreshing waits out OneDrive and antivirus too
A file another program held could still stop a refresh from OnlyWorlds, report your own new element as a conflict, or quietly stop the lock that keeps two tabs apart. A refresh now saves everything else and says which copy to try again, your own element is recognised, and the lock keeps going.
Saves that failed without a word now say so
A failed pin move, zone colour, chart save, alias edit, link removal or world list save used to fail silently. Each now says so, and a problem nothing else caught shows once, with details you can send.
Ctrl+K can create what it cannot find
When nothing matches what you typed, the palette offers Create "…" as…, which opens the new element dialog with the name filled in.
Element pages show dates in your calendar
With a calendar set up, every date field on an element page also shows the date as your calendar says it, under the number. The stored number does not change.
The type filter says what it shows
A line under the search box says in words which types the filter strip is showing, and the add-world icons now have names a screen reader can read.
A new page asks for its name
Making a page now opens it with its name ready to type, so it does not sit in your element list as "new page".
Pasted JSON says where it broke
When pasted or dropped JSON does not parse, the Data room now names the line and column to look at, when the browser reports where it stopped.
Trying again no longer makes a second map, calendar or world folder
Pressing Create again after an error used to make a second map or calendar, or a second local folder when making a world on OnlyWorlds. It now finishes the first one.
Errors say what happened and what you can do
When saving, opening a world or syncing fails, Atlas now says why in plain words instead of passing on the browser's or server's own message, and offers the fix where it has one: Retry now, Allow access to the folder again, or Give new ids.
Copy the details of an error, or send them as feedback
Errors worth reporting have a Details part with Copy details and Send feedback. The details name the Atlas version, the browser and the kind of error, and are built to leave out your world's names, text, keys and file names. Feedback opens the OnlyWorlds feedback page, where you can read and edit everything before you send it.
Syncing waits out OneDrive, Dropbox and antivirus
When another program had a file in your world folder open at the wrong moment, often a cloud sync app or antivirus, a change could fail to sync with a message nobody could read, and it only synced after your next edit. Atlas now waits a moment and tries again on its own, keeps the rest of the sync going, and if a file stays busy it says so in plain words. Your change was always safe on disk.
No more stray .tmp files in your world folder
Atlas saved every file twice, through a temporary copy, and a busy file could leave that copy behind. It now saves each file once and checks it afterwards.
Linking keeps two maps apart when both have pins
When linking to an existing online world, a map or zone with the same name on both sides is matched as before, unless both have their own pins or markers on it. Then each stays its own element, so no map ends up with two pins for one place and no zone outline mixes two sets of points. The message after linking names them.
Keeping the online version of a page keeps all of it
Choosing to keep the online version while linking now replaces a page's local blocks too, so the next save no longer puts your local page back over the online one.
The type field no longer picks a type you did not mean
Typing a word that is not a type, like "plan", kept the last match (Phenomenon) and created one. Now nothing is picked until you choose a type, and the window says so.
Error lines in windows are readable in the light theme
Lines like "Name is required" were pale pink on pink in the light theme. They now read in both themes and go away once you fix the field. A zone with no name says so too.
The hidden tour comes back from a button that says so
With the tour panel hidden, its round + button sat over the map's zoom-out and the writing word count. It is now a "Show the tour" button below the app.
The tour says that ending it deletes the tour world
Leaving or finishing the tour deletes the tour world and everything made in it, and now the tour says so before you do. "More information" in a step also closes with Escape.
Help and feedback in Settings
Settings, General, has a Help and feedback group: send feedback, Discord, what is new, and email. The version at the foot of Settings opens this page.
The example page is off the landing for now
The example page is being rebuilt from a better world. Its old link still opens it.
Two typos fixed
In the Data room and the tour's writing step.
TypeScript SDK2 changes
4.5.0
What the staging write probes found on the wire (Python package, 2026-10-04): one new getter, and three behaviours the server has always had that no client doc said. Additive; nothing is removed.
4.4.0
Membership, as far as the server has shipped it: who created an element, and the refusal a contributor meets on someone else's. Additive; nothing is removed or narrows.
September 2026, 125 changes
Tuesday 29 September
56 changes
Atlas 55, Unity SDK 1
Atlas55 changes
Linking to an existing online world keeps every link
When Make online matched one of your elements to an element of the same name already online, links written in your text, scene mentions, page text and the element's own images stayed pointing at the old copy. Every link and file now moves to the online element before anything uploads, and if linking stops part way it finishes cleanly the next time, without making duplicates online.
Two elements with the same name are no longer merged by guess
If two of your elements, or two online, share a name, linking now keeps each one as its own element and says which names it left alone, instead of picking one.
A mistyped number no longer clears the field
Typing something that is not a number, like 12,5, and pressing Enter used to empty the field, and on a custom number field it removed the field. Atlas now keeps the old value and asks you to fix the entry.
Fields holding lists or structured data stay safe
A text field that another tool filled with a list or structured data showed as [object Object], and clicking it could save that text over the data. It now shows read-only.
A scene whose parent chain loops no longer freezes Atlas
If a scene ended up as its own parent, for example after an edit outside Atlas, opening it in Writing froze the tab. It now opens normally.
A broken calendar no longer freezes Atlas
A calendar with impossible month or year lengths could freeze the tab as soon as a date was shown. Atlas now ignores such a calendar and shows plain numbers.
Editing a calendar keeps everything it had
Saving a calendar after the world clock's unit changed could delete its months, weeks and festival days, because the form was not showing them. Saving now keeps what the form does not show, and the calendar's own time unit.
Pressing Enter on an unchanged chart date no longer moves it
A date shown rounded, or as a month of a calendar, could snap to a new value when you pressed Enter without typing.
Long histories get a readable time axis
A world spanning thousands or millions of years now gets evenly spaced labels instead of a smear, and a calendar axis labels the whole range, not just its start.
A shared chart where everything shares one date sits in the middle
A published or previewed chart whose elements all have the same date drew them against the left edge.
You can pan to a now outside your recorded history
If the world's now falls before or after every dated element, the chart can now reach it.
Shortcuts work on Cyrillic and Greek keyboard layouts
Ctrl+S, Ctrl+E, Ctrl+K and the other letter shortcuts did nothing on a non-Latin layout.
The shortcuts list shows every key as a chip
On a Mac the combos ran together as plain text, and Escape never got a key chip.
Big maps open quickly in the context graph
The graph now shows the 60 most connected direct links and says how many more there are, and an edit that changes no links no longer recomputes the layout.
Pause all no longer overrides Stay offline
Turning Pause all off used to resume a world you had set to stay offline. Each switch now keeps the other in force.
Imported writing keeps its links
When an import merged elements with ones you already had, or gave an element a new id, links inside stories and descriptions kept the old id. They now follow.
Switching worlds in Pages no longer forgets published pages
Switching worlds while Pages was checking publish state could mark the new world's pages as never published, while they stayed live online.
The reminder that a page changed since publishing stays on
Coming back to Pages after publishing showed a refresh message and switched the reminder off. It no longer does.
Esc while drawing a zone stays on the map
Esc cancels the zone you are drawing or reshaping, and no longer also clears the selection and jumps to the world home.
The focus mode shortcut no longer opens Find
Ctrl+Shift+F in Writing turned on focus mode and also opened the find bar, so the next words went into the search box.
Map markers no longer share the pins icon
Since 1.13 a marker showed the same icon as the show and hide pins button on the map. A marker is a point on a zone's outline, and its icon now draws one.
Settings shows the version you are running
The foot of Settings said v1.0.0 through every release since launch. It now matches this changelog.
The guided tour works in narrow windows
Below about 1100 pixels wide, Atlas folds its side panels away, and the tour pointed at controls inside them and could not go on: on phones at the first step, on smaller laptop windows at the map. The tour now opens the panel each step needs, and the panel buttons stay on screen if you close one.
Placing a pin in a narrow window opens the map
Clicking + pin while the map was folded away left the next click nowhere to go. The map now opens, ready for the click.
A narrow window with no world open shows the Worlds list
With no world open, a narrow window showed an empty page that pointed at a list you could not see. It now opens the Worlds panel, and the panel button is there to bring it back.
A private window says why the tour cannot run
Firefox private windows do not allow the browser storage the tour keeps its world in. Atlas now says so on the first screen, instead of stopping at the tour's first step with a technical error.
A tab left open through an update picks up the new version cleanly
After an update, a tab that was already open could fail to open rooms and editors. It now offers one Reload, and every reload after an update saves your unsaved text first, in every open tab.
Going back to a world you just left no longer reopens it from scratch
Atlas keeps a world you leave ready for a quick return. Two saves of the same small file could collide and throw that away, so the world reopened slowly; each file now takes its saves one at a time.
Taking a world online no longer asks about its own failed uploads
When some uploads failed while taking a world online, Atlas then asked whether to upload a batch of changes found on disk: the same elements. It now retries them and says which failed.
Open a world folder on your first visit
The first screen now has "open a world folder": pick a folder your AI or another tool made and it opens where it is, with nothing copied. Atlas asks where to keep new worlds only when you first make one, and "set up a folder" pointed at a world folder opens that world too.
Add a world: one button that says every way in, in words
Under the icons at the top of the Worlds list, "add a world" lists each way to start, open, bring down or view a world, with a line on each. Ctrl+K finds it too, and Settings, then General can hide the icon row.
A scene edited while Atlas was closed opens with the new text
When another tool changed the text of a scene or knowledge entry while Atlas was closed, Atlas opened its own older copy, and its next save wrote over the change. It now opens the new text and says so once.
A big batch of outside edits asks before it uploads when a world opens
When more than 50 elements are waiting to upload as a linked world opens, for example after an AI rewrote the folder overnight, sync waits until you choose Upload them or Stay offline, as it already did with Atlas open.
Deleting a world only ever deletes that world's own folder
Delete world and folder now checks that the world's folder sits inside your OnlyWorlds folder before anything happens. A world opened from elsewhere is left alone and Atlas says how to remove it; before, it could delete a different world with the same folder name.
An edit made seconds after you left Atlas still shows
Atlas checks the folder at most once every 5 seconds when you come back to its window. Coming back sooner now checks again once the 5 seconds pass, so the edit shows without switching windows again.
A tour in another tab no longer stops Atlas noticing outside edits
Running the guided tour in one tab stopped every other Atlas tab from picking up changes to its world folder. Only the tour world itself is skipped now.
Two Atlas tabs no longer undo each other's world changes
Notes typed in one tab, or a world taken online there, could go back to the old version when the other tab opened that world. Each tab now saves only what it changed, and picks up what the other tab saved.
World notes changed on another computer survive while the world is open
If a world's notes or cast changed through Dropbox, OneDrive or git while you had it open, your next change no longer writes over them, and when both sides changed the notes, both are kept. Notes on a view-only world no longer repeat at each open.
Picking a folder that holds several worlds says so
"Open a world folder" pointed at a folder of world folders now says how many worlds it found and to pick one of them, instead of "no world.json".
The link-all button no longer covers the first line of text
The corner button that links every mention sat over the last words of the first line. Scenes and knowledge entries now keep room for it.
The tour's maps show offline after one run online
Map pictures are kept once they have loaded, so the tour and the example page show them offline afterwards.
Keep Atlas open while another tool writes your world
When an AI assistant, a text editor or git changes the element files in your world folder, Atlas picks up the changes when you come back to its window: the elements update, the list marks what changed, and an open scene or knowledge entry reloads. Reload from disk in Ctrl+K checks every file. If you are typing in the same scene at that moment, your text is kept and Atlas says so. A file removed by another program leaves the list, and the list says so; it is never deleted from your OnlyWorlds account.
Outside edits on an online world upload when they say they are new
An edit that sets a new local_updated_at, as the OnlyWorlds toolkit tells tools to, uploads like your own edits, and a sync no longer writes over it. An edit without one is marked "not synced". When more than 50 elements change at once, sync waits until you choose to upload them or stay offline.
A sync stops at a file it cannot read instead of writing over it
If an element file will not open (for example git conflict markers), a sync that would update it now pauses and names the file, as uploads already did. Fix or remove the file and sync carries on.
World notes, your cast and writing labels now live in the world folder
They were kept only in this browser, so copying the folder, opening it on another computer or clearing site data lost them. They are now written to the folder too, and a folder opened elsewhere brings them along.
Switching worlds in Charts no longer replaces the other world's charts
With Charts open, clicking another world kept showing the first world's saved charts, and saving one there replaced that world's charts with them. Each world now shows and keeps its own. Published pages in the second world no longer lose their chart blocks either.
A deleted element stays out of the scenes that mentioned it
Opening a scene that mentioned a deleted character put the character back in the scene's links, so the scene would not upload. The mention stays in your text; the link does not come back.
Renaming no longer saves half a name
A sync or an autosave landing while you typed a new name could save what you had so far and drop the rest. The name now saves when you finish.
Knowledge text that failed to save is saved when you leave the entry
After a failed save, leaving the entry used to drop the text on screen. Atlas now tries again on the way out.
A page's text block keeps your typing when charts refresh
A chart refresh could rebuild the page under an open text block and lose the last second of typing.
Institutions and map markers have new icons
They now match the icons OnlyWorlds uses for these types.
Elements whose ids belong to another world can get new ones
A copied or imported folder, or a world taken online a second time, carries ids that another OnlyWorlds world already holds, and those elements never uploaded. Settings, then your world, now offers to give them new ids: every link, mention and page block follows, and then they upload.
An id update that was interrupted finishes when the world opens
If the tab closes while elements are getting new ids, the world does not sync until the update is done, and the next time it opens Atlas finishes it before showing anything.
Make online keeps you on the page you had open
When Make online matched a local element to one already online, an open timeline, writing or map page for it jumped to another page or showed nothing. It now follows the element, and Back no longer leads to its old address.
OnlyWorlds Unity SDK 0.3.0
All 22 OnlyWorlds element types as typed C# models, generated from the schema distribution.
Monday 28 September
36 changes
Site 2, Atlas 31, AI toolkit 1, TypeScript SDK 2
Site2 changes
Toolkit 4.0
The Claude Code toolkit covers the whole life of a world. Two new skills: context, for loading a world into an AI session, and resolve, for writing each session back into the world.
Atlas31 changes
Deleting an element removes it from everything that linked to it
A deleted location used to stay in its characters' location field as a bare id, and when the world went online OnlyWorlds refused those characters, so they never uploaded. Atlas now removes the link, the same way onlyworlds.com does.
A local world can remove links to elements that are gone
Settings, then your world, shows how many elements still link to something deleted earlier or left out of an import, with one button to remove those links before the world goes online.
Exports no longer carry your API key
The export offered to include the world's API key and had it ticked by default, for both the file and Copy JSON. Anyone holding that file could read the whole world. The key is never exported now; to connect a world, use Make online.
Merging your own export back in no longer duplicates renamed elements
An element renamed since the export came back as a second copy, and new links in the file pointed at the copy. When the file is this world's own export, Atlas now treats the same id as the same element whatever its name.
Zone styles can follow a zone's role
The zones panel now splits a kind by role when its zones share roles, so rivers can be major rivers, rivers and streams, each with its own colour and line. Road segments that carry their road's name group under it.
A zone made of other zones shows up in the zones panel
Some worlds describe a road as one zone that links its segments and has no outline of its own. Atlas used to leave these out entirely. The zones panel now lists them with the number of parts, and hovering one lights every part on the map.
Big worlds stay responsive while you click around
The element list and the home page used to redraw completely on every small change, which on a world of twelve thousand elements cost a noticeable pause on each click. They now redraw only when something they show has changed.
Maps read positions the way every other OnlyWorlds tool writes them
Pin and zone positions now count from the bottom-left corner of the map, as the OnlyWorlds standard says, so worlds made by other tools and converters show the right way up. A map you placed in an earlier Atlas may now show upside down: open the gear on that map and press Flip pins and zones. Press it again to undo.
Cancelling a link leaves you in the world you were in
After cancelling a world that was still downloading, Atlas kept showing your previous world but could no longer save it: text typed in the writing room was lost and edits said there was no active world. The world you were in now stays open and working, whether the link finishes, stops or fails.
A damaged world file can no longer blank your world settings online
If world.json could not be read, for example after a git merge conflict, the next sync could send empty world settings to OnlyWorlds. Sync now stops and names the file to fix. A damaged element file or sync file is treated the same way: Atlas leaves it untouched and tells you which one it is.
An edit is no longer lost when a connection drops during a first upload
If an element was edited while it was first being sent to OnlyWorlds and the reply never arrived, Atlas could treat the older copy on the server as current. It now compares the two and sends your newer text.
A busy or unreachable OnlyWorlds no longer ties up sync
When OnlyWorlds is busy, limiting requests or out of reach, Atlas now stops after the first try instead of waiting out every pending change in turn, says so in one line, and tries again on its own a little later. Your changes stay saved in the folder the whole time.
Linking a local world to an existing one keeps your writing and pages
When a local element matched one already online by name, linking the two kept the online copy but dropped what only Atlas stores: the formatted text of your writing, page layouts and their publish link, aliases and a map's local image. Those now carry over.
One element OnlyWorlds refuses no longer holds back the rest
If OnlyWorlds refused one new element in an upload, other new elements that linked to it could make the whole upload fail again every time. Those are now held back on their own and everything else goes through. Pulled changes also can no longer overwrite an edit you make at the same moment.
The PIN prompt shows world names as plain text
A world name from your OnlyWorlds account is always shown as text in the prompt that asks for your PIN, so an oddly named world cannot change where the PIN is sent.
One quiet scrollbar everywhere, and less motion when you ask for it
Windows, the search palette and popovers now use the same thin scrollbar as the rest of Atlas, in both themes. If your system is set to reduce motion, the pulsing hints and sync dots hold still and transitions are instant.
Windows behave better from the keyboard
Every window is announced to screen readers as a dialog with its title, and closing one puts the keyboard focus back where it was. In the small field editor, pressing Enter while Cancel is selected now cancels instead of saving.
Settings can show you the world folder
Settings, World now has a Show folder button. A web page cannot open your file explorer, so it opens the folder picker inside the world folder, where you can see its files. Close it when you are done.
The tour world says why it stays offline
The world the guided tour builds is a sandbox that is removed when the tour ends, so it can no longer be taken online, where it could only fail to upload and then disappear. Settings says so plainly. Create your own world to take it online.
Reloading for a new version saves what you were typing
Pressing Reload on the new version note now saves text that was still waiting to be written in the writing, knowledge or pages room before the page reloads.
Opening a world folder from someone else can no longer run code in Atlas
Names, colours and map points from a world file are now always shown as plain text and plain values, and Atlas refuses to run any script that did not come from Atlas itself. This matters because Atlas keeps your OnlyWorlds keys, and worlds now arrive from public repositories, converters and AI assistants.
A world that is still downloading can be stopped, kept or cancelled
Linking a large world from OnlyWorlds now shows two buttons while it downloads: stop and keep what has arrived (Refresh from API brings the rest later), or cancel and remove the new folder. A stray click outside the window or the Escape key no longer closes it halfway, and the same holds while a world uploads.
An edit made while Atlas is uploading is no longer lost
If you changed an element in the second or so while its previous change was being sent to OnlyWorlds, Atlas could mark it as synced and never send the newer text. It now notices and sends it on the next round.
Switching worlds saves the text you just typed
Text typed in the writing, knowledge or pages room in the moment before switching to another world could be dropped. Atlas now saves it before it leaves the world.
Files from other tools are read more generously and never discarded
A name written as a number, map points written as text, a link written as a single id instead of a list, and a pin with no position no longer break the element list or the map. A second file that shares an element id with another is moved to .atlas/quarantine instead of being deleted, and a world file Atlas cannot read (for example after a git merge conflict) is left alone rather than overwritten.
Sync errors say what went wrong
When elements cannot upload, Atlas now names the reason, such as ids that already belong to another OnlyWorlds world or custom fields larger than OnlyWorlds accepts, instead of suggesting a connection test.
A new version of Atlas asks before it reloads
After an update, Atlas used to reload itself under you the first time you opened it. It now shows a small note with a Reload button and waits.
Small things that make Atlas nicer to use
The browser tab names the world and the element you are on. Double-clicking a button or row no longer highlights its text, and copying text never picks up icon names. Keyboard focus shows a clear ring, buttons that only appear on hover also appear when you tab to them, a disabled button looks disabled, error messages stay longer and are read out by screen readers, and a name cut short by its column shows in full when you rest the pointer on it.
Links with more than one query value work in the compiled view
A web link like example.com/?a=1&b=2 in your prose opened a broken address from the compiled view and from published pages. It opens the right one now.
Edits another tool makes to a world file are kept when Atlas saves
If a text editor, a script or an AI assistant changes an element file while Atlas has the world open, Atlas now saves its own change on top of what is on disk instead of over it. Atlas still shows the outside change only after you reopen the world, so close the Atlas tab before editing files by hand.
New worlds write map links the way every other tool reads them
Pins and markers in a new world store their map and zone under the standard names, so other OnlyWorlds tools read them without a translation step. Worlds that already use the older spelling keep it.
4.0.0: the whole life of a world
The toolkit now covers the whole life of a world, on whatever you have (notes, documents, a world folder, an OnlyWorlds account):
TypeScript SDK2 changes
4.3.0
Errors you can act on: the two 409s told apart, and the busy server's Retry-After, in Node and browsers. One getter narrows (see Fixed); nothing is removed.
4.2.0
Ids, honest filter docs, and the schema repin. Nothing is removed; no call needs to change.
25 Sep3.2.6
Two folder-import data-loss fixes.
18 Sepv0.30.1-dist.15
Presentation sidecar only: institution icon business -> account_balance, marker icon place -> location_on (the two slugs missing from the Material Symbols SVG set). Canonical 00.30.01 unchanged.
Friday 11 September
7 changesAtlas7 changes
Map labels show every name that has room, and pins make room for each other
A map with hundreds of pins and zones used to draw every label on top of every other. Labels now claim their space in order of how much the world points at them: the names that fit are shown, a name that has no room below its pin tries beside or above it, and the rest appear as you zoom in. Pins on a crowded map shrink so they stop covering each other and grow back as you zoom. The old "always" mode is one click away in the map settings.
Right-click a type in the sidebar to keep it out of the full list
A world with thousands of pins and markers should still read as its places. Pins and markers now sit in the last two filter slots, greyed: they stay out of the list when you show everything and appear when you click their filter. Right-click any type to mute or unmute it; the choice is remembered per world.
A colour picker that belongs, and fit-to-image beside the map door
Picking a colour for a kind of zone opens a small atlas panel with presets, a hex field and an Apply button instead of the browser dialog, which committed every drag and drew a stray white box. On the map toolbar the fit-to-image button moved to the right, next to the map element button, with the view toggles and the draw tools on the left.
Colour zones by kind: rivers blue, roads dashed, one click each, saved with the world
The zones button on a map now opens a panel that groups zones by kind (a supertype and subtype pair, like Line and River). Each kind has a colour swatch, an eye to hide it on this map, and a tune button for fill, line weight, dashed or dotted strokes, and "label first" so its names stay on at any zoom. Rows open to the zones, and hovering a row lights that zone on the map. A search box finds a zone by name. The rules live in .atlas/styles.json inside the world folder, so they travel with it. The colour of a kind also shows as a small swatch beside the type on element pages and in the sidebar.
Hovering a zone lights the whole road, river or region
You no longer have to click to see where a zone runs. The outline brightens and thickens under the cursor and its name shows even when the map is too crowded to label it.
The zone page says where its colour comes from, and long point lists fold away
The visuals section shows the colour the map actually draws and names the kind rule it inherits, with one click to go back to it after an override. Point lists longer than eight fold behind the map row, which gained a pan-to-zone button. The section also stopped claiming those fields were local only; they sync with the world.
Rivers and roads written by other tools draw as lines
A zone whose shape was written as "Line" by another OnlyWorlds tool drew as a filled polygon, because atlas only recognised the lowercase spelling it wrote itself. Any spelling of line is a line now.
Saturday 5 September
6 changes
Site 1, Obsidian plugin 5
Obsidian plugin 3.2.1: phones
Dialogs fit the screen on phones and keep their buttons above the keyboard, so creating and downloading a world works on an iPhone.
Obsidian plugin5 changes
3.2.5 — keyboard fix, corrected again
Fixes the collapsed dialog that 3.2.3 and 3.2.4 still showed on iOS when a field was tapped.
3.2.4 — keyboard fix, corrected
Fixes a bug in 3.2.3 where tapping a field collapsed the dialog to an empty box on iOS.
3.2.3 — the keyboard fix
Follows 3.2.1/3.2.2, which fixed the modal layout on mobile but not the keyboard itself.
3.2.2 — modal positioning fix
Fixes a regression in 3.2.1 where the mobile modal rendered with half its width off the left edge of the screen.
3.2.1 — mobile modals
Mobile fix. Modal dialogs now fit the screen and keep their buttons reachable on phones.
Friday 4 September
7 changesAtlas7 changes
The find bar links every match to an element you pick
Ctrl+F in the writing room now has a "Link to element" button. Type a word, pick the element, and every match in the scene becomes a link in one undoable step. The word is saved as an alias so later scenes recognise it too. Your text is never changed, only linked.
Find works on chapters and books, and links across every scene inside
The compiled view of a chapter or book had no find at all. It now searches the whole assembled text, and "Link to element" links every match in every scene underneath, written straight to the files.
An element shows where it is mentioned but not linked, with one button to link them all
The element preview in the Web tab now lists every scene that mentions the element by name or alias as plain text, and "Link all" turns every one into a link. Creating an element whose name already sits in your prose says so in the confirmation.
Chapters and books show a link by the words you wrote, not the element name
A scene that read "only an orc already linked" compiled as "only an Orc Chief already linked". The compiled view, the share preview and the published page now all show the label you wrote. Links never change your text.
The compiled view redraws when its scenes change
Linking from the Web tab or a sync pull used to leave an open chapter showing old text until you left and came back. It follows every change now.
The find bar no longer covers the date pill
Ctrl+F opens after switching scenes
Moving between scenes without leaving the writing room left the find bar detached, so the shortcut did nothing until you left and came back. Fixed.
Wednesday 2 September
10 changesAtlas10 changes
The web shows every element that links to the one you are on
An element that was only ever pointed at, a regime named by its titles and houses, used to show an empty web. Those links now appear as muted nodes below the center, each with an arrow pointing in, alongside the links the element makes itself.
Pins and markers written by other tools show on their maps
The folder format names a pin's map as "map" and atlas has always written "map_id". A folder from another tool opened with every pin missing and the map count reading zero. Atlas now reads both names and writes each file back the way it found it.
After a browser storage clear you can set up a different folder
The welcome screen offered only the re-link of the old folder. It now also offers a fresh setup, the same two doors Settings already had. Worlds you opened in place outside the atlas folder come back with the re-link too.
A refused or cancelled folder pick says so
Chrome will not open the top of Desktop, Documents or Downloads, and the refusal used to look like the button doing nothing. Change folder and open folder now say when no folder was chosen and suggest a subfolder.
The two landing buttons share one shape in every browser
On browsers without folder access the splash offers the tour only
The example-page button is gone from that splash. It still appears on Chromium after the tour.
Pointing Change folder at a world opens the world
Set up and Change folder expect a place to keep worlds. Given a folder that is itself a world, they used to nest an empty atlas folder inside it. Now they recognise the world and open it in place, or say which button does that on a first launch.
Every label over the map keeps the same dark chip in light mode
Pin labels went dark in light mode weeks ago and zone labels stayed white beside them. Zone labels, the placement banner and the pin tooltip's small print all follow the same rule now. The chart plot keeps its dark panel and gains a frame on the light page.
The web preview lists everything that links to an element
It used to name only the narratives an element appears in. It now names every element that links to it, narratives first, with the count.
Export writes the same file onlyworlds.com exports
Atlas used to write an older shape with capitalised type names and no world id. It now writes the onlyworlds.com world export exactly, world id included, so a file can travel between the two and back without loss. Older files still import.
Sometime in September
1 change
SepSikelia, again
The 2019 world reconstituted in OnlyWorlds from its original Unity files, a simulation lab in Python, and Windrose, a Unity mapper and playbox by Quillon. Ongoing.
August 2026, 9 changes
Wednesday 26 August
2 changes
Site 1, Unity SDK 1
Unity SDK 0.2
The Unity SDK reads world folders from disk, sends only the fields that changed, and reports each failed item in a bulk write.
OnlyWorlds Unity SDK 0.2.0
Install via Package Manager -> Add package from git URL:
Saturday 22 August
2 changes
Site 1, Obsidian plugin 1
Obsidian plugin 3.2
A new element note shows every field it can hold, with text fields as foldable headings in the note body. New commands manage fields and add custom ones.
3.2.0
Element notes now carry their whole field set, and text fields have moved into the note body.
Wednesday 12 August
3 changes
Site 1, Obsidian plugin 2
Obsidian plugin 3.1: no account needed
Create a world that lives only in your vault, and take it online later in one step.
Obsidian plugin2 changes
3.1.1
Guard on top of 3.1.0's local-only worlds: Paste World matched existing worlds by API key, and every local-only world shares the local token — so pasting one local world into a vault holding a different one could overwrite it. Pasted local worlds now always arrive as a new…
3.1.0 — local-only worlds
No account needed anymore. Create World now offers three paths:
Tuesday 11 August
2 changes
Site 1, Obsidian plugin 1
Obsidian plugin 3.0.1
A re-release so that installs the 3.0.0 update had left broken update themselves.
3.0.1
Patch re-release of 3.0.0. No functional changes.
July 2026, 46 changes
Wednesday 29 July
3 changesTypeScript SDK3 changes
4.1.0
Public-surface hygiene. Nothing breaks; one member is now marked for removal, and one piece of long-standing speculation is retired by measurement.
2 patch updates, 4.0.1 to 4.0.2
4.0.2, 4.0.1
Tuesday 28 July
4 changes
Atlas 2, History 2
Atlas2 changes
Worlds written by other tools open completely
Atlas kept maps, pins, zones and markers in their own folder, and every other OnlyWorlds tool keeps them beside the rest of the elements. Opening one of those worlds showed all the characters and locations with none of the maps, and said nothing about it. Atlas now reads both arrangements, so a world made anywhere opens whole.
New worlds use one folder shape for everything
A world atlas creates now keeps all twenty two element types under elements, maps included. Worlds you already have keep the shape they have, and both open the same way.
History2 changes
28 Julschema-dist
The public schema distribution for tool builders: canonical YAML, presentation sidecar, the one decoder, the ruling table.
28 JulUnity SDK
Typed C# models and a client for OnlyWorlds worlds in the engine, generated from the schema.
Sunday 26 July
12 changesAtlas12 changes
Writing no longer loses the last thing you typed
Leaving the writing room within a second of typing could discard those words, because the save was addressed to whatever the page was showing rather than to the text you wrote. It now goes to the right narrative every time.
Map pin labels are readable in light mode
Pin labels and their hover tooltips were white text on a white chip. They now keep a dark chip in both themes, the way map chrome should.
Page previews show what a visitor will actually see
A dark page previewed as a light page while the app was in light mode, so the preview and the published page disagreed. The page now keeps its own look regardless of your theme.
Long element names no longer push the delete button off screen
A long name filled the header and clipped the controls beside it. The name shortens with an ellipsis instead.
Dragging a pane divider keeps the third pane on screen
Widening the middle pane far enough used to push the right pane past the window edge, taking the map controls with it, and the layout was remembered. It now stops at the point where all three panes still fit.
Deletes always ask when atlas cannot tell what else would go
If the check for dependent elements failed, a delete could proceed silently and still cascade. It now confirms and says the check did not complete.
A failed world open no longer removes the world from your list
Any error naming a missing file was read as the whole folder being gone, which dropped the world and its saved access. Atlas now checks the folder itself before removing anything.
The sync indicator no longer sticks on Saving
A disk error during a sync round could leave the indicator reading Saving for the rest of the session, which also blocked the refresh button. It returns to idle now.
Lighter first load
The OnlyWorlds mark shipped at 4748 pixels square to draw a 15 pixel icon, and the social card image was cached for offline use though the app never asks for it. Together that is about half a megabyte off a first visit.
Atlas works in a narrow window
The three panes needed about 700 pixels of width, and below that the side panes went off screen with no way to reach them. On a narrow window or a phone they now become drawers you open from the top bar, and the middle pane keeps the whole width.
The guided tour is readable on a phone
On a narrow screen the tour panel could not grow to fit its own text, so the sentence and the step notes printed on top of each other. The panel now sizes to its content and scrolls.
Clearer wording about which browsers can open folders
The landing told phone visitors on Chrome that they needed Chrome. It now names the real requirement, a desktop Chromium browser, and offers the tour and an example page to everyone else.
Friday 24 July
11 changes
Site 2, Atlas 8, History 1
Site2 changes
Atlas 1.0
Atlas launches as the local-first worldbuilding studio.
MCP server in the official registry
The OnlyWorlds MCP server is now listed in the official MCP registry.
Atlas8 changes
Atlas is live
A local-first OnlyWorlds editor. Your world is a folder of files on your own disk, yours to keep, and syncing with onlyworlds.com is optional.
Maps, zones, and pins
Give a map an image background, draw zones over it, and drop your elements as pins.
A writing room
Write prose with your world’s elements one keystroke away, linked as you go.
Charts
See your world arranged in time, on the calendar your world keeps.
Shareable pages
Build a page from your world’s elements and publish it for anyone to read.
Optional sync
Keep working locally and push to onlyworlds.com when you want. Your folder stays the source of truth.
A guided tour
A walkthrough that builds a tiny world one sentence at a time, so a first look teaches the whole shape of the tool.
Light and dark
A full daylight theme across the whole app. Pick it in Settings, General, and atlas remembers your choice.
24 JulFeedback page
A native form on the site mirrored to a public GitHub tracker.
Thursday 23 July
3 changes
TypeScript SDK 2, History 1
TypeScript SDK2 changes
4.0.0
v2-native only. See docs/migrating-3-to-4.md. 3.x stays published forever for pinned consumers.
3.1.0
Canonical element colour palette (src/v2/palette.ts, exported from root): ELEMENT_FAMILIES (type → family), FAMILY_COLORS (family → {light, dark} hex), familyOf(type), elementColor(type, mode), FAMILY_ORDER, type ElementFamily. Four semantic families (agents / world / abstract /…
23 JulThe Manifest
The minds get a shared world of their own, with in-world mail.
18 Jul@onlyworlds/sdk 3.0.0
v2-native client (OwV2Client) absorbed from an earlier v2 client (ow-v2-client v0.9.0), wire-corrected against live staging fixtures (S22). Generated element types from the canonical keel schema YAML (src/v2/types.generated.ts), validated against all 1,086 live W11 elements. v1…
Friday 17 July
3 changes
Site 1, Obsidian plugin 1, History 1
Obsidian plugin 3.0.0
The frontmatter era: elements as linked notes with typed frontmatter.
3.0.0
What's New in 3.0.0
17 JulConverters
Foundry VTT and Azgaar converters go public on GitHub; six more lanes proven against real exports the next day.
Monday 13 July
2 changes
Obsidian plugin 1, AI toolkit 1
2.3.0 - OnlyWorlds v2 API + Delete Element
Every sync path now speaks the OnlyWorlds v2 API. No note-format changes -- your vault works exactly as before, but sync is faster, safer, and more honest.
v2.1.0 — the ecosystem release
The ecosystem release.
Sunday 12 July
5 changes
Obsidian plugin 3, History 2
Obsidian plugin3 changes
2 patch updates, 2.2.1 to 2.2.2
2.2.2, 2.2.1
2.2.0
Download World returns (works with ow_ keys and classic keys), Save Element creates new elements, Upload World (renamed from Export) shows real error messages, Rename World syncs to onlyworlds.com, and map/pin/marker notes now download correctly. Full round trip…
History2 changes
12 JulMCP server
A hosted read-write MCP server at onlyworlds.com/mcp with 11 schema-generated tools. A full rebuild of the 2025 bridge.
12 JulDownload a whole world
A world's page offers the whole world as one JSON file, to download or copy.
11 Jul2.1.0
Retires the legacy Import World command, whose modal only accepted 10-digit numeric API keys. OnlyWorlds is moving to prefixed keys (ow_...) for newly minted keys — existing 10-digit keys keep working everywhere. World import/sync lives in the plugin settings (link world +…
6 Julonlyworlds.com v2 (keel)
The platform rebuilt from an empty repo and cut over in six days, the old site then switched off for good.
May 2026, 2 changes
Monday 11 May
2 changesObsidian plugin2 changes
2.0.1
Mobile support.
2.0.0
OnlyWorlds Builder 2.0: rebuilt on the OnlyWorlds SDK with auto-sync, native settings, and PIN handling. See README for details.
April 2026, 1 change
12 AprAtlas
The integrated OnlyWorlds workspace: a folder is a world. Built with Temper, launched 2026-07-24, with one-click public showcase pages at show.onlyworlds.com.
March 2026, 2 changes
15 MarDCC Viewer
A terminal-styled explorer for a parsed Dungeon Crawler Carl world at dcc.onlyworlds.com.
1 MarThe promo video
Written with Susie, on YouTube. Inlaid on the page.
February 2026, 5 changes
14 FebLittle Lens
A grid view of a world's elements with clickable connection chips.
13 FebWorkshop tool
A hosted, phased workshop room for building worlds together. One live run, February 2026.
3 FebToolkit
The OnlyWorlds Claude Code plugin: parse, model, link and manage worlds from the terminal.
1 FebCouncil
Schema governance: motions, votes and precedents at council.onlyworlds.com.
Sometime in February
1 change
c. FebThe podcast
A 30-minute OnlyWorlds episode. Coming back at onlyworlds.com/podcast.
December 2025, 2 changes
10 DecZoner
A tool for drawing zones on a map, moved out of the Forge pipeline into its own repo.
c. DecEasy Mobile
A mobile-first web app for quick element edits on the go.
November 2025, 1 change
28 NovEcosystem Explorer
A map of the OnlyWorlds ecosystem: its projects and how they link, in the browser, with a 2D mobile companion.
October 2025, 3 changes
18 OctPin Board
A board for placing pins on a world's maps, with maps nested inside maps, built in one session.
12 OctZone Marker
A phone-first tool for marking and colouring zones on a map, with sync to OnlyWorlds.
2 OctMCP bridge
The first Model Context Protocol server for OnlyWorlds, a local bridge against the v1 API. Replaced by the hosted server in 2026.
September 2025, 2 changes
6 SepTactical Tangle
An ancient-Greek hoplite tactics game on OnlyWorlds Characters. A 2019 idea, built in 2025, live at tangle.onlyworlds.com.
5 Seponlyworlds.com, the React front end
The v1 site gets a new front end in React and TypeScript: one of the rebuilds before keel.
August 2025, 2 changes
21 AugTypeScript SDK
@onlyworlds/sdk on npm: a typed client and generated constants for the API.
8 AugBase Tool
A reusable auth and CRUD scaffold, built as the template for every OnlyWorlds tool after it.
July 2025, 2 changes
10 JulWrite Tool
An early OnlyWorlds writing tool, Astro and React.
9 JulOnlyWorlds schema & website refactor
This update aligns the obsidian plugin with the OnlyWorlds 00.30.00 schema changes and new website and API infrastructure.
May 2025, 1 change
Sometime in May
1 change
c. MayText tool
A parse-and-feedback text tool on the v1 site with live API calls, built with Cursor a while after the map tool. Gone with v1.
April 2025, 1 change
Sometime in April
1 change
c. AprMap tool
A browser map tool on the v1 site, the first thing built with Cursor. Gone with v1.
November 2024, 1 change
10 Novonlyworlds.com v1
Titus rebuilds the site himself: Django on PythonAnywhere with an OpenAPI v1 API.
October 2024, 1 change
8 Oct1.0.2
Fixed bundled files bug: README, Template and Handlebar files are now imported directly from GitHub Added new setting: default new element category
August 2024, 2 changes
12 AugObsidian plugin
OnlyWorlds Builder for Obsidian: worlds as markdown notes, synced to the site. Built with ChatGPT.
11 AugObsidian OnlyWorlds Builder Release
Release for an Obsidian plugin that supports world building and organization, and integration with a particular world building framework (OnlyWorlds)
July 2024, 1 change
21 JulDocumentation site
The standing docs for the standard and its tools.
February 2024, 3 changes
18 FebThe OnlyWorlds standard
The schema goes public on GitHub: 22 element types defined in YAML.
Tuesday 13 February
2 changesHistory2 changes