Launched this week

Zest
Hold ⌥Space, flick, and an AI agent does the dev chore
49 followers
Hold ⌥Space, flick, and an AI agent does the dev chore
49 followers
Hold ⌥ Space in any project and a Liquid Glass ring opens at your cursor. Flick at a slice and let go: Claude Code, Codex or your terminal takes the task, in its own git worktree if you want. When it's served, view the diff, merge it or yeet it. Runs locally.











Free Options
Launch Team

Atlassian LoomTalk it through in Loom. Ship with AI
Promoted
Hey Product Hunt 👋 I'm Meet, and I made Zest.
Why I built it: I ship Mac and iOS apps with Claude Code and Codex, and I kept typing the same prompts over and over: "take App Store screenshots", "push this to TestFlight", "review my diff before I commit". The agents were great. Getting the task to them was the slow part.
So Zest is one gesture. Hold ⌥ Space in any project and a Liquid Glass ring opens at your cursor. Flick toward a slice, let go, and that task goes to Claude Code, Codex, Gemini, Ghostty or a plain shell command. Background jobs ping you when they're "served ✦".
What's new in 1.0:
Five rings on one key: project, agents, git, utils, jobs. Keep holding and scroll to swap.
It knows where you are: Finder, Xcode, Cursor, VS Code, Zed and Ghostty, and it grabs the text you had selected.
Its own worktree: any slice can run on its own git branch, so your checkout stays clean.
The served ring: view the diff, merge it, yeet it, run it again, or keep going in Ghostty.
Race: the same prompt to Claude and Codex in two worktrees. Keep the winner's diff.
Fix what I see: screenshots the window you're stuck on and sends it to Claude with one line from you.
Make it yours: drop a .zest.yml in a repo to set your own slices, agents and prompts. Commit it and your whole team gets the same wheel.
Privacy: everything runs locally with your own Claude/Codex/Gemini logins. No servers, no account, and your code never leaves your Mac.
Pricing: 14-day free trial with everything unlocked, then $19 once for launch week (normally $29), on up to 3 Macs. No subscription. Needs macOS 26, because it's built on Liquid Glass.
I'd love to hear what you'd put on your wheel. I'll be here all day answering questions 🙌
The Race idea is the part I keep coming back to — sending the same prompt to Claude and Codex in separate worktrees and keeping the winner's diff. When both come back with different but working diffs, how do you pick the winner in the served ring — is it purely your eyeball on the two diffs, or does Zest surface anything like test results or diff size to help compare? And does the losing worktree get cleaned up automatically when you keep the winner?
@jcbuilds great question, and you pushed it into 1.1, which is out now 🍋 when a race finishes, "compare racers" shows each one side by side: files changed, +/− lines, time taken, exit status and the end of its log. add test: "npm test" (or any command) to your .zest.yml and each racer's worktree gets tested, so you see who passed before you pick. "pick this one" merges the winner and removes the losing worktree and branch for you. update from the menu bar or zest.dashovia.app
Anything that leaves the machine waits for a yes at our place, so can a slice in .zest.yml ask before it runs? Push to TestFlight on a flick is the one I'd put behind a confirm, the diff review can just go
@julien_zammit love this, and it's in 1.1, out now 🍋 add confirm: true (or confirm: "push to testflight?") to any slice in .zest.yml and a flick shows a "↩ yes / esc no" card instead of running. it's on by default for testflight, all + upload, ship it and git push, so the diff review still just goes. thanks for the idea 🙏 update from the menu bar or zest.dashovia.app
@meet_jethwa3 ha that was fast, thanks. On by default for git push is what I'd have picked too
@julien_zammit Please do share and comment