--- title: Skriva version: 1.0.0 stage: beta for: iPhone requires: iOS 26.2 network: none ---
# Skriva
*A markdown editor that leaves your files where they are.*
Pick a folder in Files - iCloud Drive, Dropbox, On My iPhone - and Skriva edits the `.md` and `.txt` notes inside it, in place. Nothing is copied into the app. Nothing is uploaded. There is no account to make.
[Download for iOS](https://apps.apple.com/app/skriva) **Beta** · v1.0.0
iPhone · iOS 26.2 or later · no sign-in, no analytics
> **This page is the demo.** It is the home page written as one markdown file, with the markers left in - headings, emphasis, a table, a task list, a fenced code block, a wiki link, and this quote. Nothing here is a special case: it is a fair sample of what a single note in your own folder can hold, and of what Skriva has to render.
---
## Writing
### A toolbar that knows where the caret is
Heading, bold, italic, strikethrough, code, link, note link, to-do, bullets, numbers, quote, find, undo, redo. Buttons light up when the caret sits inside what they would toggle, and the heading button shows the level you are already at. Pressing bold on bold text unwraps it.
### Hardware keys, if you carry one
| Key | Does | | ----- | --------- | | ⌘B | Bold | | ⌘I | Italic | | ⌘K | Link | | ⇧⌘[ | Note link | | ⌘F | Find |
### Lists that carry themselves
Return continues a bullet, a number, a to-do or a quote. Numbers increment, to-dos start unticked, and Return on an empty marker clears it. Tap a checkbox on the box itself to tick it.
Every edit goes through the system text input rather than the storage underneath it, so undo, autocorrect and dictation keep working the way they do everywhere else.
---
## Links between notes
Type `[[` and a bar of matching note names appears above the toolbar. Tapping a [[link]] jumps to that note - and if no note by that name exists yet, it is created and opened. Linking ahead of yourself is the point.
---
## Today
A card at the top of the listing, headed with today's date. Tapping it opens today's note, making it the first time. It carries how today is going and what yesterday left unticked, because the weak point of a daily note is the gap between days.
A long press reaches yesterday and tomorrow. Where the notes live is a setting rather than an assumption, and moving that folder brings the dated notes along with it.
---
## Finding things again
- - Search matches filenames as you type, and full note text across the whole folder tree.
- - A row shows what you ask it to: the opening lines, tags, checklist progress, word count, date. Turn it all off for name and date alone.
- - Dates read as *Edited yesterday*, not as timestamps.
- - Pinned notes get their own section above the listing.
---
## Nothing leaves the device
- - [x] No network code anywhere - no analytics, no crash reporter, no dependency.
- - [x] No copy of your data. Skriva stores a bookmark to your folder and nothing else.
- - [x] That bookmark lives in the Keychain, device-only, so it never syncs and never lands in a backup.
- - [x] Every read and write is coordinated, so other apps and other devices see a consistent file.
- - [x] Encoding is checked, not guessed. An unreadable file is refused rather than mangled.
You do not have to take that on faith:
```bash $ grep -r "URLSession" skriva/ # no matches ```
---
## When it changes somewhere else
Your folder is a folder, so other things can reach it: the same note open on a Mac, a sync client catching up in the background, the Files app, a shortcut. Skriva watches the file rather than assuming it owns it. When the copy on disk stops matching the one on screen, one capsule appears over the text and says which of those happened.
Four of them take themselves away after four seconds:
- - **Updated from elsewhere**
`.reloaded`- The note changed on another device while you had nothing unsaved, so Skriva took the newer file and carried on. Nothing of yours was at stake, which is the only reason this one is allowed to be a notice. - - **Renamed to "Field notes" elsewhere**
`.movedHere(name)`- The file was renamed underneath the editor. The document follows its file rather than the path it was opened at, so nothing closed and nothing moved. - - **Unsaved changes recovered**
`.recovered`- A draft left behind by a crash or a force-quit was found and put back, then stood down to an ordinary unsaved edit. - - **Created "Field notes"**
`.created(name)`- The one here that is not another device. Tapping a link to a note that does not exist yet creates it, and the capsule is the only evidence the tap did anything.
Three of them stay until they are resolved:
- - **Changed elsewhere - tap to resolve**
`.conflicted`- Another device wrote to the file while you had unsaved edits of your own. Autosave stands down until you say which version wins, and keeping both versions is the default. - - **Deleted elsewhere - tap to resolve**
`.deletedElsewhere`- The file went out from under you. What you have written is still here, and saving it back creates the file again. - - **The file couldn't be saved**
`.failed(message)`- A folder gone read-only, a disk with nothing left on it, a permission that lapsed. It carries the actual error rather than a generic apology.
Autosave working is not news. A capsule that turns up for every save is a capsule you stop reading, and the one time it matters you will scroll straight past it.
---
## Not losing things
- - **Autosave** runs shortly after you stop typing, and every keystroke is journalled immediately - the point is surviving the gap between the two.
- - **Deleting moves to the trash**, so a mis-tap is recoverable from Recently Deleted in Files. Every delete is confirmed by name.
- - **Edit conflicts keep both** by default. When another device changes a note you have open, the other version is parked beside yours instead of overwriting it. The options that throw a version away are both marked as doing so.
- - **Drafts are hashed and protected**, so the app's own container never holds a readable index of what is in your folder.
---
## Get it
[Download for iOS](https://apps.apple.com/app/skriva) **Beta** · v1.0.0
[Changelog](https://x.com/skrivanotes)
Your folder stays your folder.