Zest · by Limeade Labs
Your product as a collection of intents
Start from what people come to do. Zest finds the calls it takes and puts the product in their AI app.
Free to connect and test against your own product. Publishing is Pro.
A person writes: Book a follow-up call Thursday at 9. Zest runs the intent book_follow_up and reads it back: book a follow-up call for p_0407 on Thursday 1 October at 09:00. The person says yes and the call is booked. The person writes: undo that. The booking is undone.
How it connects
Works where your people already are.
ChatGPT and Claude reach Zest through MCP and apps. Zest turns each intent into calls to the product API and sends a view back.
Reads back first
Every change waits for a yes.
Undo is real
A call to the product, not a promise.
Names stay home
The model sees references. People see the product.
Your sign-in
Your OAuth, login or token. People never see Zest.
How it works
From a spec URL to a published product, in four steps
Connect
Paste a spec URL. Zest reads what the product API can do.
Intents
Zest proposes the jobs people come to do. You keep, rename or drop them.
Views
Pick what each answer looks like in the chat, themed to your product.
Publish
One address for every AI app. People sign in the company’s way.
- Person
- p_0407
- When
- Thursday 1 October, 09:00
- Changes
- Adds one appointment to the schedule
- Agreed
- Yes, at 09:14
Read-back
Reads back before it acts
Nothing changes until the person says yes. Undo is a real call, not a promise.
The undo lands on Activity like any other call.
Activity
Every call, on Activity
What the AI app asked, what Zest sent, what the product answered, and what the model was allowed to see. Failures too.
- 09:14book_follow_up · p_0407200
- 09:11show_schedule · today200
- 09:07book_follow_up · p_0391409
- 08:58undo · a_1177200
- 08:51show_unpaid_invoices200
- 08:40move_appointment · a_1170200
- The AI app asked
book_follow_up { person: "p_0407", when: "Thu 09:00" } - Read back, agreedBook a follow-up call for p_0407, Thursday 1 October at 09:00. Yes.
- Zest sent
POST /appointments - The product answered 200 OK · 88 ms
{ id: "a_1182", status: "booked" } - The model saw
{ ref: "a_1182", person: "p_0407", status: "booked" }
Watch a call land before you publish.
Privacy
Names stay out of AI apps
References in the chat. Names stay in your product.
What the model sees
References, amounts| Invoice | Person | Amount |
|---|---|---|
| i_2231 | p_0407 | 120.00 |
| i_2236 | p_0412 | 60.00 |
| i_2240 | p_0419 | 45.00 |
What your people see
The product link| Person | Invoice | Amount |
|---|---|---|
| Ioana Marin | i_2231 | 120.00 |
| Radu Stan | i_2236 | 60.00 |
| Elena Pop | i_2240 | 45.00 |
Embed
In your own app too
One script tag. A signed token says who is signed in.
<script src="…/embed.js" data-token="SIGNED_IDENTITY_TOKEN" async></script>
Sandbox
Prove it on a real database
A demo clinic with its own database. Watch one call land in Activity and in the sandbox log, SQL included.
- Call
- c_5e1a
- Sent
- POST /appointments
09:14:03 c_5e1a POST /appointments 200 INSERT INTO appointments (patient_ref, starts_at) VALUES ('p_0407', '2026-10-01 09:00');
Guides
Ten short recordings, with chapters
Plan
Free to connect. Pro to publish.
Free
Connect and test against your own product.
- Connect the product API
- Intents, views and the theme
- Test chat and the embed on a page of your own
- Activity for the last 24 hours
Pro
Put the product in front of your people.
- Publish to ChatGPT, Claude and more
- The embed on your own domain
- Activity without limit, with undo
- Requests
- Branding
Start free
Put the product where people already ask.
Free to connect and test against your own product. Publishing is Pro.