Native macOS · Local-first

Several threads.
One canvas.

Keep terminals, agents, changes, and notes together. See who needs you at a glance.

Keep a session, its diff, and its notes connected. The waiting pill counts explicit asks.

Download Mosaic 1.0.0 preview macOS 15+ · Apple silicon
Preview: Developer ID signed, not notarized. First open may need System Settings ▸ Privacy & Security ▸ Open Anyway.
The Payments Hub on the Mosaic canvas, connected to its session and notes.
Organization

Every thread has a home

Connect related sessions, files, and notes to a named workspace hub. Fold a workspace when you need more room; its processes keep running.

The Payments Hub connects a grok session and a Handoff note recording the decision to use a 24-hour retry window.
The canvas

Arrange your tools. Keep your context.

Place terminals, agents, notes, web pages, Git diffs, files, and live views of other app windows on one canvas. Move and resize each tile to suit the work.

Room

a whole canvas of its own

A separate canvas for a project or area of work. Switching rooms saves the current canvas before opening the next.

Workspace

a circular hub on the canvas

Group related tiles around a named hub. Bind a project folder, choose a color, and fit or fold the group. Drag a tile into the hub to add it.

Tile

terminal · agent · note · web · git · window

Your individual tool. Use ⌘ plus a number to jump to a favorite tile. Double-click to maximize it; press Esc to return to the canvas.

Review in context

See the change. Keep the conversation.

Review your agent’s changes in a Git diff beside the session. Keep the discussion in the terminal and the decision in a note, all within reach.

A layered session, Git diff, and decision note: change the retry window from 72 to 24 hours and disable duplicate retries.
Session · Changes · Decision View full size ↗
Attention

See who needs you

The 2 waiting pill counts a retry-window question in Payments and another request inside the folded Release Hub.
Requests stay visible, even in folded workspaces. View full size ↗

Find the sessions that need a reply. Mosaic uses process signals, terminal bells, and explicit agent reports through MCP to track activity. A running agent session stays running until it asks for attention.

Activity status reflects the current session. It resets when you restart Mosaic.

quiet running waiting succeeded · 2m ago failed exit 65

Success and failure badges clear when you focus the tile, or after five minutes.

⌥`
Attention pillCounts explicit requests. Jump to the oldest one, even in another room.
⌥O
OverviewHold to peek, tap to keep it open. Pick a tile to return to its context.
⌥Tab
Bounce backReturn to your previous tile. Hold to browse recent tiles.
⌘K
Jump toFind tiles, rooms, and workspaces in one place. Waiting requests come first.
⌥H
LobbyA permanent place to start. Put things here while you figure out where they belong.
Overview

See the whole room. Pick up where you left off.

Press ⌥O for an overview. Pick a session to return to its place on the canvas. Hold the shortcut for a quick peek, then release to go back.

Open the overview with ⌥O, select the waiting grok payments card, and return to the same session asking about the retry window.
Pick a tile → Return to its session View full size ↗
Agent · MCP

Your agents share your canvas

Connect an agent through Mosaic’s MCP bridge. It can inspect the workspace, create tiles, focus a session, and report when it needs your input.

Canvas edits appear immediately and use the same undo history as your own actions. Press ⌘Z to undo.

$ claude mcp add mosaic \
-- "$(pwd)/.build/debug/mosaic-mcp"

Run this from your Mosaic checkout. Keep the app open while using the bridge.

ToolEffect
mosaic_overviewList rooms and workspaces with live tile counts
mosaic_create_tileCreate a tile in a room or workspace
mosaic_focus_tileMove the canvas to a tile
mosaic_presentPresent a tile or focus a workspace hub
mosaic_set_tile_statusReport waiting, succeeded, or failed
mosaic_undo · redoUse the same undo history as ⌘Z

Real terminals

Real PTY sessions

Every terminal tile runs a real PTY session. It keeps running when you switch rooms or close its view, and ends when you delete the tile.

Local-first

Local-first, SQLite

Your rooms, workspaces, and notes live in a SQLite database on your Mac. No account or sync service required.

Soundtrack

Apple Music

Choose an Apple Music album or playlist for Mosaic. Your soundtrack keeps playing as you move between rooms.

Native macOS

AppKit + SwiftUI

Built with AppKit and SwiftUI. Screen recording permission is requested only when you choose to view another app’s window in a tile.

Keep every thread on one canvas.

Download Mosaic 1.0.0 preview

Preview: Developer ID signed, not notarized. First open may need System Settings ▸ Privacy & Security ▸ Open Anyway. Requires macOS 15+ on Apple silicon. No account, no sync.