Runic
PROCESS

Ten commands, one node per line

Plain lines are steps. A dot starts a command. Two spaces of indent carry the structure, and the flowchart redraws from the text on every keystroke.

Try it free →Read the docs

What a line becomes

A line with no leading dot is a step: a white card wired to the card above it. Runic picks the icon from the words — press, click or submit gives a pointer; enter, type or fill an input glyph; mail, send or notify an envelope; verify, confirm or approve a check. Click the icon to choose another. Blank lines are ignored and a Start pill heads every flow.

A line that starts with a dot must be one of ten commands: .if, .then, .end, .go, .do, .input, .wait, .back, .note and .fail. Any other dot-word turns red and is skipped. Type a dot at the start of a line and the menu lists all ten with a one-line description.

Decisions are indentation

.if asks the question. Each .then is one answer, indented two spaces under the .if; that branch's steps go two more. Any line directly under an .if before its first .then is an error. Press Enter at the end of an .if line that has no .then under it yet and Runic scaffolds .then Yes and .then No with the caret inside the first branch.

The .then label becomes the chip on the branch arrow: Yes or true is green, No or false is red, anything else is violet. An empty branch shows a dashed 'Add a step…' slot; an empty question shows 'Type a condition…' in italics. .end at the .if's own indent closes it and the branches merge into whatever comes next. An .end deeper inside a branch draws an End pill on that path only; at the top level it ends the whole flow.

Jumps, calls, inputs, waits, failures

.go names another process and stops this path — a 'Go to' card you click to open it. .do calls another process and continues on the next line — a 'Do' card, also clickable. On both, the menu lists your other process names as you type. .input marks where data enters: an 'Input' card with a small field drawn on it. .wait is a pause for time or an event; its card may stay blank. .fail records a failure outcome as a 'Fail' card and the path continues — the lines under it are the recovery. The audit flags lines after a .go or .end on the same path as unreachable.

Captions, return arrows, notes

End a line with a colon and a caption to label its outgoing arrow: 'Customer pays: payment confirmed'. The colon needs a space on at least one side, so https://runicflow.ai and 14:30 stay ordinary text. Captions work on plain steps, .input, .wait, .fail and .do and ride the arrow into whatever box comes next. On an .if line a caption is an error — branch arrows are labeled by .then.

.back names any other step by a few words of its text and draws a dashed arrow from the box above it to the first step or .input containing those words, ignoring case — above for a retry loop, below for a skip ahead to a terminal state. No card is drawn and the flow continues, so several .back lines stack several arrows off one box. ': caption' labels the return arrow. While the words match nothing, a dashed pill beside the box shows what you have typed so far — 'loop back to…' when it is still empty. .note pins a comment icon beside the previous step; consecutive notes collapse into one icon with a count.

Errors and edges

A line the parser cannot place gets a pink background and the save chip reads 'Check line N' until you fix it; the rest of the diagram still renders. .back only targets plain steps and .input lines, never decisions, .do, .wait or .fail cards, and a .back with no box above it draws a 'Loop back' card that ends its path. One level of indent is two spaces; Tab inserts them and Shift+Tab removes them, across a whole selection at once. The one exception: while an AI ghost suggestion is showing, Tab accepts the suggestion instead.

How to use it

  1. Type a step
    Click + next to Processes in the sidebar (its label is 'New process'). The new process is named 'Untitled N' and starts empty. Type a line such as 'User lands on the login page' and a card appears in the flow pane at once.
  2. Add a decision
    On a new line type a dot, pick .if from the menu with Enter or Tab, and write the question — Runic has already inserted .then Yes and .then No under it, and the caret sits on the .if line. If you typed the .if line by hand instead, press Enter at its end for the same scaffold, with the caret inside the first branch.
  3. Fill the branches
    Type the steps of each branch. Enter after a .then or .if line indents two more spaces for you; Tab and Shift+Tab move the current line, or the whole selection, one level.
  4. Close and continue
    Type .end at the .if's own indent to merge the branches, then keep writing steps underneath. Picking .end from the menu inserts the line plus a fresh line below it.
  5. Link other processes
    Type .go or .do and a few letters of a process name, then choose it from the list. Click the resulting 'Go to' or 'Do' card in the flow to open that process.
  6. Caption an arrow, add a return
    Append ': approved' to a step to label its arrow. Type .back and a few words of the target step — the menu lists the document's steps with their line numbers and whether they sit above or below — and a dashed arrow appears once the words match.

Commands & shortcuts

plain texta step card; the icon is picked from the words
.if questiona Decision card; needs .then branches under it
.then labelone branch, indented two spaces; Yes green, No red, others violet
.endat the .if's indent: close it and merge; deeper or at top level: an End pill
.go Process'Go to' card — ends this path; click to open
.do Process'Do' card — continues on the next line; click to open
.input text'Input' card — data enters here
.wait text'Wait' card — time, approval or an event
.fail text'Fail' card — an outcome; the path continues
.back step words: captiondashed arrow from the box above to the matching step
.note textcomment icon pinned beside the previous step
step: captionlabels the outgoing arrow; the colon needs a space beside it
. at line startopens the command menu — ↑ ↓ move, Enter or Tab inserts, Esc closes
Enter after .ifscaffolds .then Yes and .then No when no .then follows yet
Tab / Shift+Tabindent or outdent by two spaces, whole selection included

Tips

  • Put the question in the .if and the answers in the .then labels — a menu with five options is one .if with five .then lines, not five decisions.
  • Use .do for anything you will reuse (verification, payment) and .go only when this flow really ends there.
  • A state machine is steps with captions plus .back lines: 'created: request shipment', 'shipping', 'delivered', then '.back created: cancel order'.
  • Leave a .wait or .input blank while you think; the card renders with only its type label until you fill it.
  • If the chip says 'Check line N', look for any line directly under an .if before its first .then, a caption on an .if line, a .then with no .if above it, or a dot-word that is not a command.

Questions

Does a decision have to be Yes and No?

No. Any label works and any number of branches — the scaffold offers Yes and No because they are the common case. Yes/true and No/false get green and red chips; every other label is violet. A decision with a single branch still renders, but the audit warns about it.

Can I put a caption on a .go line?

No. Everything after .go is the process name. Caption the step before it instead — its caption rides the arrow into the 'Go to' card.

What does .back match?

The first plain step or .input line anywhere in the document whose text contains your words, ignoring case. It can be above or below the .back line. Decisions, .do, .wait and .fail cards cannot be targets.

Where is the full reference?

The Commands section of the docs lists every command with a tested example, and the MCP tool get_syntax_guide returns the same rules as a compact legend for AI clients.