File format
The .cora package
A Cora project is saved as a .cora file. It is not a binary file — it is a macOS file package (a folder that Finder shows as a single file). You can right-click it in Finder and choose Show Package Contents to see what’s inside.
Everything is either plain text (.txt) or JSON (.json). There are no proprietary formats, no compression, and no encryption.
Package structure
MyNovel.cora/
├── meta.json
├── characters.json
├── places.json
└── parts/
└── {part-uuid}/
├── meta.json
└── chapters/
└── {chapter-uuid}/
├── meta.json
├── scenes/
│ └── {scene-uuid}.txt
├── drafts/
│ └── {draft-uuid}.txt
└── notes/
└── {note-uuid}.txt
Top-level files
meta.json
Stores the project title, format version, and the ordered list of Part UUIDs:
{
"version": 1,
"title": "My Novel",
"partsOrder": ["uuid-1", "uuid-2"]
}
characters.json
An array of character records used across the project’s scene metadata.
places.json
An array of place records used across the project’s scene metadata.
Part folder
Each Part is a folder named by its UUID under parts/.
Its meta.json stores the part title and the ordered list of Chapter UUIDs.
Chapter folder
Each Chapter is a folder named by its UUID under its Part’s chapters/ directory.
Its meta.json stores the chapter title and arrays for scenes, drafts, and notes — including scene metadata (title, synopsis, character IDs, place IDs):
{
"title": "Chapter One",
"scenes": [
{
"id": "uuid",
"title": "The station",
"desc": "Anna arrives at the station in the rain.",
"characterIDs": ["char-uuid"],
"placeIDs": ["place-uuid"]
}
],
"drafts": [ ... ],
"notes": [ ... ]
}
Text files
Scene, draft, and note text are each stored in their own .txt file, named by UUID. The body is plain UTF-8 prose.
When a passage uses bold, italic, or underline, Cora appends a small style footer after the body:
She walked into the rain.
<!--cora-styles:{"v":1,"runs":[{"o":4,"l":6,"b":true,"i":false,"u":false}]}-->
Offsets are UTF-16 positions into the plain body. Files with no formatting stay as ordinary plain text — open them in any editor. Search, word counts, and TXT export always use the plain body and ignore the footer.
Why this format
- Plain text — your writing is never locked in a proprietary format
- Readable without Cora — open any
.txtfile in any text editor - iCloud-friendly — separate files for each piece of content means iCloud only syncs the file that changed, not the entire novel
- Version-control friendly — the package can be tracked with Git; each scene is a diff-able text file
Backups
Because .cora is a regular file package, it works with all standard macOS backup methods: Time Machine, iCloud Drive version history, and any cloud sync service that supports files.
Cora also keeps up to 20 recent, local-only recoverable versions while you work. Choose File → Browse Recoverable Versions… to restore one. These copies are a short-term safety net, not a replacement for Time Machine or another independent backup.