Skip to content

Ashlr MD v0.4.0

Latest

Choose a tag to compare

@masonwyatt23 masonwyatt23 released this 06 Jun 06:12
1c2afde

Ashlr MD v0.4.0 — agent review loop, full MCP server, Obsidian vault fidelity, and a read-only Canvas viewer. See the highlights below.

⚠️ Unsigned build. This release is not Apple-notarized (no Developer ID configured yet), so macOS Gatekeeper will quarantine it. After downloading the .dmg, either right-click the app → Open the first time, or run:

xattr -dr com.apple.quarantine "/Applications/Ashlr MD.app"

Windows SmartScreen may likewise warn ("More info → Run anyway").

🖥️ macOS: Apple Silicon (aarch64) only for now — the Intel (x86_64) build is pending a GitHub runner and will be added shortly.


Agent integration & human review

  • One-click connect for your coding agent — wire Ashlr MD into Claude
    Code
    , Cursor, or Codex from Preferences → AI agents (MCP) without
    touching a terminal. Each button runs the right setup (claude mcp add,
    merges ~/.cursor/mcp.json, or codex mcp add) and is enabled only for the
    tools actually detected on your machine; for anything else, copy the exact
    command.
  • Auto-open everything your agent writes — install the Claude Code
    PostToolUse hook (mdopen --hook) and every Markdown file Claude writes or
    edits pops into Ashlr MD for review. The hook is silent and always succeeds,
    so it never disrupts your agent's tool flow.
  • Stop-and-ask human review loop — a new blocking request_review MCP
    tool lets an agent surface a plan, diff, or finished doc and wait for your
    sign-off
    . You Approve, Request changes, or Dismiss (with
    comments) in the in-app review panel, and the verdict flows straight back to
    the agent so it knows whether to proceed. Pairs naturally with
    present_document for a full-screen read before you decide.

MCP server expansion

  • A real MCP server, not just a launchermdopener-mcp now negotiates the
    protocol version (2024-11-05 / 2025-03-26 / 2025-06-18), and exposes
    resources (resources/list + resources/read, scoped to your vault and
    recents so it can't read arbitrary files), prompts (summarize,
    review_plan, improve_writing, each embedding the live document), and a
    full tool set.
  • New tools for agent-driven editingedit_document (exact, unique
    find/replace that refuses ambiguous or missing matches), replace_document
    (whole-document swap), search_vault (full-text search across your watched
    folder + recents), and present_document (open + switch to distraction-free
    full-screen reading).
  • Token-authenticated loopback IPC — the server talks to the app over a
    127.0.0.1 HTTP channel guarded by a per-session 32-byte token; every
    endpoint but a data-free health probe requires it, compared in constant time.

Obsidian compatibility

  • Reads your Obsidian vault natively — point Ashlr MD at any note and its
    wikilinks, embeds, highlights, comments, and .canvas files render the way
    Obsidian's Reading View shows them. No plugins, no export step.
  • Vault-aware link resolution — Ashlr MD auto-detects your vault root by
    walking up to the nearest .obsidian/ folder (or use a Settings → Vault
    override), then resolves [[wikilinks]] vault-wide instead of only
    relative to the current file — fixing links that previously broke when notes
    lived in other folders. When several notes share a name, it picks the
    closest match deterministically, so a link always resolves the same way.
  • Full wikilink & transclusion grammar[[note#heading]] and
    [[#^block]] anchors, partial transclusion of a single heading section
    (![[note#heading]]) or block (![[note#^block]]), and image embeds with
    sizing (![[image.png|300]], ![[image.png|300x200]]). Embedded images are
    read through the Rust core into an inline data: URL (so the webview never
    needs broad filesystem access), capped at 25 MiB each.
  • Highlights & comments==highlights== render as <mark>, and inline
    %%comments%% are hidden in the reading view, matching Obsidian. Markers
    inside code are left as literal text.
  • Round-trip & ask-your-vaultOpen in Obsidian hands the current note
    back to Obsidian on that exact file (obsidian://), and library chat can be
    grounded across your whole vault with source citations.
  • A respectful guest — saving is refused if it would land inside an
    .obsidian/ config folder; the guard checks the path textually and resolves
    symlinks, so your settings, themes, and plugins are never touched.

Canvas

  • Read-only JSON Canvas viewer — open .canvas files and pan (drag),
    zoom (scroll), and Fit to frame the board. text, file (Markdown
    card or inline image), link, and group nodes all render, with edges drawn
    as labelled, arrowed connectors using Obsidian's color presets. Read-only:
    positions and the canvas file are never written back.

Security & docs

  • Rewritten agent guide and new Obsidian guidedocs/AGENTS.md documents
    every tool, resource, prompt, the review loop, the auto-open hook, and the IPC
    trust model; docs/OBSIDIAN.md covers the full compatibility surface and its
    limits.
  • Documented trust model + cross-stack hardening — the local-only,
    token-authenticated IPC design is spelled out, the resources/read channel is
    scoped to advertised files, and a cross-stack security audit's fixes ship in
    this release.