Release notes for every public Terminal Graph beta. The newest build is always listed first. The Sparkle beta feed only retains the most recent few releases — this page is the durable history.
Agent browser control
Agents can now drive a browser node through MCP — navigate to real pages, read them, and act. New tools let an agent open a URL, read the page as an accessibility snapshot with stable element references, click elements, fill forms, and press keys, take screenshots, run JavaScript, and wait for the page or a file download to finish.
Form fills work with React-controlled inputs, and downloads save to your Downloads folder.
Fixes
- No more beep in web nodes. Arrow keys — and other keys a page leaves unhandled — no longer play the macOS alert sound in browser, note, and editor nodes. Bare-key menu shortcuts like Escape (Deselect All) still work over them.
Appearance
- Complete theme palettes. Every bundled theme — Catppuccin, Gruvbox, Nord, Tokyo Night, Daybreak, Girly Pop, and the INTDEV themes — now ships a full, accessible color palette. Switching themes recolors the whole app consistently: canvas chrome, status colors, the minimap, and node chrome, instead of falling back to defaults. Settings now exposes every color role, so a custom theme can tune each one.
- Note & editor fonts. Set the font for note and editor nodes from Settings, alongside the existing terminal and interface fonts. The editor and terminal pickers list monospaced families by default — check Show all to pick any installed font. Note fonts list every family.
MCP
- Fixed: tools that change the canvas (create, move, resize, …) reported a JSON encoding error even when they had actually succeeded. They now return their results correctly.
Fixes
- Smoother full-screen panning. Panning the canvas in full-screen could drop frames, even when the app was otherwise idle. Fixed — panning now stays smooth in full-screen.
Agent session integrations
Terminal Graph can now capture the exact session of a running coding agent — no more best-effort guessing from the terminal title. A new Agent Sessions panel in Settings lets you enable official integrations for Claude Code, Codex, Gemini CLI, OpenCode, and Pi. Enabling one installs that agent's plugin or extension; restart the agent to load it, and from then on relaunching Terminal Graph resumes the precise session you left.
The same integrations add attention: get notified when an agent finishes, needs approval, or asks a question while its terminal is unfocused. Disabling an integration keeps any session IDs it already captured.
Canvas & dataflow
- Auto-bridging with Collect. Drag a stream output onto a signal or state input and Terminal Graph now drops a Collect node in between to make the connection valid — instead of shaking and rejecting the drop. Delete it (or use Recently Closed) to undo.
- Movable minimap. Drag the minimap to reposition it; it stays clear of the support button.
- Unified link handling. Click a web link in a terminal, note, or editor and it opens as a browser node on the canvas. ⇧⌘-click opens it in your external browser instead. Inside a browser node, ⌘-click opens the link in a new browser node.
MCP
- New stdio transport. The MCP server now speaks over a stdio bridge — the standard MCP transport — instead of a localhost HTTP port. No more port conflicts, and multiple agents can connect at once. If you'd set up MCP before, re-add it using the
mcp add command shown in Settings; the old port is retired.
- Fixed: connection lines now repaint immediately when an agent moves or resizes nodes, or instantiates a blueprint (they used to stay stale or invisible until an unrelated refresh).
Terminal session resume (Phase 1)
Relaunch and your coding agent picks up where it left off. When a terminal is running a supported agent — Claude Code, Codex, Gemini, opencode, or pi — Terminal Graph remembers it and, on the next launch, automatically resumes that agent's most recent session (e.g. claude --continue). No re-typing, no lost thread.
Resumed terminals wear a small chip until you focus them: RESUMED when the session was auto-continued, or RESTORED when Terminal Graph pre-filled the command at the prompt for you to run yourself.
Theming
- Project zones follow your theme. Zone colors are stored as a palette position rather than a fixed value, so they re-tint when you switch themes. Existing zones keep their colors.
- Bolder attention indicators. Alert rings and status colors are prominent again, so a node asking for your attention is easier to spot.
- A smoother workflow for building custom themes.
Fixes
- Fixed a crash when pressing Escape in some nodes.
- A focused node now delivers its notifications even when its window is in the background.
- Aligned split-group divider zones and the split-pane close button.
Performance & fixes
A canvas performance pass focused on smoother panning, zooming, and dataflow.
- Panning tracks 1:1 again. The grid and minimap no longer drift a frame behind your nodes while you scroll — fixing the floaty pan some of you reported after the
last release.
- Faster zoom on large canvases. Zooming out across a canvas with many nodes no longer pins the main thread, so pinch- and scroll-zoom stay responsive.
- Smoother active dataflow. Run nodes launch without stuttering the canvas, and log/output views stopped re-rendering their whole buffer on every update.
New
- A fresh look — Terminal Graph has a top-to-bottom visual redesign: restyled nodes, groups, sidebar, minimap, and command palette, clearer focus and selection cues, and refreshed bundled themes. You can now give the canvas a backdrop — none, a soft vignette, or top-lit — and a new welcome screen greets you on an empty canvas.
- Search from the browser address bar — Type a search into a browser node's address bar and it runs a web search instead of failing to load. Pick your engine — Google, Bing, DuckDuckGo, or a custom template — in Settings → General. Real URLs still load directly.
Changed
- Easier node resizing — Bigger, more consistent grab zones and native macOS resize cursors on node edges and corners, so catching a handle is more reliable — especially when zoomed out.
Fixed
- Workspace title size — The window title no longer grows oversized at large Interface Text scales; it's capped to a readable range while keeping your chosen font.
- Focus View stays put — Creating or duplicating a node while focused on a group no longer knocks you out of Focus View; the group and its layout stay put.
New
- Duplicate a selection —
⌘D (and ⌘⇧D for a vertical copy) now duplicate an entire multi-node selection at once, not just a single node. Select any mix of loose nodes, whole groups (including worktree groups), and nodes inside groups; the copies keep their layout, clone the wires that run between them, and carry over each node's project and worktree setup. If anything fails mid-copy, the whole duplication rolls back.
- Reopen what you closed —
⌘⇧T (Reopen Last Closed) acts like an undo for closing: it brings back your last close — a single node, a group, or a whole multi-node selection — restoring each item to its original position with its connections and Focus View layout intact. Repeat to keep stepping back through earlier closes.
Changed
- Scrolling pans the canvas — Scrolling over an unfocused node now pans the canvas instead of scrolling inside the node. Focus the node first (or use Group Focus View) to scroll its content as before.
- Native app icon on macOS Tahoe — On macOS Tahoe, the app now shows a native full-bleed icon — with Liquid Glass and light, dark, and tinted variants — instead of a shrunken icon on the system's default backing. Earlier macOS versions keep the existing icon.
Fixed
- Zoom to Fit with the sidebar open — Fit Node (
⌥⌘F) and Fit All (⌥⌘0) now land content in the open canvas area beside the sidebar, instead of centering it partly underneath. With the sidebar closed, nothing changes.
New
- Browser authentication — Browser nodes now prompt for a username and password on sites behind HTTP Basic/Digest auth, instead of dead-ending on a blank page. The prompt appears inside the node, so one node waiting on credentials never blocks the canvas and several nodes can prompt at once. Credentials last only for the session — nothing is saved to your keychain. A wrong password re-prompts with a warning, and giving up shows the site's own 401 page, just like a desktop browser.
- Focus View navigation — Focus Mode is now Focus View, and it understands groups. Enter a group to step through its children, move between siblings with
⌘⌥ + arrow keys, and push or pop nesting levels as you go. ⌘⏎ enters or fully exits, ⌘⇧⏎ pushes or pops one level, and ⌘⌥⏎ toggles between focusing a group and its contents.
New
- Text scaling — Interface Text and Node Content now have their own size controls in Settings → Fonts. Change either and the whole app re-renders live — menus, sidebar, file tree, node contents, and utility-node controls all scale, keeping the native macOS look.
- Canvas zoom shortcuts —
⌘=, ⌘-, and ⌘0 now zoom the canvas when no node is focused (a focused note, editor, or browser still adjusts its font; terminals hand the shortcut to the shell). You can also zoom out much further — down to 1% — so Zoom to Fit All reaches large boards on smaller screens.
- Project-aware blueprints — Save a blueprint to a specific project or to your global library, and its file paths rebase to wherever you drop it. Projects now carry a color, too.
Changed
- New app icon — Refreshed the Terminal Graph icon in the Dock and App Switcher.
Fixed
- Project removal — Removing a project keeps its canvas content and workspace zones intact, and reactivating it restores cleanly.
- Duplicate project names — Projects that share a name are now told apart across blueprint pickers, the file tree, zones, badges, and recent projects by their shortest unique path.
- Worktree blueprints — Blueprints that create a worktree now recover on empty or uninitialized repos, and warn before an intentional downgrade.
- Terminal scaling across displays — Terminals stay correctly sized after switching display resolution or moving between standard and HiDPI modes — no more zoomed, clipped, or undersized surfaces.
New
- Browser hard reload — Hard-reload a browser node with
⌘⇧R (or ⇧-click its reload button) to bypass cached CSS/JS, handy when a local dev server keeps serving stale assets after a normal reload.
- Per-node cache control — Each browser node now has a Disable Cache toggle that skips the cache and fetches fresh on every load.
Fixed
- Browser error pages — Clearer messaging when a page can't load (e.g. a localhost server that isn't running), and reloading from an error page now works reliably.
- Worktree deletion — Deleting a worktree group now cleans up reliably.
- Project zone clicks — Clicking a project zone's empty background deselects nodes, the same as clicking empty canvas — but no longer clears your selection when you move or resize the zone.
- File opening — Files open as the right node type (source files in the editor, images your Mac can decode as image nodes), with clearer preview/open actions in the sidebar.
- Notifications in presentation mode — Jumping to a node from a notification now exits presentation mode first.
- Window opacity — Renamed the "Transparency" setting to "Opacity", and a fully transparent window stays clickable.
New
- Social sign-in — Sign in with your Google, Apple, or Bluesky account.
- Accessibility — Reduce Transparency turns the window and glass chrome solid; Reduce Motion stops the decorative animations (the wiring-mode flow, pulsing activity dots, and node shakes). Both apply live when you toggle the system setting.
Fixed
- App menu — Hide (⌘H), Hide Others, Show All, and Services are now in the app menu, and the Edit menu has Undo, Redo, and Cut — so ⌘H works, and ⌘Z / ⌘X work while renaming, editing notes, or typing in the editor node and command palette. A Full Screen shortcut (⌃⌘F) was added to the Window menu too.
Fixed
- Workspace title — The title bar name is larger, and its interactions work again: drag the title to move the window, or click it to rename. While renaming, clicking away now commits the name (and keeps your last keystroke) instead of dropping it.
- Browser cursor — The pointer no longer flickers over links and buttons on a browser page. The address bar shows a text cursor, and the nav buttons a pointing hand.
- Codex MCP setup — The Codex connect command in Settings → MCP used the wrong syntax. Fixed, so copying it now wires up the server correctly.
New
- Blueprint sharing — Blueprints are now portable. Export any blueprint to a
.blueprint file from its right-click menu, or drag it straight out to Finder, and pass it around however you like. Import one back from a file or a URL (a gist or raw link) — you'll preview its contents first, including any terminal commands it would run, and imports only ever save to your library, never run on their own.
- Fit to content — Double-click a node's title bar to snap it to the size of what's inside. Works on browser, note, editor, image, and video nodes, and stays clamped to the visible area; images and video keep their aspect ratio. Double-click again to restore the previous size.
New
- Multi-project workspaces — Open several project folders in one window. Each project gets its own colored region on the canvas, nodes are badged by which project they belong to, and the sidebar shows a combined file tree across all of them. Add a project from the File menu ("Add Project to Workspace…"), the canvas right-click menu, or by dragging a folder in, and you can wire dataflow across projects. Existing single-project windows carry over automatically.
- Configurable fonts — Choose your own terminal and interface fonts in Settings → Appearance. The terminal font stays monospaced and applies live to open terminals; the interface font can be any installed family, monospaced or not.
Changed
- Wiring Mode shortcut is now ⌘⌥L (was ⌘⌥D).
Fixed
- Cursor hit zones — Cursors near a node's edges now correctly tell resize zones apart from content and ports.
New
- Video nodes — Drop a video file onto the canvas and it opens in a new native Video Player node, with standard playback controls. Plays any format your Mac supports (MP4, MOV, and more), and you can point it at a file through its
path port.
Fixed
- Resize cursor flicker — The resize cursor no longer flickers while hovering near a node's edges and corners.
- Zoom drift — Zooming with ⌘ and the trackpad no longer lets the canvas drift off-target.
New
- Links that open in a new tab — Clicking a link set to open in a new tab now spawns its own browser node on the canvas.
Improvements
- More image formats — If your Mac can display an image, so can Terminal Graph. Image nodes now support any format macOS can decode (HEIC, TIFF, BMP, ICO, and more), not just the common web types.
- Built-in theme contrast — Tuned the bundled themes for better contrast and legibility, with some empty-canvas polish.
Fixed
- Resize handles at any zoom — Node resize hit targets now scale with zoom, so grabbing an edge or corner works whether you're zoomed way in or out.
- First node stays in view — The first node you add to an empty canvas now lands in the viewport instead of off-screen.
- Command palette scroll — Moving the mouse over the palette no longer makes the list jump while you scroll.
Fixed
- Group connection lines — Connection wires to nodes inside a group now stay in sync: they follow the group as you drag it (and during auto-pan), and get cleaned up when you delete the group, instead of lagging behind or leaving stray lines.
Note
This update includes a new app signature, so you won't be able to auto-update to it from an earlier version. Please download and install it directly from the website. This is a one-time step, auto-updates will work normally from here on.
Improvements
- No more worktree hitches — Git checks for worktree-bound groups and worktree-group deletion now run in the background, so the app stays responsive when you switch back to it (⌘-Tab) or delete a worktree group, instead of hitching or freezing for seconds.
- Lighter on big canvases — Terminals scrolled off-screen are no longer rendered, cutting cost on large graphs with many terminals.
- Accurate MCP server status — The status indicator in Settings now reflects the server's real state (no more getting stuck on "Starting…"), driven by actual events and agent traffic.
Fixed
- Editor save & close — The editor now warns before you can lose work: it confirms closing a file with unsaved changes, flags when the file changed on disk underneath you, and tells a failed save apart from a cancel.
Improvements
- Faster canvas — Panning and zooming are much cheaper: connection lines, the dot grid, and the minimap no longer redo work every frame, so frame rate holds up on large graphs with lots of nodes and connections.
- Redesigned context menus — Right-click menus for nodes, groups, and terminals are cleaner and more consistent: each group now has one coherent menu (no more separate title-bar vs. interior menus), destructive actions are tinted red, and you can now rename non-worktree groups.
- Richer MCP reads —
list_nodes and get_context now return node config, file-watcher paths, and connection waypoints, so agents can read back the full graph state.
- Atomic MCP workflows —
create_workflow now validates the whole plan up front and rolls back completely if any part fails, so a bad spec never leaves a half-built canvas.
New
- Smarter terminal notifications — Desktop notifications now show which node they came from — the node's title up top, the program's own title (like
Claude Code) as the subtitle — so multiple agents on one canvas are easy to tell apart. Click a notification to jump straight to that node.
- Dock attention badge — The Dock icon now shows a badge counting how many nodes need your attention.
- Copy Node ID — Right-click a node → Copy Node ID to put its ID on the clipboard, ready to paste into an agent or MCP prompt. Select multiple nodes to copy them all at once.
Improvements
- Minimap — Clearer status markers and a smoother resize handle.
- Terminal bell alerts — A terminal ringing the bell now flags its node for attention, the same way a finished command does.
Fixed
- Group nesting message — Clearer message and recovery when an action would nest groups, which isn't supported.
New
- Hold space to pan — Hold the spacebar and drag to pan the canvas, Figma-style. The cursor turns into a hand while you pan. (Space still types normally when you're focused in a terminal, editor, or note.)
Fixed
- Node focus — Deselecting a node now actually releases its focus instead of leaving it quietly capturing keyboard input, and clicking a node again reliably re-focuses it.
New
- Drag and drop images — Drop an image onto a terminal to feed it straight into the shell (handy for handing an image to Claude Code), or onto the canvas to create an image node. Images dragged from browsers, Slack, or the macOS screenshot thumbnail work even when there's no file on disk, and a highlight shows where the drop will land.
Fixed
- Open Anyway & permissions — Unsigned builds are now self-signed with a stable identity, so the "Open Anyway" prompt is available on download and macOS permission grants (folder access, microphone, notifications) persist across updates instead of resetting each time.
- Save on quit — Quitting with
⌘Q now reliably saves every open window's layout and working directories, instead of leaning on the periodic autosave.
- Editor restores your place — Reopened editor nodes return to your last cursor position, scroll offset, and code folding.
New
- MCP: target any window — Agents can now address a specific open window by id or project path.
list_workspaces reports every open window and which one is focused; previously every call hit the active window.
- MCP: region screenshots —
capture_canvas accepts an optional bounding box, so an agent can screenshot a specific canvas region — even off-screen — without panning.
Fixed
- Browser URLs — Browser nodes now load
data:, mailto:, file:, and other non-http schemes correctly instead of leaving a blank page.
- MCP argument handling — Structured workflow/group arguments, browser
url values, and data: URLs are no longer silently dropped, and malformed workflow connections now return a clear error.
New
- Terminal Alerts — Terminals can now flag when they need your attention: when a command fails, or when a long-running command finishes. The sidebar dot and minimap ring light up for the terminal that needs you, and clicking jumps straight to it. Toggle alerts per-terminal from the right-click menu, or set defaults in Settings → General.
- Jump from the minimap — Click any node in the minimap to focus and pan to it.
Fixed
- Account sign-in — Credentials now live in a config file instead of the macOS Keychain, so signing in no longer triggers repeated password prompts on launch or after each update. You'll sign in once more after updating.
Fixes
- The minimap centers your canvas. The scaled-down overview sat in one corner with empty space around it instead of filling the minimap area — hard to read on large graphs.
- Panning works on large displays. On big monitors you couldn't scroll along one axis: the margin around your content was a fixed size, and when that was smaller than the screen there was nothing left to pan to. The margin now scales with your viewport.
- Terminal nodes close reliably. Deletion no longer round-trips through Ghostty's close callback, which could leave a node — most often an ephemeral hook terminal — undeletable when the callback didn't fire.
Utility Nodes
Nine new dataflow nodes for building pipelines without writing code:
- Run — execute a command per input signal
- Collect — accumulate stream data into a single signal (bridge stream→signal)
- Gate — open/close valve that passes or blocks signals
- Delay — queue, debounce, or throttle signals
- Template — string interpolation with
{{mustache}} placeholders
- Switch — route signals to different outputs based on content matching
- Webhook — receive HTTP requests as signals
- Trigger — manual or interval-based signal source
- File Watcher — emit signals on file changes
All nine are available from the context menu, via MCP, and as blueprint-capturable nodes.
Terminal Notifications
New terminalgraph notify CLI command. Send macOS notifications from any terminal node:
terminalgraph notify --title "Build" "deploy complete"
MCP Improvements
- Improved server reliability — fewer timeouts and stalls under load
- Fixed node type serialization so
switch and file_watcher round-trip correctly
- Fixed JSON output to preserve forward slashes in paths and URLs
Other
- Added Terms of Service, Acceptable Use Policy, and updated Privacy Policy
- Updated documentation for Bezier connections, waypoints, stream fanout, and utility nodes
New
- Bezier connections — Wires between nodes now render as smooth S-curves instead of straight lines. Double-click a wire in wiring mode to add a reroute waypoint, then drag it to shape the path. Right-click a waypoint to remove it.
Fixed
- Stream fanout — Connecting one output port to multiple inputs now delivers data to all targets. Previously only one connection would receive each chunk.
- Group worktree cleanup — Closing a group with
Cmd+W during multi-select now prompts for worktree cleanup instead of orphaning git worktrees on disk.
- Config data loss — Fixed a race where settings could be overwritten with defaults if the app saved config before it finished loading from disk.
Fixed
- Auto-save — Canvas state now saves automatically as you work instead of only on quit. Force-quit or crash no longer loses your layout.
- Unbound windows — Windows opened without a project folder now save and restore their state across sessions.
Fixed
- Snapping near groups — Moving nodes near split-tree groups no longer snaps to individual group members. Groups snap as a single unit.
New
- MCP server — AI agents can control Terminal Graph over a localhost MCP server. Create, inspect, and manage nodes, connections, and groups programmatically.
- Accounts — Sign in with your internet.dev account, and help support development.
- Theming — Customize your workspace with TOML-based themes. Pick from built-in options or create your own in Settings (
Cmd+,).
Fixed
- Terminal duplication — Duplicating a terminal via right-click now copies the startup command.
New
- Hooks — Drop executable scripts in
.terminalgraph/hooks/ to run automation on workspace events (e.g. post-worktree-create). Hooks run in an ephemeral terminal with colored borders showing progress, success, or failure.
- Terminal context menu — Right-click terminal content for Copy, Paste, Clear, Reset Terminal, Close Node, and group/split actions. Respects mouse capture in vim/tmux.
- Split tree drag and drop — Drag a node out of a split tree to detach it, or drag an external node over a split tree to see a live preview of where it will land.
- Smarter node placement — New nodes, blueprints, and file drops now anchor at the cursor's top-left and automatically avoid overlapping existing nodes.
Fixed
- Worktree config refresh — Worktree titles now update automatically when a branch is created or commits land on a detached HEAD, both on app focus and every 30 seconds.
Improvements
- Default group size increased to 1400×800.
New
- Worktree names — Worktrees now have a display name separate from the branch, pre-filled from themed name packs (moons, islands, constellations, stations, ports, signals).
- Settings window —
Cmd+, opens a settings window where you can pick your worktree name pack.
- Detached HEAD worktrees — Leave the branch field empty to create a worktree at a detached HEAD. Title shows the short SHA.
- Blueprint worktree binding — Instantiating a blueprint that was captured from a worktree-bound group now prompts you to bind it to a new worktree.
Improvements
- Smarter blueprint capture — Blueprints always fold in live state (CWD, URL) now, including for group children. The capture mode toggle is gone.
Fixed
- Empty workspace — New workspaces now show the empty overlay instead of auto-creating a terminal node.
- Duplicate node connections — Duplicating a node no longer produces invisible or broken connection wires.
- New terminal CWD — Terminals created with
Cmd+N now start in the workspace root instead of sometimes picking up a directory from another window.
- Terminal node size —
Cmd+N now uses the same default size as right-click "New Terminal".
Fixed
- Note-to-terminal piping — Text sent from a note node's save port to a terminal now submits automatically instead of sitting in the input buffer waiting for Enter.
- Note save ports — Split the single
save port into save-content (markdown) and save-path (file path) so downstream nodes receive the payload they need.
New
- Microphone permission — Terminal apps that need audio input (e.g. Claude Code
/voice) can now access the microphone.
Fixed
- Worktree base branch — Creating a worktree without specifying a base branch now defaults to
main instead of failing silently.
New
- Folder management — New Ask dialog for picking a workspace folder, and the empty canvas overlay now surfaces recent folders for one-click reopen.
Fixes
- Presentation mode scroll — Scrolling inside a presented group now reaches the group's members instead of being swallowed by the group chrome.
- Blueprints in worktrees — Dropping a blueprint into a worktree group now retargets its paths to the worktree's working directory, so commands resolve against the right tree.
Fixed
- Sidebar file tree no longer crashes on deep or wide workspaces. Opening nested directories is now smooth and instant.
- Sidebar overlay no longer jumps when expanding directories.
Improvements
- Squared sidebar corners and a resizable sidebar width for a cleaner, more flexible chrome.
New
-
Groups — collect nodes into a container
with a layout strategy (freeform or split-tree). Groups can bind
to a git worktree so the group’s terminals, editors, and
watchers all share an isolated checkout.
-
Blueprints — capture a selection of nodes
(or a whole group with its layout) as a reusable blueprint, then
instantiate it elsewhere on the canvas. Saved per-workspace or
globally.
Improvements
-
Group titles now default to the layout kind instead of a generic
placeholder.
-
Grouping a selection into a split-tree now hugs the selection
bounds instead of expanding past them.
-
Quit and window-close now follow the same shutdown path, so
terminal/PTY teardown is consistent either way.
Added
Fixed
-
Focus newly created nodes automatically so you can start typing
right away.
New features
terminalgraph / tg CLI inside terminal
nodes
Send and receive data through connected canvas ports from any
terminal-node shell. The binary is auto-injected into the
node’s environment — no PATH setup.
-
tg ports — list port paths for the current
node
-
tg send "hello" — write to the node’s
stdout FIFO
-
tg run jq .name — run a command with
stdin/stdout piped through connected ports
-
tg help --agent — structured help output for
agents
Live dimensions overlay while resizing
Drag any node’s resize handle and a small overlay shows
current width × height in points. Terminal nodes also show
the live grid size in columns × rows, so you can size a
shell to an exact pty geometry instead of guessing.
Bug fixes
Port indicator debug panel now in release builds
Open the command palette (⌘K) and search for
Port Indicators to open a live-tuning panel for
port dot size, opacity, stroke, label position, and hitbox radius.
Changes apply to the canvas instantly. Previously debug-only.
Welcome to Terminal Graph. An infinite macOS
canvas where terminals, browsers, notes, editors, images, and
file-watchers live as draggable nodes. Wire them together, pipe
data between them, keep the whole shape of a project in one view.
Canvas
- Pannable, zoomable infinite canvas
- Workspace state persists across launches
- Focused node presentation mode
- Data connections between nodes
Terminals
- Ghostty-powered terminal nodes
- Cmd+click URLs and local file paths
- Text input port to pipe data into the shell
Editor & notes
- Monaco-backed editor with explicit save controls
- File-backed and fileless editor and image nodes
-
⌘= / ⌘− /
⌘0 to adjust font size
Command palette
- ⌘K to open, fuzzy-search every command
Quality of life
- Reopen recently closed nodes
- Sidebar file tree for project workspaces
- Native macOS titlebar, menus, and app icon
Known rough edges
-
App is not yet code signed. First launch requires an extra
“Open Anyway” step in
System Settings → Privacy & Security.