Launching today

Trellis
More than a terminal: a native macOS workspace for devs
49 followers
More than a terminal: a native macOS workspace for devs
49 followers
Trellis is a native macOS terminal that's more than a terminal: windows, tabs and splits in a sidebar, saved SSH hosts, one-click project tasks, a command palette and scratchpad, plus a CLI and MCP server so scripts and AI agents can drive it. Free, MIT.






Free
Launch Team

CloudflareYour next app belongs on Cloudflare Workers. Deploy for free
Promoted
Hi Product Hunt! 👋
Most terminals stop at "a window with a shell in it." I wanted one place for everything I do around the shell, so I built Trellis, a native Swift app for macOS:
Smart Workspace, not just tabs: managed windows in a sidebar, color-labeled tabs, nested splits, and sessions that can keep running after you quit or saved in a file.
Laundpad: run .trellis/launch.json tasks from the pane header and check your layout into the repo
Hosts at hand: a saved SSH library plus ~/.ssh/config discovery, with optional Keychain passwords
Command Pallete: Everything in one search: ⇧⌘P finds any action, window, tab, saved host, task or theme
Private and Native: no telemetry, and terminal output and typed input are never logged.
A scratchpad beside your panes: write a script with syntax highlighting, check it, run it in the focused pane, or save it as a task
It's free and MIT-licensed. I'd love your feedback on what a terminal should do beyond being a terminal.
The .trellis/launch.json idea is what caught my eye — checking a layout into the repo makes the workspace reproducible in a way tabs never are. How do you handle the parts that don't travel well between machines, like absolute paths or a task that only makes sense on one person's setup? And with the MCP server, can an agent only run those checked-in tasks, or can it open arbitrary panes and hosts too?
@jcbuilds It does not matter where the code is checkout. it opens relative paths and commands. Right now and agent can only open windows, panes and hosts but we quite easily add the ability to run tasks in the next versions.
Turning a scratchpad command into a saved project task is a nice detail. That's usually the point where a one-off command becomes something the rest of the team needs too.
@oleksii_sekundant Is is also a quite an handy feature to build up commands on the fly.