Everything around the code.
Without the weight of an IDE.

A lightweight native workspace for people who build with a coding agent and don't keep a full IDE open. Here is everything it does — and nothing it doesn't.

ContextDB

A plain-Markdown context repository in your project, set up only when you ask for it.

  • Creates one folder and one README — nothing else in your project is touched
  • Opt-in per project: a project belongs to you and to git, so nothing is written until you say so
  • A recommended 12-folder taxonomy, from 00_index through 99_scratch and todos
  • Appends routing rules to your CLAUDE.md or AGENTS.md so your agent files things in the right place
  • Shows you the exact snippet before it writes, and only ever appends — existing content is never rewritten
  • The ContextDB folder is highlighted and auto-expanded in the tree
An ADR open in ContextLoom beside the ContextDB taxonomy in the sidebar, with the right-click menu on another decision record.

Working next to an agent

The app assumes something else is writing to your files, and behaves accordingly.

  • The tree refreshes as files land, keeping your expanded folders, selection and scroll position
  • Churn from .git, node_modules, .build, DerivedData, __pycache__ and friends is filtered out before it reaches the tree
  • Refresh is debounced but capped, so a continuously-writing agent can't starve the update
  • If a file changes on disk while you have unsaved edits, nothing is written — a bar offers Reload, Keep Mine, or Compare
  • Compare shows both versions side by side before you choose
  • A clean external change reloads in place and flashes "Updated on disk"
  • Verified at 50 file events per second sustained for a minute

Git activity

See what your agent changed without leaving the sidebar. A Pro feature.

  • The workspace row shows the branch and how many files are uncommitted
  • Every changed file carries a state letter — M, A, D, R, U and the rest
  • Collapsed folders get a dot when something inside them is uncommitted
  • Commits and checkouts show up on their own, with the same capped debounce as the file tree
  • Read-only: it never stages, commits or rewrites anything
  • Read locally through a bundled libgit2 — no network, and your global git config is ignored
  • Works with linked worktrees: the sidebar asks once for access to the main repository's .git folder
ContextLoom's sidebar showing main · 2 on the workspace row, dots on folders with uncommitted changes, and M and U badges on files.

Context Bundles

Hand a chat window exactly the files it needs, in one keystroke. A Pro feature.

  • Checkbox selection for individual files in the sidebar
  • Folder selection includes the files inside it
  • Or right-click any file: Add to Context Bundle, and Remove from Bundle to take it back out
  • Each file is wrapped with its relative path as a heading, so the structure survives the paste
  • Copy with ⇧⌘B or the toolbar button, which shows how many files are selected
  • Copies to the clipboard, then clears the selection
  • Secret files are excluded twice over — at selection, and again at export even if you picked the whole folder
Four files checked in the ContextDB tree and Copy Bundle (4) in the toolbar, with the copied bundle's text shown beside the window.

Secret files stay local

A guarantee enforced in code, not a promise in a privacy policy.

  • .env files, .npmrc, .netrc, .pgpass, credentials, SSH keys, .pem, .key and .tfvars are recognized by name
  • Never rendered in the preview web view
  • Never included in a Context Bundle
  • Never created in the iCloud-synced Notes workspace
  • Created owner-only (0600) when ContextLoom makes them
  • Shown even when git-ignored, because that's usually why you opened the app
  • An orange banner states it in the editor — and honestly flips to a warning if macOS itself is syncing that folder

Editor

A real editor for the code and configuration your agent writes, not just Markdown.

  • Syntax highlighting for Markdown plus eight language families — JS/TS/JSX/TSX, Swift, Go, Rust, Java/Kotlin, C/C++/ObjC, Python, Ruby, shell, SQL, JSON/YAML/TOML and more
  • Line-number gutter with the current line emphasized
  • Autosave 500ms after you stop typing, with an Edited / Saved indicator
  • Find within the document (⌘F) using the native find bar
  • Go to Line (⌘L)
  • Undo and redo, from the toolbar or ⌘Z / ⇧⌘Z
  • Keystroke-to-highlight stays under 8ms; a 10,000-line file first paints in 11ms
  • Binary files and files over 2MB are detected and explained rather than opened as garbage

Live preview

Rendered Markdown and diagrams beside the source, rendered entirely on your Mac.

  • GitHub Flavored Markdown — tables, task lists, strikethrough
  • Mermaid diagrams drawn from ```mermaid fences — flowcharts, sequence diagrams and the rest of Mermaid's types
  • Fenced code blocks with syntax highlighting for 100+ languages
  • Relative links navigate to that file inside ContextLoom
  • Follows your light or dark appearance
  • Everything is local: no file access, no network, nothing uploaded
  • Recovers on its own if the rendering process dies
A Mermaid flowchart in the Markdown source rendered as a diagram in ContextLoom's live preview.

View modes

Three modes, one segmented control.

  • Edit — full-width editor with highlighting and line numbers
  • Split — editor and live preview side by side, the default
  • Read — full-width rendered preview for reviewing what an agent wrote
  • Preview applies to Markdown; other files open straight into the editor

Workspaces and navigation

Open any folder. Find your way around a large repository quickly.

  • Open a project folder (⇧⌘O), drop a folder on the window, or use Finder's Open With
  • Opening a file walks up to the project root — .git, package.json, Cargo.toml, go.mod, CLAUDE.md and more — so you get the repository
  • A built-in Notes workspace for prompts and reference material that isn't tied to a repo
  • Persistent access across launches via macOS security-scoped bookmarks
  • Lazy-loading file tree that stays responsive in large projects
  • Filter the tree by filename, inline rename, breadcrumb path, and back/forward history (⌘[ / ⌘])
  • Per-workspace expansion state, so a project reopens the way you left it
  • Show Ignored Files when you actually need to see build output

Fits an existing workflow

No daemon, no shell changes, no lock-in.

  • Open a project from the terminal with macOS's own open command — alias it to something short if you like
  • ContextLoom installs nothing into your shell and changes no dotfiles
  • contextloom:// URL scheme for Shortcuts, Automator and scripts
  • Root .gitignore is respected when deciding what to show
  • Plain Markdown on disk, fully Git-compatible — no proprietary format, no database
  • No account, no server, and no network calls at all
  • Optional iCloud sync for the Notes workspace; project folders are never synced by ContextLoom

Where it sits

ContextLoom isn't trying to be your editor of record. It's the workspace for everything around the code when your agent is doing the typing.

ContextLoom Obsidian iA Writer VS Code
Native macOS app Yes Electron Yes Electron
Built around a coding agent Yes No No Extensions
Context bundles for AI Yes No No No
Recommended context taxonomy Yes No No No
Writes your agent's routing rules Yes No No No
Live Mermaid diagrams Yes Plugin No Extension
Git status in the sidebar Yes Plugin No Yes
Secret files never leave the Mac Enforced No n/a No
Edit-conflict protection Yes Basic Basic Yes
Opens as a lightweight companion Yes Yes Yes No
Price $9.99 once Free / $50 yr $49.99 Free
Account required No Optional No Optional

Comparison reflects the default configuration of each tool at the time of writing.

Tech specs

Platform
macOS 13 (Ventura) or later
UI framework
SwiftUI + AppKit — no Electron
Editor
NSTextView with custom highlighting
Markdown rendering
marked.js, bundled locally
Syntax highlighting
highlight.js (100+ languages)
Diagrams
Mermaid.js, bundled, loaded only when a document has a diagram
File watching
FSEvents, file-level, 0.5s latency
Git
libgit2, read-only, bundled — no git install needed
File format
Plain Markdown (.md), UTF-8
Sync
Optional iCloud Drive, Notes workspace only
Network
None — the app makes no network calls
Distribution
Mac App Store, sandboxed

Keyboard shortcuts

Files

Open project folder ⇧⌘O
New file ⌘N
New folder ⇧⌘N
Save now ⌘S

Context

Copy Context Bundle ⇧⌘B

Editing

Find in document ⌘F
Go to line ⌘L
Undo ⌘Z
Redo ⇧⌘Z

Navigation

Back ⌘[
Forward ⌘]
Show main window ⌘0
ContextLoom Help ⌘?

Keep it in context.

7-day free trial · Native macOS · Local-first