Skip to content

Settings

VMark's settings panel lets you customize every aspect of the editor. Open it with Mod + , or via VMark > Settings in the menu bar.

The settings window has a sidebar with sections grouped by topic — the most-used sections appear first, with About and Advanced at the bottom. Changes take effect immediately — there is no save button.

Use the search box at the top of the sidebar to filter settings across every panel by name or description — matching rows are stacked together so you don't need to know which category a setting lives in. To restore everything to factory defaults, use Reset to Defaults in the About section.

Appearance

Controls the visual theme and window behavior.

Theme

Choose one of six color themes. The active theme is indicated by a ring around its swatch.

ThemeBackgroundStyle
White#FFFFFFClean white, highest contrast
Paper#EEEDEDWarm newsprint, the default
Mint#CCE6D0Soft green, easy on the eyes
Sepia#F9F0DBBook stock, for long reading
Night#23262BDark slate for low light
Solarized#002B36Solarized Dark, the classic palette

Follow system appearance

SettingDescriptionDefault
Follow system appearanceSwitch between your light and dark themes automatically with the systemOff

When enabled, the single theme row is replaced by two rows — Light theme (used while the system is in light mode, default Paper) and Dark theme (used in dark mode, default Night). VMark switches between them the moment the system appearance changes; your manual theme choice is kept and restored when you turn the option off.

Language

SettingDescriptionDefaultOptions
LanguageChanges the UI language for menus, labels, and messages. Takes effect immediatelyEnglishEnglish, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Deutsch, Italiano, Português (Brasil)

Window

SettingDescriptionDefault
Show filename in titlebarDisplay the current file name in the macOS window title bar. macOS only — this setting is hidden elsewhere, because Windows and Linux always show the filename in the system title barOff

On macOS, VMark draws its own title bar over the system one, so the filename is an opt-in element of that strip. On Windows and Linux the system draws a real title bar above the window: the filename (with a while there are unsaved changes) always appears there, and VMark adds no title strip of its own.

Focus Mode

SettingDescriptionDefaultOptions
Dim levelHow strongly non-focused content is dimmed in Focus Mode. Standard keeps the default color-only dimming; Strong and Stronger add progressively lower opacity on topStandardStandard, Strong, Stronger

Editor

Typography, display, editing behavior, and whitespace settings.

Typography

SettingDescriptionDefaultOptions
Latin FontFont family for Latin (English) textSystem DefaultSystem Default, Athelas, Palatino, Georgia, Charter, Literata — plus any installed font
CJK FontFont family for Chinese, Japanese, Korean textSystem DefaultSystem Default, PingFang SC, Songti SC, Kaiti SC, Noto Serif CJK, Source Han Sans — plus any installed font
Mono FontFont family for code and monospace text — also used by the integrated terminalSystem DefaultSystem Default, SF Mono, Monaco, Menlo, Consolas, DejaVu Sans Mono, Liberation Mono, Ubuntu Mono, Noto Sans Mono, Noto Sans Mono CJK SC, JetBrains Mono, Fira Code, SauceCodePro NFM, IBM Plex Mono, Hack, Inconsolata — plus any installed font
Font SizeBase font size for editor content18px14px, 16px, 18px, 20px, 22px
Line HeightVertical spacing between lines1.8 (Relaxed)1.4 (Compact), 1.6 (Normal), 1.8 (Relaxed), 2.0 (Spacious), 2.2 (Extra)
Block SpacingVisual gap between block elements (headings, paragraphs, lists) measured in multiples of line height1x (Normal)0.5x (Tight), 1x (Normal), 1.5x (Relaxed), 2x (Spacious)
CJK Letter SpacingExtra spacing between CJK characters, in em unitsOffOff, 0.02em (Subtle), 0.03em (Light), 0.05em (Normal), 0.08em (Wide), 0.10em (Wider), 0.12em (Extra)

Using a font you installed yourself

The names listed above are a shortlist, not the limit. Each of the three font pickers also carries an Installed Fonts section listing every font family on the machine, so a face you installed — LXGW WenKai, Iosevka, Source Han Serif — is chosen the same way the built-in ones are.

Pick Custom… at the end of the list to type a family name instead. Use the name exactly as the system reports it (macOS: Font Book; Windows: Settings → Personalisation → Fonts) — for LXGW WenKai / 霞鹜文楷 that is LXGW WenKai. The font applies as soon as the name is complete; if nothing changes, the name does not match an installed family. A name containing quotes, commas, semicolons or brackets is refused, and the row says so.

Installed Fonts is macOS-only

macOS lists every installed family for you. On Windows and Linux the section is empty and Custom… is the way in — typing the family name works identically on all three platforms.

The choice carries into PDF export, which renders through the same engine with the same fonts. HTML export cannot bundle a font from your machine, so an exported page falls back to the reader's own fonts unless they have the same family installed.

Display

SettingDescriptionDefaultOptions
Editor WidthMaximum content width. Wider values suit large monitors; narrower values improve readability50em (Medium)36em (Compact), 42em (Narrow), 50em (Medium), 60em (Wide), 80em (Extra Wide), Unlimited

The same width reads differently in Latin and CJK

Editor Width is measured in em, so the line length in characters depends on the script: at 50em a Latin line holds roughly 90–100 characters (about 2× a typographer's 45–75-character measure, which suits a two-pane editor), while a CJK line holds about 50 full-width characters — right in the traditional 40–60 range for Chinese text. If you write mostly Latin prose and want a book-like measure, choose 36–42em; for mostly-CJK documents the default is already the classical measure.

TIP

50em at 18px font size is roughly 900px — a comfortable reading width for most displays.

Behavior

SettingDescriptionDefaultOptions
Tab sizeNumber of spaces inserted when pressing Tab2 spaces2 spaces, 4 spaces
Open files in a new tabOpen existing files in a new tab instead of reusing the current empty tabOffOn / Off
Enable auto-pairingAutomatically insert matching closing brackets and quotes when you type an opening oneOnOn / Off
CJK bracketsAuto-pair CJK-specific brackets like 「」 【】 《》. Only available when auto-pairing is enabledAutoOff, Auto
Include curly quotesAuto-pair "" and '' characters. May conflict with some IME smart quote features. Appears when CJK brackets is set to AutoOnOn / Off
Also pair "Typing the right double quote " also inserts a "" pair. Useful when your IME alternates between open and close quotes. Appears when curly quotes are enabledOffOn / Off
Copy formatWhat format to use for the plain text clipboard slot when copying from WYSIWYG modePlain textPlain text, Markdown
Copy on selectAutomatically copy text to the clipboard whenever you select itOffOn / Off

Whitespace

SettingDescriptionDefaultOptions
Line endings on saveControl how line endings are handled when saving filesPreserve existingPreserve existing, LF (\n), CRLF (\r\n)
Line breaks become hard breaksTreat single newlines inside a paragraph as hard breaks (does not affect blank lines between blocks)OffOn / Off
Preserve consecutive line breaksKeep multiple blank lines as-is instead of collapsing themOnOn / Off
Hard break style on saveHow hard line breaks are represented in the saved Markdown filePreserve existingTwo spaces (Recommended), Preserve existing, Backslash (\)
Show <br> tagsDisplay HTML line break tags visibly in the editorOffOn / Off
Show invisiblesVisualize whitespace: spaces as ·, tabs as (Source only), soft line breaks as (Source only), hard line breaks as . Hidden when printing. Toggle: F3 or View → Show Invisibles.OffOn / Off

TIP

Two spaces is the most compatible hard break style — it works on GitHub, GitLab, and all major Markdown renderers. The backslash style may fail on Reddit, Jekyll, and some older parsers.

Markdown

Paste behavior, layout, and HTML rendering settings.

Paste & Input

SettingDescriptionDefaultOptions
Enable regex in searchShow a regex toggle button in the Find & Replace barOnOn / Off
Paste modeHow content from the clipboard is processed when pasting. Smart converts HTML to Markdown and detects Markdown syntax; Plain always pastes plain text; Rich keeps the original HTML formattingSmartSmart, Plain, Rich
Markdown paste in WYSIWYGWhen pasting text that looks like Markdown into the WYSIWYG editor, automatically convert it to rich contentAutoAuto, Off

Layout

SettingDescriptionDefaultOptions
Split source/preview by defaultOpen Markdown files in the side-by-side source + live preview split (otherwise WYSIWYG). Toggle per session with Shift + F6 or View → Markdown Split ViewOffOn / Off
Block element font sizeRelative font size for lists, blockquotes, tables, alerts, and details blocks100%100%, 95%, 90%, 85%
Heading alignmentText alignment for headingsLeftLeft, Center
Image & diagram bordersWhether to show a border around images, Mermaid diagrams, and math blocksNoneNone, Always, On hover
Image & table alignmentHorizontal alignment for block images and tablesCenterCenter, Left
Fit tables to widthConstrain all tables to the editor width instead of allowing horizontal scrollOffOn / Off
Code block line numbersShow line numbers inside code blocks in the WYSIWYG editor. Independent of the View menu's Line Numbers, which controls the Source/Split editor's gutterOffOn / Off

Lint

SettingDescriptionDefaultOptions
Enable markdown lintCheck for common markdown issues (broken links, missing alt text, heading increments, unclosed fences, etc.)OnOn / Off

See Markdown Lint for the full rule list and severity levels.

HTML Rendering

SettingDescriptionDefaultOptions
Raw HTML in rich textControl whether raw HTML blocks are rendered in WYSIWYG modeSanitizedHidden, Sanitized, Sanitized + styles
Allowed HTML tagsHow broad the rendered tag set isStrictStrict, Extended
Also allow these tagsExtra tag names to allow, comma-separated(empty)e.g. kbd, samp, var

TIP

Hidden collapses raw HTML and renders nothing. Sanitized renders HTML with dangerous tags stripped. Sanitized + styles additionally preserves a safe subset of inline style attributes.

Strict allows a small, conservative tag set. Extended additionally renders <svg> (and its safe child elements), <figure>/<figcaption>, <details>/<summary>, and other semantic/structural tags — all still sanitized. Use Also allow these tags to add specific extras on top (e.g. kbd, samp, var).

WARNING

Regardless of these settings, dangerous tags (<script>, <style>, <iframe>, <form>, event handlers, …) are always stripped — the custom-tags field cannot re-enable them. Allow-list breadth only affects the WYSIWYG preview; the raw HTML in your file is never modified.

Files & Images

File browser, saving, document history, image handling, and document tools.

Workspace

SettingDescriptionDefault
Workspace railShow the left workspace rail and keep multiple workspaces and loose files in one windowOff

See Workspace Rail for what the rail adds.

File Browser

The first two settings only apply when a workspace (folder) is open, and are saved per workspace.

SettingDescriptionDefault
Show hidden filesInclude dotfiles and hidden system items in the file explorer sidebarOff
Show all filesShow non-markdown files in the file explorer. Non-markdown files open with your system's default applicationOff
Show file extensionsDisplay the full file name — notes.md, not notes — in the sidebar, tab strip, and title bar. Applies everywhere, workspace or notOn

Turning Show file extensions off hides only extensions VMark recognises. A file it cannot open keeps its suffix either way, so the name you see always exists on disk.

Quit Behavior

SettingDescriptionDefault
Confirm quitRequire pressing Cmd+Q (or Ctrl+Q) twice to quit, preventing accidental exitsOn
Minimize to tray on closeWindows only. Closing the last window keeps VMark running in the system tray instead of quittingOff

Minimize to tray on close changes only the last window. With several windows open, closing one still closes it; it is the final close — the one that used to quit VMark — that now parks it in the tray instead. Nothing is closed, so unsaved work stays exactly where you left it.

  • Left-click the tray icon to bring VMark back.
  • Right-click it for Show VMark and Quit VMark. Quitting from the tray brings the window back first, so any unsaved-changes prompt appears where you can answer it.
  • Ctrl+Q still quits as usual.
  • Turning the setting off while VMark is in the tray brings the window back before the icon disappears, so it can never leave VMark running with no window and no icon.

The setting does not appear on macOS or Linux.

Saving

SettingDescriptionDefaultOptions
Enable auto-saveAutomatically save files after editingOnOn / Off
Stamp identity block on saveLet a save insert a vmark: identity block into the file's frontmatter and create a .vmark folder in the workspace, so the coherence layer can track the document from disk. AI and MCP writes are captured once a workspace ledger exists, whether or not this is onOffOn / Off
Save intervalTime between automatic saves. Only available when auto-save is enabled30 seconds10s, 30s, 1 min, 2 min, 5 min
Keep document historyTrack document versions for undo and recoveryOnOn / Off
Maximum versionsNumber of history snapshots to keep per document50 versions10, 25, 50, 100
Keep versions forMaximum age of history snapshots before they are pruned7 days1 day, 7 days, 14 days, 30 days
Merge windowConsecutive auto-saves within this window consolidate into a single snapshot, reducing storage noise30 secondsOff, 10s, 30s, 1 min, 2 min
Max file size for historySkip taking history snapshots for files larger than this threshold512 KB256 KB, 512 KB, 1 MB, 5 MB, Unlimited

Images

SettingDescriptionDefaultOptions
Auto-resize on pasteAutomatically resize large images before saving to the assets folder. The value is the maximum dimension in pixelsOffOff, 800px, 1200px, 1920px (Full HD), 2560px (2K)
Copy to assets folderCopy pasted or dropped images into the document's assets folder instead of embedding themOnOn / Off
Clean up unused images on closeAutomatically delete images from the assets folder that the document no longer references. Runs when you close the document, the window, or the app. Images still referenced by another document in the same folder are kept, and removed images go to the system TrashOffOn / Off

TIP

Enable Auto-resize on paste if you frequently paste screenshots or photos — it keeps your assets folder lightweight without manual resizing.

Large Files

SettingDescriptionDefaultOptions
Warn above sizeShow a confirmation prompt before opening files over 5 MBOnOn / Off
Auto Source modeAutomatically open files above the threshold in Source mode (skips WYSIWYG to keep performance smooth)OnOn / Off

See Large Files for the full breakdown of how large files are handled.

Document Tools

VMark detects Pandoc to enable exporting to additional formats (DOCX, EPUB, LaTeX, and more). Click Detect to scan for Pandoc on your system. If found, its version and path are displayed.

See Export & Print for details on all export options.

Integrations

MCP server and AI provider configuration.

MCP Server

The MCP (Model Context Protocol) server allows external AI assistants like Claude Code and Cursor to control VMark programmatically.

SettingDescriptionDefault
Enable MCP ServerStart or stop the MCP server. When running, a status badge shows the port and connected clientsOn (toggle)
Start on launchAutomatically start the MCP server when VMark opensOn
Auto-approve saves to a new location and genie resultsLet an MCP client save a document to a new location without asking, and let a genie apply its result directly instead of showing a preview. When off, an MCP request to save to a new path is refused and a toast notifies you. MCP document writes are never gated by this — each one is checkpointed and can be restored from the status bar historyOff

When the server is running, the panel also displays:

  • Port — automatically assigned; AI clients discover it through the config file
  • Version — MCP server sidecar version
  • Tools / Resources — number of available MCP tools and resources
  • Connected Clients — number of AI clients currently connected

Below the MCP Server section, you can install VMark's MCP configuration into supported AI clients (Claude Desktop, Claude Code, Codex CLI, Gemini CLI) with a single click.

See MCP Setup and MCP Tools Reference for full details.

AI Providers

Configure which AI provider powers AI Genies. Only one provider can be active at a time.

CLI Providers — Use locally installed AI CLI tools (Claude, Codex, Gemini). Click Detect to scan your $PATH for available CLIs. CLI providers use your subscription plan and require no API key.

REST API Providers — Connect directly to cloud APIs (Anthropic, OpenAI, Google AI, Ollama API). Each requires an endpoint, API key, and model name.

See AI Providers for detailed setup instructions for each provider.

Formats

Opt-in toggles for non-default format adapters, plus the explicit external-editor command for the read-only code-tab escape hatch.

Markdown, plain text, and YAML/YML are always registered — the calm defaults. Every other adapter is off by default so existing users aren't surprised on upgrade. Flip a toggle and the registry rebuilds in place; open tabs remount with the proper adapter, no restart needed.

For the full list of formats and their previews, see Supported Formats.

Format support

ToggleDefaultEnables
Data formatsOff.json, .jsonl, .toml — split-pane source + navigable tree. Schema-aware previews for Cargo.toml, package.json, pyproject.toml.
Diagrams & SVGOff.mmd (Mermaid) and .svg — split-pane source + sanitized live render.
HTML previewOff.html and .htm — sandboxed iframe preview (sandbox="" empty allow-list, DOMPurify, CSP <meta>). OWASP top-20 verified — see Security model for HTML.
Code viewersOff12 read-only viewers (.ts, .tsx, .js, .jsx, .py, .rs, .go, .css, .sh, .bash, .rb, .lua). Open in a syntax-highlighted viewer with Enable editing and Open in external editor buttons.

When a category is off, the matching extensions fall through to the plain-text fallback so the file still opens — just without the schema view.

Default view mode

Preview-capable files (HTML, SVG, Mermaid, JSON, YAML, TOML) open in one of three view modes:

OptionResult
SourceEditable source pane, full width.
Split (default)Source and preview side by side.
PreviewRead-only render, full width.

This is the default for newly-opened tabs; each tab remembers its own choice, and you can switch any tab with the on-screen toggle or F6 / Shift + F6.

External editor

For the Open in external editor button on read-only code tabs, pick the editor that should launch. An app bundle (e.g. /Applications/Visual Studio Code.app) or an executable.

The GUI setting overrides any environment variables — explicit beats implicit. Leave it empty to use the env-var fallback chain $VMARK_EXTERNAL_EDITOR → $VISUAL → $EDITOR → platform default. See Open in external editor for the full resolution order and security gate.

One-time upgrade nudge

On the first launch after upgrading to multi-format support, VMark surfaces a non-blocking toast pointing to Settings → Formats. The nudge fires once per install — once shown (or dismissed), it never reappears.

File-type overrides

Beyond the category toggles, you can override how an individual file family opens via the command palette — Set File Type: Plain Text / Markdown / Reset to Default. Overrides are stored per file family (by extension, or by dotfile stem for files like .env) and persist across sessions. See How VMark decides a file's type.

The Formats panel lists every override you've set, each as key → format. Remove a single entry with its × button, or use Clear all to drop them in one go — removed entries fall back to the built-in rule.

Language

CJK (Chinese, Japanese, Korean) formatting rules. These rules are applied when you run Format → Format CJK Selection (Cmd+Shift+F) on a selection, or Format → Format CJK Document (Alt+Cmd+Shift+F) on the whole file.

TIP

The Language section contains 20+ fine-grained formatting toggles. For a full explanation of each rule with examples, see CJK Formatting.

Fullwidth Normalization

SettingDescriptionDefault
Convert fullwidth letters/numbersConvert fullwidth alphanumeric characters to halfwidth (e.g., ABC to ABC)On
Normalize punctuation widthConvert fullwidth commas and periods to halfwidth when between CJK charactersOn
Convert parenthesesConvert fullwidth parentheses to halfwidth when content is CJKOn
Convert bracketsConvert halfwidth brackets to fullwidth 【】 when content is CJKOff

Spacing

SettingDescriptionDefault
Add CJK-English spacingInsert a space between CJK and Latin charactersOn
Add CJK-parenthesis spacingInsert a space between CJK characters and parenthesesOn
Remove currency spacingRemove extra space after currency symbols (e.g., $ 100 becomes $100)On
Remove slash spacingRemove spaces around slashes (e.g., A / B becomes A/B), preserving URLsOn
Collapse multiple spacesReduce multiple consecutive spaces to a single spaceOn

Dash & Quotes

SettingDescriptionDefault
Convert dashesConvert double hyphens (--) to em-dashes (——) between CJK charactersOn
Fix em-dash spacingEnsure proper spacing around em-dashesOn
Convert straight quotesConvert straight " and ' to smart (curly) quotesOn
Quote styleTarget style for smart quote conversionCurly "" ''
Contextual quotesUse curly quotes around CJK text but keep straight quotes in pure Latin text. Only available when Convert straight quotes is onOn
Quote toggle behaviorHow the quote-style toggle command cycles between styles — Simple swaps straight ↔ your preferred style; Full cycle rotates through all stylesSimple
Fix double quote spacingNormalize spacing around double quotesOn
Fix single quote spacingNormalize spacing around single quotesOn
CJK corner quotesConvert curly quotes to corner brackets 「」 for Traditional Chinese and Japanese text. Only available when quote style is CurlyOff
Nested corner quotesConvert nested single quotes to 『』 inside 「」Off

Section Handling

SettingDescriptionDefaultOptions
Skip reference sectionsLeave ## References and ## Further Reading sections unformatted when running CJK formatting — useful for academic documents where citation text should stay verbatimOffOn / Off

Cleanup

SettingDescriptionDefaultOptions
Limit consecutive punctuationLimit repeated punctuation marks like !!!OffOff, Single (!! to !), Double (!!! to !!)
Remove trailing spacesRemove spaces at the end of linesOnOn / Off
Normalize ellipsisConvert spaced dots (. . .) to proper ellipsis (...)OnOn / Off
Collapse newlinesReduce three or more consecutive newlines to twoOffOn / Off

Shortcuts

View and customize all keyboard shortcuts. Shortcuts are grouped by category (File, Edit, View, Format, etc.).

  • Search — Filter shortcuts by name, category, or key combination
  • Click a shortcut to change its key binding. Press the new combination, then confirm
  • Reset — Restore an individual shortcut to its default, or reset all at once
  • Export / Import — Save your custom bindings as a JSON file and import them on another machine

See Keyboard Shortcuts for the full default shortcut reference.

Terminal

Configure the integrated terminal panel. Open the terminal with Ctrl + `.

SettingDescriptionDefaultOptions
ShellWhich shell to use. Requires a terminal restart to take effectSystem DefaultAuto-detected shells on your system (e.g., zsh, bash, fish)
Panel PositionWhere to place the terminal panelAutoAuto (based on window aspect ratio), Top, Bottom, Left, Right
Panel SizeProportion of available space the terminal occupies. Drag-resizing the panel also updates this value40%10% to 80%
Font SizeText size in the terminal13px10px to 24px
Line HeightVertical spacing between terminal lines1.2 (Compact)1.0 (Tight) to 2.0 (Extra)
Cursor StyleShape of the terminal cursorBarBar, Block, Underline
Cursor BlinkWhether the terminal cursor blinksOnOn / Off
Copy on SelectAutomatically copy selected terminal text to the clipboardOffOn / Off
WebGL RendererUse GPU-accelerated rendering for the terminal. Disable if you experience IME input issues. Requires a terminal restartOnOn / Off
Remote Clipboard (OSC 52)Let programs running in the terminal — over ssh, inside tmux — copy to your system clipboard. The channel is write-only: reading the clipboard is always refused, since any output printed to the terminal could request itOnOn / Off
ScrollbackNumber of lines of output each session keeps in its scroll history. Higher values use more memory5,0001,000 / 5,000 / 10,000 / 50,000
Screen Reader ModeExpose terminal output to assistive technology (VoiceOver). Off by default for performanceOffOn / Off

Two macOS/Unix-only toggles also appear here: Option as Meta Key (macOS only — treat the Option key as Meta for Alt-prefixed shortcuts) and Shell Integration (hidden on Windows — inject OSC marks for prompt navigation, exit-status decorations, and cwd tracking in zsh).

Accessibility

SettingDescriptionDefaultOptions
Terminal bellHow a terminal bell (BEL) is signalled. Visual marks background activity on the session tab; Audible plays a soft beep and (for a background session) also flags the tab so you can locate it; Off ignores it. Applies live to running sessionsVisualOff, Visual, Audible
Notify when unfocusedShow an OS notification (naming the window's document) when a terminal rings the bell while that VMark window isn't focused — e.g. Claude Code finishing a turn. Lets you track Claude Code across multiple windows without watching each one. Requires granting notification permission on first useOnOn / Off
Minimum contrastLift faint terminal text to a minimum contrast ratio against its background. Raise it for readability; Off disables the lift. Applies live to running sessionsWCAG AA (4.5:1)Off, WCAG AA (4.5:1), WCAG AAA (7:1), Maximum

See Integrated Terminal for more about sessions, keyboard shortcuts, and shell environment.

About

Displays app version, links to the website and GitHub repository, and update management.

Updates

SettingDescriptionDefaultOptions
Automatic updatesPeriodically check for new versionsOnOn / Off
Check frequencyHow often to check for updates. Only available when automatic updates are onOn startupOn startup, Daily, Weekly, Manual only
Download updates automaticallyDownload new versions in the background when availableOffOn / Off
Check NowManually trigger an update check

When an update is available, a card appears showing the new version number, release date, and release notes. You can Download the update, Skip this version, or — once downloaded — Restart to Update.

If an update gets stuck

Checking and downloading both go over the network, and a connection that hangs rather than failing outright can leave the status bar indicator spinning indefinitely. If it stops making progress, the indicator becomes clickable and its tooltip reads Update stalled — click to reset. Clicking it returns the updater to idle so you can try again; it does not change anything you have already downloaded, and a retry starts from a fresh check.

Update activity is written to the log file, so if the problem repeats, the log is worth attaching to a bug report:

PlatformLog location
macOS~/Library/Logs/app.vmark/
Windows%LOCALAPPDATA%\app.vmark\logs\
Linux~/.local/share/app.vmark/logs/

Reset

SettingDescription
Reset to DefaultsRestore every setting to its default value. A confirmation prompt appears first — this cannot be undone

Advanced

TIP

The Advanced section is visible by default — it hosts the off switch for the embedded browser, which ships on. Press Ctrl + Option + Cmd + D in the Settings window to hide it, and again to bring it back.

Developer and system-level configuration.

SettingDescriptionDefault
Custom link protocolsAdditional URL protocols VMark should recognize when inserting links. Enter each protocol as a tagobsidian, vscode, dict, x-dictionary

This lets you create links like obsidian://open?vault=... or vscode://file/... that VMark will treat as valid URLs.

Performance

SettingDescriptionDefault
Keep both editors aliveMount both the WYSIWYG and Source mode editors simultaneously for faster mode switching. Increases memory usageOff

Coherence

SettingDescriptionDefaultOptions
Semantic check confidenceHow sure a check must be before its answer is recorded as a verdict. Below this, the answer is kept but marked unknown0.90.7, 0.8, 0.9, 0.95

See Coherence for what a check is and how verdicts are recorded.

Workflow files

SettingDescriptionDefaultOptions
Fetch action metadataAllow VMark to fetch action.yml from referenced GitHub Actions to populate the structured editor's with: form. Turn off to keep the workflow editor fully offlineOnOn / Off
Use actionlint when availableIf the actionlint binary is on your PATH, run it on workflow files for richer diagnostics. No effect if the binary is not installedOnOn / Off

Workflow

The GitHub Actions viewer has no switch: opening a file under .github/workflows/ shows the graph and the form editor, and the source-pane aids (expression completion, cursor-to-canvas sync, uses: goto-definition) load with it. What remains here is the viewer's one preference and the separate execution engine.

SettingDescriptionDefaultOptions
Preserve YAML formattingWhen saving workflow edits made via the form panel, preserve the original YAML's comments, anchors, key order, and blank lines via the CST round-trip pipeline. When off, save uses a compact serializer (faster but lossy)OnOn / Off
Workflow engineRun VMark's own YAML workflow files: adds the Run/Cancel side panel and lets workflow genies execute. Steps can call AI providers and write files, so it stays off until you ask for itOffOn / Off

The engine does not change what the viewer shows. With the engine off, VMark refuses workflow-execution requests outright rather than merely hiding the button — including requests that arrive over MCP — and reports "The workflow engine is turned off in Settings".

Both rows live under Developer Tools (see below) — turn Developer Tools on to reveal them. See Workflow Viewer for the full feature surface.

Embedded Browser

SettingDescriptionDefaultOptions
Embedded browserThe in-app web browser (macOS only). While on, New Browser Tab is in the File menu and the command palette, and the MCP browser tools are available. Turning it off closes open browser tabs and withdraws the AI automation surfaceOnOn / Off
AI browser sessionChoose Sandbox (recommended, isolated non-persistent AI cookies) or Shared profile (human profile with destination approvals)SandboxSandbox / Shared
Allow AI loopback accessAllow AI navigation to localhost and loopback addresses. Private LAN, metadata, and link-local ranges remain blockedOffOn / Off

These live under Advanced → macOS, and appear on macOS only. The two AI posture rows appear only while the browser toggle is on, and are unaffected by it being on — they stay at Sandbox / loopback-blocked until you change them. See Embedded Browser for the full feature surface.

Platform-Specific

SettingDescriptionDefaultPlatforms
Clear macOS quarantine on openWhen opening a file that carries the macOS quarantine attribute (com.apple.quarantine), strip it before reading. Helpful for files downloaded from the web that VMark would otherwise be blocked from openingOnmacOS
Mac Option as Meta (terminal)Treat the macOS Option key as Meta in the integrated terminal. Required for tools like emacs and tmux that expect Alt-prefixed shortcutsOnmacOS

Developer Tools

Developer tools is a persisted master switch for experimental and development-only settings. Turning it on reveals the Preserve YAML formatting row, the Workflow engine toggle and a Hot Exit Dev Tools panel (buttons to test session capture, inspection, restoration, clearing, and restart). Because the switch persists, an in-progress feature you enable stays reachable across sessions and in release builds — you do not need to re-enable Developer tools each time you open Settings.

It also reveals the Knowledge Base outside Settings: the View → Knowledge Base menu item, the palette command and the Ctrl + Shift + 4 shortcut are hidden until Developer tools is on, because no release build on any platform ships the content-server runtime that feature needs.

SettingDescriptionDefault
Developer toolsEnable developer mode and reveal the experimental and development-only settings belowOff

See Also