Skip to content

Releases: zvndev/markie

Markie 0.8.0

Choose a tag to compare

@zvndev zvndev released this 14 Sep 13:14

Added

  • A link to another document follows the reader. [the plan](plan.md) in a synced document opens the plan for anyone who may read it: in Markie, on the shared web page, and on a public page when the plan has a public link of its own. A reader who may not read it sees the link muted and, on a click, "This document isn't shared with you." Linking never shares or syncs the target; it points at whatever its owner already chose. In Markie a linked document you already have opens in place; one you do not lands once as a view-only copy.
  • Make the page wider when a table needs it. Next to zoom, the toolbar has Narrower and Wider, and the View menu has Wider Page (Option Command ]) and Narrower Page (Option Command [). Five widths from the default to the full window, remembered per document like font and zoom.

Fixed

  • PDF export no longer cuts content off or shrinks the page. A wide table, a long link, or a long line of code used to run off the paper, or make Chromium scale the whole document down to tiny text. Long text now wraps, code wraps, a table too wide for the page is scaled to fit on its own, a long table breaks between rows with its header repeated, and a tall code block no longer leaves the page before it empty.

Downloads: macOS and Windows builds are on the public release feed. Open an earlier Markie and use Check for Updates.

Markie 0.7.0

Choose a tag to compare

@zvndev zvndev released this 14 Sep 01:09

Added

  • Pictures, video and audio travel with a synced document. A file the document embeds is uploaded alongside it and shown to exactly the people who can read the document: in Markie on another machine, on the shared web page, and through a public link while that link stands. Revoke the share or the link and the media goes with it. Files over 100 MB stay local and the Cloud page says which.
  • Markie repairs sync on its own. At launch and every ten minutes it checks every document you told it to sync against the cloud and pushes anything that never landed or fell behind, media included. It never pulls over an edit.

Downloads: macOS and Windows builds are on the public release feed. Open an earlier Markie and use Check for Updates.

Markie 0.6.0

Choose a tag to compare

@zvndev zvndev released this 08 Sep 02:51

Downloads: https://markiedocs.com/download (macOS Apple silicon and Intel, Windows). Installed apps update themselves.

Added

  • A Cloud page, with everything that is yours and everything shared with
    you in one place.
    The left rail has a new Cloud entry. It lists what you
    have synced from this device, what is in your cloud from other devices,
    what you have shared, and what others have shared with you, each in its own
    section, each section present even when it is empty so the absence means
    something. Ownership is never guessed: a document you were given shows as
    theirs even when the server cannot be reached. The Library keeps only the
    files on this device.
  • Browse is one tree, starting where the folders start. The old All Files
    tab is gone. The tree opens at the first level with more than one thing in
    it, nested folders hang off a thin guide line rather than a stair of
    indents, and every file shows when it was last changed, so you can see what
    moved and sort by it. What you opened stays open next time.
  • Browse and install skills from the registries agents actually use. The
    Skills panel now has two tabs. Installed shows every skill and agent file on
    this machine, grouped by the tool that owns it: Claude, Codex, Cursor,
    Gemini and the shared agents folder. Discover lists the skills in
    anthropics/skills and any GitHub repository you add by name, searches
    skills.sh for more as you type, renders a skill's SKILL.md before you take
    it, and installs it into whichever tool's folder you choose. A lock file in
    the same format as the Vercel skills CLI records what came from where, so
    either tool can update what the other installed. Discover talks to GitHub
    and to skills.sh; Installed never leaves this machine.
    A Claude or Codex home moved with CLAUDE_CONFIG_DIR or CODEX_HOME is scanned
    and installed to like the default one.
  • Very large files open without taking the app with them. A markdown file
    over 1 MB opens in Source view, which handles any size, with a quiet strip
    saying why rich editing is off for it; the mode you were in comes back with
    the next ordinary document. A file over 100 MB is refused with a message
    instead of an open that never finishes. Before, a 4 MB file stalled the
    whole window for close to a minute. Below the line, the check that decides
    whether rich editing can be trusted now runs in idle slices between your
    keystrokes rather than in one piece, so a large-ish document no longer
    freezes while "preparing".
  • A document you sync on one machine lands on your others by itself.
    Sign in on the laptop, and everything you synced from the desktop arrives
    under Documents/Markie/Cloud as real files, registered as synced and listed
    in the Library beside everything else on that machine. Before, it was a row
    under "In your cloud" with a button to click and a place to choose, every
    time. Documents shared with you are not landed: they open into Downloads
    when you ask, as before. A file you delete or pause stays gone.

Changed

  • Markie launches faster and takes less space. The renderer is built with
    Vite instead of Next.js, which removed a whole framework from the app and
    from every launch (launch 647 ms to 514 ms, idle memory 526 MB to 488 MB, measured on a
    loaded machine).
    The source editor and the live-collaboration stack are loaded the first
    time they are needed rather than at launch, and so is the export pipeline.
    The installed app is 230 MB instead of 287 MB on Apple silicon, and the
    download about an eighth smaller:
    the C sources the native modules are compiled from no longer ship, and
    only the English locale pack does. Markie is English-only; the effect of
    that last change is that the handful of menu strings the browser engine
    owns rather than Markie (Look Up, Search with…, the spell-check labels)
    read in English on a non-English system.

Fixed

  • Restoring a snapshot or a recovered draft of a large document keeps it in
    Source view
    , and a file that grows past the line on disk is re-read as a
    large one instead of being fed to the rich editor.
  • A cloud copy larger than Markie opens is refused, not written. Pulling
    an update or taking the cloud side of a conflict used to write the cloud
    copy to disk whatever its size, leaving a file Markie could not open under a
    buffer that would have saved over it. The pull now stops with a message
    and nothing changes.
  • Pasting a document past the line moves it to Source view. A paste that
    carries an open document past 1 MB no longer leaves rich editing on offer;
    trimming it back below the line gives rich editing back.
  • A document too large for the crash journal still gets one recovery
    write
    when the save on closing it did not land.
  • Find and replace waits for the match list to catch up with what you
    typed, so a quick Replace All cannot act on the previous search.
  • Opening a document with thousands of held-aside blocks no longer stalls
    (restoring them took close to half a second per open in a 1 MB file; it is
    now a few milliseconds), Find indexes a large document once rather than
    on every keystroke, and the crash journal writes a big buffer every two
    seconds rather than four times a second.
  • A live session whose runtime cannot load no longer traps the document.
    The document opens on its own copy under a one-line note, saves go to the
    cloud the ordinary way, and the next shared document tries again.
  • A recovered draft that Markie cannot open stays on offer instead of
    disappearing the moment it is refused, and a restored snapshot of a large
    document is journalled before another document replaces it.
  • A CSV whose table outgrows the line opens in Source view whichever way
    it arrived (opened, reloaded, pulled, or taken from a conflict): the tier
    is measured on the table the pane holds, not on the bytes of the file.
  • Deleting a document from the cloud now erases it on the server at once.
    Before, the server kept the text of a deleted document, and every version
    you had ever pushed, indefinitely: hidden from the app, still stored. Delete
    now wipes the content, the history, and every share, invite, link and
    comment thread that pointed at it, and the database overwrites freed space
    as it goes instead of leaving it for a later sweep.

Markie 0.5.4

Choose a tag to compare

@zvndev zvndev released this 06 Sep 14:05

The Library keeps up on its own: a document synced from another machine appears without reopening the panel, a rename shows everywhere at once, and opening a synced document no longer pushes it behind your back. Pictures open in a lightbox and resize by their corner, a video link becomes a card, and exports keep your formatting.

Download Markie

Added

Double-click a picture to see it full size. It opens over the document,
as large as the window allows, and the left and right arrow keys walk every
picture in the document. Escape closes it and puts the keyboard back where it
was; a click on the picture itself toggles actual size, for the screenshot
you opened to read rather than admire. In a read-only document a single click
does the same. Clips are left to their own controls and full-screen button.

Drag a corner to resize a picture or a clip. Click one in the document and
handles appear on its corners; drag and it follows, shape kept. The width is
written to the file as <img src="shot.png" width="240">, the one form
every markdown renderer, GitHub included, draws at that size. A picture nobody
resized stays ![alt](shot.png) exactly as it was. Exports, PDFs and shared
pages honour the width.

A YouTube or Vimeo link alone on its line becomes a card. The thumbnail,
the title and a play button; the video itself loads only when you click, from
YouTube's cookie-free player, so a document with six videos in it does not
open six of them to be read. The file keeps the bare address and nothing
else, so it still opens anywhere as a link. Exports and shared pages show the
thumbnail, linked to the video. A link inside a sentence stays a link. Press
Enter after typing an address and the card appears there and then.

Agents writing for Markie are told what Markie draws. Connecting an agent
now hands it what Markie actually renders: how a picture, a clip or a
recording is written, how to size one, how to centre a line, what a video
address alone on a line turns into, where those files have to sit to display
at all, and which formatting comes back after a save. The failure it removes
had no symptom. An agent that saved a screenshot to a temp folder and linked
to it produced a report with a hole in it, and nothing anywhere said why.
There is a new check too, markie_check_md, which reads a finished document
back and names every picture, link and tag in it that will not show up where
you expect it.

Fixed

A document synced from another machine now shows up in the Library on
its own.
The Library only ever asked the server for the account's list
when it opened, so a file synced on the laptop never appeared on the desktop
until the panel was closed and reopened. The app already looked at the
server once a minute and whenever the window came back; that look now
refreshes the Library too, and runs with no document open. A cloud list that
fails to load (an expired sign-in, being offline) now says so beside the
local rows instead of looking like an empty cloud.

Opening a synced document no longer pushes it to the cloud on its own.
The rich pane took an update event the editor raises while applying the
document's role for an edit, so every document was autosaved and pushed the
moment it opened. The push carried the version this machine last saw, and
when another machine had moved the document on the row came back "conflict"
and the strip asked to review changes nobody had made. Only an update that
changed the document counts as an edit now. And when a real push is refused
for a stale version, the strip asks the server again straight away, so it
offers a review rather than a one-click Update over your own changes.

Renaming a file updates the Library, Browse and Projects straight away.
The row kept the old name until you went somewhere else and came back, and
the file's star, project pin and extracted metadata stayed behind at the old
path. A rename now moves all of them, and patches the markdown index instead
of waiting for the next five-minute walk of the disk.

Centring a paragraph or heading now reaches the file. It showed on screen
and was gone on the next open, with nothing to say so. An aligned block is
written as <p style="text-align: center;">…</p>, which every renderer
understands, and read back the same way.

Exports, PDFs and shared pages keep your formatting. A highlight, an
underline, a colour, a font, a centred heading, a resized picture: all of
these are written as the small inline HTML every markdown renderer accepts,
and until now the export renderer dropped every one of them, contents
included. It now renders them, and still refuses anything that could run or
frame another page: scripts, iframes, style blocks, event handlers and
javascript: links never reach an export or a shared page, however they are
written.

Words typed right after a picture no longer land on the picture's line
when that part of the document is rewritten.

Changed

Markie's home is markiedocs.com. Download links, shared links and the
manifest name it. Every old markie.zvndev.com link redirects there, so
nothing you have sent stops working.

Markie 0.5.3

Choose a tag to compare

@zvndev zvndev released this 03 Sep 05:45

Video, audio and GIFs play in the document. Drop a file onto a document to attach it. Hovering a link shows you what is on the other end.

Download Markie

Added

Video, audio and GIFs play in the document. Write ![](demo/clip.mp4), the same way you write a picture, and you get a player with controls where the image would have been. Same for a voice memo or a recording. Markdown has only one syntax for embedding a file, so this keeps your document a plain markdown document that opens anywhere: nothing Markie-only is written into it. Clips load only their first moments until you press play, so a document with five recordings in it opens as fast as one without, and you can drag the scrubber straight into the middle.

Drop a file onto a document to attach it. A screenshot, a clip, a PDF, a zip: drop it in and it is linked where it already lives on your disk, with no copy made and nothing moved. Pictures and clips appear in place, everything else becomes a link that opens the file. Drop something from beside the document and you get a short relative link, so the two travel together if you send them on; drop something from your Desktop and you get the full path, so the link still works. Dropping a markdown or text file still opens it, as before.

Hovering a link shows you what is on the other end. Rest the pointer on a link and Markie fetches the page's title, summary and picture, the way Slack does. Nothing is fetched when you open a document, only when you deliberately point at one link, so opening something somebody sent you does not quietly call out to every address in it. Click the card to open the page. It is on by default, and there is a switch in Settings, Advanced, because the site you point at can tell that somebody looked.

Fixed

Dropping a picture on Markie no longer fills the editor with gibberish. A PNG dropped onto the app was read as if it were text, and its bytes went straight into the document.

PDF exports keep pictures that live one folder up. A report whose logo sat in a shared assets/ folder printed with a hole where the logo should have been. Exporting to HTML already handled this; the PDF exporter now uses the same rule.

Sharing a document says what will not travel with it. Sharing sends the text, so a picture sitting beside the document on your disk is not something the other person can see. The share window now counts those files and tells you before you send the link, and points at Export, which folds pictures into the file itself.


macOS builds are signed, notarized and stapled, and install over 0.5.2 through Check for Updates. Windows is signed through Azure Trusted Signing and published to the same stable feed.

Markie 0.5.2

Choose a tag to compare

@zvndev zvndev released this 02 Sep 13:03

Added

  • Pictures that live next to your document just show up. ![](demo/shot.png)
    now means what it means in every other markdown tool: the file sitting beside
    the document. Markie could not display those at all before, so a report full
    of screenshots was a report full of empty space. A document can reach the
    folder it was opened from and anywhere inside your workspace, and nothing
    else: open a file somebody sent you and it cannot show you a picture from
    elsewhere on your disk, or carry one into a copy you send on.
  • Documents that carry their own pictures inside them open properly. A
    markdown file with its images inlined is how a report travels as a single
    file. Markie was throwing every one of those images away on the way into the
    editor, and stripping them again on the way out to HTML, PDF and a shared
    link. All three now keep them.
  • Links to files beside the document open them. [the spec](spec.pdf) used
    to do nothing at all, silently, which is indistinguishable from a broken app.
    It opens the file in whatever your Mac opens it with, and says why when it
    cannot.

Fixed

  • Dark PDFs fill the page. Every page came out as a dark rectangle floating
    in a white frame, with the frame reappearing between pages. The whole sheet is
    the document's colour now, on every page, and the margin holds on page two and
    after. Light exports are unchanged, and both keep a line from being stranded
    on its own at a page break.
  • Projects is a tab in the Library, not a page of its own. It used to be a
    full-width view behind an unlabelled icon in the left rail, which meant
    leaving your document to go and look at a list. It sits in the Library panel
    beside Recent now, with one search field over project names and file names
    together. Expand a project to see its files; the project holding whatever you
    are reading is already open. The tab that listed real folders on your disk is
    gone: the structure is Markie's own, over files that never move.
  • Exported HTML is readable on a screen. It ran the full width of the window
    before, which is wider than anyone finishes a line of.

Windows (signed)

Windows (signed) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Aug 21:45

Rolling signed Windows installer, replaced on every signed build. Signed by ZVN DEV LLC through Azure Artifact Signing, so it does not trip SmartScreen.

Markie 0.3.2

Choose a tag to compare

@zvndev zvndev released this 15 Aug 04:08

Added

Find and replace (⌘F, and ⌥⌘F to replace), in the Edit menu and the command palette.

⌘F used to do nothing at all in Rich, which is the mode Markie opens in: find existed, but only inside the Markdown Source editor, behind its own separate search box. There is now one bar, and it works in whichever pane you are reading.

  • ⏎ and ⇧⏎ step through the matches, ⌘G steps from anywhere, and the count tells you where you are.
  • Match case and whole word are both there, and the search text is taken literally, so looking for a.b or $5 (approx) finds exactly that.
  • Replace changes one match, and Replace All changes the rest, each in a single undo. Read-only shares can be searched but not rewritten.
  • Searching the Rich pane finds phrases that run through formatting. "quick brown" is found even when only "quick" is bold, which is one document to you and two pieces of text to the editor.
  • Each pane searches what it is actually showing: the heading marker # is real text in Source and is not in Rich.

Fixed

Open now starts in the folder you are already working in. Pressing Open while reading a document dropped you wherever a file dialog was last used, which was usually somewhere unrelated, so finding the file next to the one on screen meant navigating back every time. The picker now opens beside the current document.

Download

Apple Silicon · all downloads

Installed copies update themselves through Markie → Check for Updates.

Both macOS builds are signed, notarized, and stapled. The published artifacts were verified against the exact commit this tag points at.

Markie 0.3.1

Choose a tag to compare

@zvndev zvndev released this 11 Aug 14:38

Download for macOS: https://markie.zvndev.com/download

Already running Markie? Use Markie > Check for Updates.

Security

  • Sharing a document no longer makes it publicly readable. Inviting someone
    who did not have a Markie account created a public link for the document as a
    side effect, and that link kept working for anyone who had the URL even after
    you removed the person. Invites now carry a link addressed to one recipient.
    It opens one document, it is checked against that person's access every time
    it is used, and it stops working the moment you remove them. Public links are
    still available, but only when you deliberately create one.

Fixed

  • Share emails now contain something to click. Sharing with someone who
    already had an account sent them a note saying they were "in", with no link
    to the document and nothing to do but go and look for it. The email now has
    two buttons: read it on the web, or open it straight in Markie, where it
    arrives in the Library synced and live rather than as a detached copy.
  • Every share link that was emailed pointed at a page that did not exist.
    The website served nothing at the address the links used, so "Read it right
    now" answered with a 404. The link and the page agree now.

Added

  • Reveal in Finder (⌥⌘R), in the File menu and the command palette, opens
    the folder containing the document you are reading with the file selected, so
    you can drag it into another app. Called "Show in Explorer" on Windows and
    "Show in File Manager" on Linux.

Markie 0.3.0

Choose a tag to compare

@zvndev zvndev released this 11 Aug 05:29

Download for macOS: https://markie.zvndev.com/download

Already running Markie? Use Markie > Check for Updates.

Security

  • An AI agent writing through the MCP server can no longer be redirected out of
    your home folder by a symbolic link. A link pointing at a file that did not
    exist yet was treated as an ordinary new document, which allowed a write to
    any path, under any file extension, while reporting the harmless path back.
    Cloning an untrusted repository into your home folder was enough to set one up.
  • Signing in with Google now verifies that the sign-in came from your copy of
    Markie. The app mints a single-use code before opening your browser and only
    accepts the account that comes back carrying it, so a web page cannot hand
    Markie an account you did not ask for. Sign-in codes are good for ten minutes
    and cannot be reused.
  • Read-only shares are now read-only everywhere. Someone given view-only
    access could still type into a shared document, in either editing pane, with
    nothing on screen explaining that their edits would never reach you. The panes
    also disagreed with each other: the Source pane locked for everyone during a
    live session, including the people who were allowed to edit. Access is now
    resolved once, from the server, and every pane obeys it. Viewers see a strip
    saying who shared the document, with "Make a copy" to work on their own.
  • Removing someone from a shared document takes effect immediately. Their
    live connection is closed as soon as you revoke access. It used to be checked
    only when they first connected, so an open session kept working.

Added

  • Markie tells you when a document has changed somewhere else. If another
    device or another person has moved a document on, a line appears above it
    offering to bring the change down. When nothing of yours is at stake that is
    one click. When both copies changed, you get a choice that says what it costs
    first, in lines: "Pulling replaces 8 lines of yours and brings in 12 from the
    server." You can keep both, which saves your version beside the original under
    its own name and then takes theirs, or pull and overwrite. Keep both is the
    default, because it is the only one that cannot lose work.
  • Documents are checked for updates when you open one, when you come back to the
    window, and once a minute while you are looking at it. Nothing is checked while
    Markie is in the background.
  • A Retry backup button on any document whose last upload failed. That state
    was visible in your Library but there was no way to act on it.

Changed

  • The editing modes are now Rich, Source, and Split. The mode called
    "View" was a full editor, so the name was telling you the opposite of what it
    did. ⌘1, ⌘2, and ⌘3 are unchanged.
  • Markie takes up less than half the space it used to. The installed app is
    down from 590.7 MB to 285.7 MB, and the download from 209.2 MB to 123.0 MB.
    The app was shipping its entire build toolchain, which nothing at runtime ever
    loaded.
  • The MCP server now reports the shipped version during the handshake instead of
    a hardcoded one, and the Claude Code plugin manifest moves with each release.

Fixed

  • Share works from everywhere, and explains itself. It used to answer three
    different situations with three unrelated surfaces: signed out opened
    Settings, an unsynced file silently opened the Library, and a synced file
    opened the real dialog only if a background check happened to finish. When
    that check failed, Share stopped responding entirely until you restarted.
    There is now one "Share this document" dialog that says what is missing and
    offers the button that fixes it, including "Sync and share" in one step.
    Share… also stays in the command palette instead of disappearing exactly
    when you go looking for it.
  • The Recent list stops rearranging itself. Opening a file used to send it
    to the top, so every other row shifted the moment you clicked. The order now
    holds still while the panel is open, and files that appear while you are
    looking are added at the top. Recent also has a filter box.
  • Saving no longer overwrites changes made by something else. If a file
    changed on disk since you opened it, which happens constantly when an agent is
    working in the same folder, Markie now asks whether to reload it or overwrite
    it. It used to write straight over the newer file with no warning.
  • Opening a file no longer rewrites it. Markie used to re-serialize every
    document the moment it loaded, which quietly mangled YAML front matter, raw
    HTML, footnotes, and math, and marked the file as edited before you touched
    it. SKILL.md, CLAUDE.md, and AGENTS.md files were hit hardest. Files now
    open byte for byte as they are on disk.
  • Markie no longer claims a document is backed up when it is not. A failed
    upload left the Library still reporting "Synced", which also put "Take cloud"
    one click away from replacing your work with an older copy the server never
    accepted. Failed uploads are now marked, and taking the cloud copy is refused
    while local changes have not reached it.
  • Pressing ⌘/ with the cursor in the source editor no longer comments out the
    current line. It used to open the shortcuts dialog and silently wrap your
    text in <!-- -->, so edits happened without you noticing.
  • Pressing Escape while renaming a file no longer performs the rename it was
    meant to cancel.