WrengleWrengle
Workspace

Workspace

Beta

Wrengle uses an IDE-shaped workspace for notes and meetings.

Window header and focus mode

The window header starts with the current vault menu and, when a note is open, shows its folder path as clickable segments. The right side provides Search, New tab (+), and Toggle focus mode. Note-specific actions appear only when a note is the active document, so a chart or another synthetic workspace tab does not inherit note commands.

Focus mode collapses both the left workspace rail and the right-side panels so the active editor can use the window. Leaving focus mode restores each panel that was open before you entered it and leaves previously collapsed panels collapsed.

File tree

The file tree shows the local vault structure. Use it to move between notes and folders, create files and folders, rename or move items, and soft-delete notes into the app-managed trash area.

The same New tab (+) menu appears in the window header, the Notes header, and every editor tab strip. It opens New note, New chart, Graph view, Workflows, and Plugin Builder. Notes and charts created from this shared menu use the configured default note folder; use a folder's context menu when you want to create and rename an item in that specific folder.

Editor

The editor is built for structured notes while preserving local file ownership. The content model is intentionally constrained so notes can round-trip through Markdown plus sidecar data safely. In a short note, click the blank canvas below the final block to focus the editor and place the cursor at the end of the note. When the note ends in a table or another block without a trailing text position, Wrengle creates an empty paragraph after it and places the cursor there.

Markdown paste compatibility

Markdown clipboard content is parsed as CommonMark with GitHub Flavored Markdown (GFM). Wrengle imports ATX and Setext headings, paragraphs, thematic breaks, block quotes, bullet and numbered lists, task lists, fenced and indented code, emphasis, strong text, strikethrough, inline code, safe links, and plain unaligned GFM tables into editable blocks. CommonMark's zero-to-three-space block indentation is supported, so headings and lists copied with two leading spaces remain structured. Simple loose lists and list items with continuation paragraphs also stay editable; continuation paragraphs remain ordered with any nested lists under their owning item. YAML or TOML frontmatter is preserved as inert source rather than mistaken for headings, dividers, or note metadata. Ordinary text/plain is parsed as Markdown only when the parsed document contains Markdown structure; ordinary prose remains ordinary prose. If a clipboard also supplies safe structured HTML, that richer representation takes precedence over a plain-text representation that would be entirely inert source.

The editor schema cannot represent every CommonMark or GFM distinction without losing information. Wrengle therefore preserves each unsupported top-level container as an inert, verbatim source block while continuing to import supported neighboring containers. Examples include raw HTML, footnotes and reference definitions, titled or unsupported links, forced line breaks, multi-paragraph quotes, ordered lists that start somewhere other than 1, list items containing unsupported block types, code-fence metadata, remote or inline images, and tables with alignment or inline formatting. These source blocks stay inert across save and reopen and are not rich-formatted in the editor. In the Markdown file, Wrengle normally surrounds each verbatim source span with invisible wrengle:raw HTML comments so malformed syntax and anchor-looking text cannot become active after an edit; the source between those comments is unchanged. Complete fenced or toggle containers already inside a matched Wrengle-managed report or workflow region retain their original container bytes instead. For a metadata-backed managed region, Wrengle first verifies that the complete body can be edited and serialized byte-for-byte; if not, it preserves that body as one inert source block. This keeps the backend body hash valid during unrelated note edits. Clipboard control characters are sanitized and Wrengle block anchors are intentionally removed before source preservation. Wrengle does not execute HTML or activate links in a source block; another Markdown renderer may interpret that source after the file leaves Wrengle, so review preserved HTML and links before publishing the note elsewhere.

Every non-empty paste into an editable note with remaining file capacity inserts a saveable result. Wrengle first imports supported Markdown, BlockNote or web HTML, and VS Code clipboard data as structured blocks. Common copy artifacts such as terminal-style nested numbering, blank lines inside tables, and obvious broken emphasis are normalized during import. Web and BlockNote HTML is reduced to an attribute-free set of text, list, table, and formatting elements before import; resource URLs, event handlers, styles, embedded content, and app-internal block metadata are discarded. Pasted managed-region metadata and hashes are never installed as authoritative note controls. When a clipboard selection consists exactly of report metadata, its visible report body, and the terminal report marker, Wrengle discards that control wrapper and imports the visible body as ordinary editable Markdown. Pasting a byte-matching selection at an empty insertion point inside the same single-raw-block degraded report replaces that raw body while retaining the note's existing report boundaries. A valid report-tail selection that does not match the degraded body is inserted normally without replacing existing content; malformed, partial, and full-region control wrappers remain inert. If a structured result still cannot be saved safely, Wrengle inserts its visible text as ordinary paragraphs instead.

Deeply nested or unusually syntax-dense Markdown that exceeds the structured parser's work limits is inserted in full as literal plain text, with a formatting-degraded notice, when it fits the note. File-only, image-only, opaque, inaccessible, whitespace-only, control-only, oversized, and unusually high-line-count clipboard payloads receive a visible plain-text placeholder, so a handled paste does not disappear silently while the note has capacity. File and image clipboard data is not uploaded by this path; use the media insertion controls to copy a local asset into the vault. When a file placeholder includes metadata, only the sanitized basename and MIME type are written into the note and sync like other note text; source directory paths are discarded. The aggregate clipboard representations are bounded, and Wrengle checks the prospective Markdown file (including retained frontmatter) and editor sidecar independently against the vault's 16 MiB per-file limit before committing the paste and again at the final save boundary. If a note is already too close to that limit to hold even the short fallback placeholder, Wrengle leaves it unchanged and reports the capacity error; shorten the note before pasting more.

Well-formed terminal tables that use light Unicode box-drawing borders (, , , , , , and related closing characters) are converted into editable tables; malformed layouts and other border families remain plain text. Generic pasted Markdown links become active links only for https:, http:, and mailto: destinations. Other destinations—including javascript:, data:, file:, relative paths, and action:—remain inert source. Pasted markers or block anchors are not treated as authority to activate an action: reference. Action references created by an explicit Wrengle integration can persist in an existing structured block, but they never launch an operating-system protocol handler and running an action remains an explicit, consented Wrengle operation. If pasted content includes Wrengle block anchors like ^block-id, Wrengle regenerates internal block IDs instead of reusing anchors from the source note. Only standalone images under vault-relative assets/images/ paths become image blocks; inline, remote, data, absolute, traversal, malformed, or non-round-trippable image syntax remains inert source and is never fetched by the paste importer. Notes are temporarily read-only while an AI edit preview is active because preview blocks are not persistable user content; accept or discard the preview before pasting or typing.

Open notes can be arranged in tabs and split editor panes. Tab actions include close variants, copying a path, revealing the file in the system file manager, and revealing it in the project panel.

Notes auto-save every 15 seconds by default. Change the interval or turn autosave off under Settings → General → Autosave. Autosave writes the current file without creating a version-history checkpoint; an explicit Cmd+S on macOS or Ctrl+S on Windows/Linux saves dirty notes and commits the version checkpoint.

Use Cmd+Z on macOS or Ctrl+Z on Windows/Linux while the editor is focused to undo note edits, and Cmd+Shift+Z or Cmd+Y on macOS or Ctrl+Shift+Z or Ctrl+Y on Windows/Linux to redo them. The desktop Edit menu routes Undo and Redo to the focused note editor when a note has focus. Use Cmd+A on macOS or Ctrl+A on Windows/Linux to select the full note contents.

Use Cmd+F on macOS or Ctrl+F on Windows/Linux to find literal text within the focused note; Enter moves to the next match, Shift+Enter moves to the previous match, and Escape closes the find bar. Expand the replace row from that bar, or press Cmd+Option+F on macOS / Ctrl+Alt+F on Windows and Linux, to replace the current match or all current matches. Search is case-insensitive and current-note-only; regular expressions, whole-word mode, and case-preserving replacement are not included. Replace All is one undo step, preserves formatting shared by the matched text, and syncs to another pane showing the same note. Replacement is unavailable while an AI edit preview is active, and unusually large match/replacement operations are refused so the editor remains responsive.

The slash menu and command surfaces include basic text blocks, tables, toggles, media, and semantic workflow blocks. Media insertions copy selected local files into vault-relative assets/images/, assets/files/, assets/audio/, or assets/video/ paths. Remote URLs, absolute paths, traversal paths, and malformed asset links are rejected by the persistence guards. Images serialize as Markdown image links; file, audio, and video assets serialize as Wrengle asset markers.

Semantic workflow blocks include callout, meeting section, transcript region, decision, task, citation, and action result. Their visible Markdown representation keeps stable fields such as kind or status, while additional metadata such as owner, due date, speaker, source, locator, action id, and references is stored as sidecar data.

Chart documents

Chart files are local vault documents for diagrams and flows. Create them from the workspace's file actions, then open them from the file tree, quick open, or recent files like other vault documents. They can be renamed, moved, duplicated, soft-deleted to trash, and revealed in the system file manager from the same local file-management surfaces used for notes. Rename and move actions update the vault document path; duplicate creates a separate local chart file; delete/trash removes the active document from normal workspace navigation.

Local chart files open in the desktop workspace as diagram documents on a theme-aware surface; the Neutral chart theme follows the app's light or dark theme. The editor provides a compact shape rail, canvas quick-add, connector editing, and inline object actions. Its toolbar includes Undo, Redo, and Arrange, with tidy, alignment, distribution, and z-order actions. A floating zoom pill shows the current percentage and provides zoom, 100% reset, and fit controls. Chart edits stay local to the vault and update live across split panes attached to the same chart file, including in-progress object moves while you drag on the canvas.

Right-click the canvas, a node, or an edge for the matching context menu. The page-tab menu can add and rename pages, move a page left or right, and delete a page. These controls operate on the current local chart document; they do not create a hosted collaboration space.

Wrengle keeps local recovery data for chart documents so recently unsaved or recovered edits can survive an app reload or ordinary crash. If recovery data and the saved chart projection no longer match safely, the workspace shows a repair-needed state instead of silently discarding local changes. Repair keeps the chart tied to the current local vault document when Wrengle can reconcile the recovery state. Reset clears the local recovery state for that chart and opens from the saved projection on disk.

When a chart canvas is focused, Wrengle reserves chart-local shortcuts for duplicate (Mod+D), copy/cut/paste (Mod+C/X/V), select all (Mod+A), delete (Delete or Backspace), zoom in (Mod++ or Mod+=), zoom out (Mod+-), fit view (Mod+0), undo (Mod+Z), redo (Mod+Shift+Z or Ctrl+Y), and arrow-key nudging. These shortcuts do not fire from node or edge label text fields. Chart undo and redo are also available from the chart toolbar when the focused chart runtime has matching history, and are disabled for read-only or recovery surfaces.

Chart editing is local to the desktop app in this release. Hosted collaboration, remote presence, grouping, layers, comments, and templates are not included. Browser editing and analytical spreadsheet charts are not included.

Command palette

The command palette is the fast path for opening files, triggering actions, searching the workspace, asking AI, rebuilding the search index, and moving through the workspace.

Typing a query prioritizes matching notes. Pressing Enter opens the top note result when notes are available, with Ask workspace below the note results and matching workspace, editor, and plugin actions after that. When no notes match but actions do, the matching actions appear before Ask workspace. If nothing matches, Ask workspace becomes the explicit fallback. Unrelated actions are hidden while a query is active.

With an empty query, the palette shows starred notes first, recent notes second, and a compact set of common commands.

Many of the same workspace actions can also be triggered by voice control where supported.

Open Workflows opens the singleton Workflows tab. The same surface is available as Workflows in any New tab (+) menu. Workflow drafts auto-save locally; Dry run uses the step-through debug path, while Run executes the current autonomous-safe draft end to end. Automate… adds a daily or specific-days trigger and pins a live workflow version for future scheduled runs. Later draft edits are not live until you explicitly update that version. Run now immediately shows the execution in progress and retains its terminal detail; scheduled runs move through queued and running state to a terminal summary. Queued can mean the run is waiting for the app's finite automation queue and bounded, shared heavy-work capacity. The detailed execution view lasts for the current app session; only a bounded, content-free latest-run summary persists, not durable history. Action, Terminal, and Coding agent steps remain human-gated. During an active or approval-waiting run, workflow identity and canvas-edit controls are disabled. Dismissal, pause, or deletion does not cancel work the app has already claimed; a queued or running execution can continue. See Workflows and automations for starters, activation, privacy, and scheduler limits.

Keyboard shortcuts

Wrengle uses Cmd on macOS and Ctrl on Windows/Linux for Mod shortcuts.

ActionmacOSWindows/Linux
Save all dirty notesCmd+SCtrl+S
Open command paletteCmd+KCtrl+K
Quick open filesCmd+PCtrl+P
Undo focused note editCmd+ZCtrl+Z
Redo focused note editCmd+Shift+Z or Cmd+YCtrl+Shift+Z or Ctrl+Y
Select all focused note textCmd+ACtrl+A
Find in focused noteCmd+FCtrl+F
Find and replace in focused noteCmd+Option+FCtrl+Alt+F
Search all notesCmd+Shift+FCtrl+Shift+F
Close current editor tabCmd+WCtrl+W
Next editor tabCmd+Shift+]Ctrl+Shift+]
Previous editor tabCmd+Shift+[Ctrl+Shift+[
Split editor rightCmd+BackslashCtrl+Backslash
Toggle left sidebarCmd+Shift+BCtrl+Shift+B
Toggle agent panelCmd+Shift+ACtrl+Shift+A
Open backlinksCmd+Shift+LCtrl+Shift+L
Toggle TerminalCtrl+BackquoteCtrl+Backquote
Toggle selected dictation/voice modeCmd+Shift+VCtrl+Shift+V
Hold for Quick DictationCmd+Shift+DCtrl+Shift+D

When the Terminal is focused, Cmd+F / Ctrl+F opens terminal search, and Cmd+Shift+] / Cmd+Shift+[ on macOS and Ctrl+Shift+] / Ctrl+Shift+[ on Windows/Linux switch Terminal tabs instead of editor tabs.

Meetings panel

Meeting workflows sit beside the editor so notes and transcript material can be reviewed together where supported. The meeting panel uses simplified recording controls with a context picker and opens the saved meeting note automatically after save.

Search, recent notes, and starred notes help move across local notes. The sections below cover how notes link to one another and how those connections are surfaced.

Workspace Search, History, and Backlinks open in a far-right utility panel. The utility panel and agent panel toggle independently, so closing either one leaves the other open and returns the freed space to the editor.

Notes link to each other with Markdown wikilinks: [[notes/project.md]], [[Project Title]], [[Project Title|label]], [[Project Title#Heading]], and [[Project Title#^block-id]]. Path-based links are the most stable form; title and simple frontmatter alias links resolve when they uniquely match one note. Resolution tries exact path, extensionless path, unique title, then unique alias.

Typing [[ opens an inline picker that suggests matching note titles and aliases as you type. Pick one to insert the link, or create a new note from the same menu when nothing matches.

Open the panel with Cmd+Shift+L on macOS or Ctrl+Shift+L on Windows/Linux. It centers the active note and groups every reference to and from it as incoming and outgoing links. Each reference shows the surrounding text so the context is visible, and selecting one jumps to that exact spot in the source note and briefly highlights it.

Links whose target can't be reached are flagged both inline in the editor and in an Issues list in the panel:

  • a missing note (no matching target),
  • an ambiguous target (the link matches more than one note), and
  • a missing anchor (a link to a heading or block that doesn't exist in an otherwise-resolved note).

From the Issues list you can create a missing note (under notes/, projects/, or people/), open one of the candidate notes for an ambiguous link, or jump to the resolved note for a missing anchor.

Renaming and moving notes

When a note is renamed or moved, every wikilink that points to it is rewritten to match in a single update, so links keep working as the vault is reorganized. Links in notes that are open with unsaved changes are updated in place.

Unlinked mentions

The panel also lists notes that name the active note by its title or alias in plain text without linking it. Each one shows the surrounding text and offers a one-click action to turn that mention into a link.

Relationship graph

Show graph opens a visual map centered on the active note, with connected notes arranged around it. A depth control expands the view from direct links out to two or three hops to explore how notes connect. Filter the connections by incoming links, outgoing links, or issues (links that don't resolve yet), and select any connection — on the map or in the list — to see its details: where it points, whether it resolves, and one-click actions to open the linked note, copy a link to it, or create the note when it's missing.

Vault graph

Open Graph View — from the command palette, Graph view in any New tab (+) menu, or the View menu — opens an interactive map of the whole vault rather than a single note's neighborhood. Every note is a point and every link a line between them, including notes that aren't linked to anything yet. Pan, zoom, and drag to explore: labels fade in as you zoom toward a cluster and thin out for a clean overview, hovering a note highlights it along with its direct connections, and clicking a note opens it. Notes you currently have open are highlighted, and a link to a note that doesn't exist yet appears as a hollow marker. Fit re-frames the whole map and Refresh rebuilds it; very large vaults show the most-connected notes first.

Pinning metadata exists but pinned notes are not exposed in the current interface. Everything above is in-app search over your own notes; these documentation pages have no search of their own in v1.

Settings

Settings are grouped as General, Models, Meetings, Dictation, Appearance, Connections, Plugins, Agents, Privacy & Data, and About. Use those visible category names when following setup instructions; for example, local agent models live under Settings → Models → Local agent models.

docs / workspaceAll documentation