Skip to content

features · v1.0.0

Every character does exactly one thing.

Twenty-three prefix characters, two inline notations for note links and embeds, and a stack of small quality-of-life features. That is Mudlark.

01 / basics

The eight basics.

  • #
    Heading
    section
    Creates a section heading. Everything below it groups under that heading on the right.
    # Project NotesProject Notes
  • +
    Task
    todo item
    Adds an unchecked task. Tasks float to the top of their section on the right.
    + Buy groceries☐ Buy groceries
  • Done
    action
    Checks off a task by fuzzy-matching its name. Content after the space is the task name to match. Use _ to remove items of any other type.
    - buy gr☑ Buy groceries
  • !
    Highlight
    emphasis
    Marks a line as important. Rendered bold and prominent on the right.
    ! Demo is at 3pmDemo is at 3pm
  • ?
    Question
    open loop
    Flags a line as a question. Rendered in italics on the right so open questions stay visible.
    ? Should we move the deadline?Should we move the deadline?
  • "
    Quote
    block
    Wraps a line in a styled blockquote with a left border.
    " Simple things should be simple“Simple things should be simple”
  • *
    Bullet
    list item
    Creates a bullet point. Multiple bullets form a list under the nearest heading.
    * Bring the good coffee• Bring the good coffee
  • @
    Media
    media
    Embeds an image or video from a file path, URL, or dropped file.
    @ photo.jpg[image: photo.jpg]
02 / advanced

Fifteen more for advanced use.

  • %
    Numbered
    ordered list
    Creates a numbered list item. Auto-numbered on the right side.
    % First step1. First step
  • `
    Code
    syntax-highlighted
    A line of code. Add a language hint right after the prefix for syntax highlighting.
    `js console.log("hello")console.log("hello")
  • =
    Math
    inline eval
    Evaluates a math expression inline. Unit-aware arithmetic across lengths, weights, times, and temperatures. Variables and constants (pi, e) included.
    = 100 km to mi62.14 mi
  • :
    Timer
    countdown
    Starts a countdown timer. Notifies when done. Supports multi-phase timers (e.g. 5m work, 5m rest).
    : 25m25:00 ▶
  • ;
    Loop
    looping
    Starts a looping timer that restarts automatically when it finishes.
    ; 5m5:00 ↻
  • &
    Table
    row
    Creates a table row. Use | to separate columns. First row becomes the header.
    & Name | Role | StatusName | Role | Status
  • >
    Move
    relocate
    Re-parents an item to the current section by type and fuzzy match. Requires a type prefix. Add a pipe to send to a specific section (e.g. > + fix or > + fix | Home). Double the type prefix (> ++ name) to move a whole named block instead of one item.
    > + fix bug[moved: fix bug]
  • .
    Write-to
    write-to
    Creates an item of a target type under a destination heading. Requires a pipe destination (e.g. . + milk | Shopping).
    . + eggs | Shopping[added to Shopping]
  • _
    Remove
    Removes an item or section by type and fuzzy match (e.g. _ ! ship or _ # old). The inner type prefix needs its own trailing space. Double the inner prefix (_ ++ name) to remove a whole named block. That is the only way to target composite blocks like code, tables, or math.
    _ ? deadline[question removed]
  • /
    Comment
    private
    A private note that only appears on the left side. Never rendered on the right.
    / todo: revisit this later(hidden)
  • ~
    Rule
    separator
    Draws a horizontal rule. Completions and moves cannot cross it. Add a label to center text on the rule.
    ~ Chapter 2——— Chapter 2 ———
  • ,
    Find
    search
    Searches content above. Add | replacement to replace all matches. Add @ heading to scope to a section.
    , search | replace[3 replaced]
  • ^
    Footnote
    footnote
    Defines a footnote. Drop a bare ^ at the end of a word (no space) to attach a sentinel. On its own line, ^ text defines the footnote. Sentinels and definitions pair by source order.
    ^ The cat was orange.¹ The cat was orange.
  • \
    Escape
    literal
    Makes the rest of the line plain text. Bypasses all prefix parsing.
    \ + Not a task+ Not a task
  • $
    Metadata
    metadata chip
    Per-note metadata surfaced as a chip in the rendered pane. Use key=value rows like $ tags=trip, $ source=https://… or free-form notes like $ remember the shipping address.
    $ tags=lisbon, trip[tags: lisbon, trip]

capabilities

Twenty more capabilities.

  • Quick capture

    ⌥Space opens a capture bar from any app, ⌥⇧Space pre-fills it from the clipboard. You stay in your current app.

  • Dual-pane editor

    Write on the left, read the organized version on the right.

  • Note links

    [[Title]] links any note. Renames keep every reference in sync.

  • Inline embeds

    {{ }} drops images, video, math, code, and live timers inline.

  • Media galleries

    @@ blocks lay media out in justified rows, no cropping.

  • Live timers

    Countdowns and loops, ticking inside any sentence.

  • 20 themes

    Ten light, ten dark. Or build your own with the theme builder.

  • Export

    Send notes and tasks to 12+ destinations.

  • Automation

    Control Mudlark via mudlark:// and Apple Shortcuts.

  • Custom shortcuts

    Rebind every keystroke. Change the prefix characters.

  • Reader mode

    Toggle a rendered-only view of your note.

  • Named blocks

    Group lines into named blocks for easier organization.

  • Window pinning

    Pin above other windows to keep Mudlark visible.

  • Inline formatting

    *italic*, **bold**, and `code` inside any line.

  • Smart typography

    Auto-converts arrows, symbols, fractions, smart quotes.

  • Spell check

    Underlines as you type, right-click to correct. Code is excluded.

  • Custom callouts

    Define your own line type with prefix, icon, color, style.

  • Category order

    Reorder or hide item categories in the rendered pane.

  • Note pinning

    Pin notes to protect them from auto-cleanup.

  • Cheat sheet

    Full reference for every prefix and shortcut (⌃⌘/).