Edit what your agent wrote, right on the page.
Claude writes the one-pager in a minute. Then the hour goes to re-prompting: you ask for a shorter headline and the whole section comes back rewritten. Zest opens the page in your browser with an editor on top. Fix the words and pictures yourself, pin a note on anything bigger, and hand every note back to Claude Code in one round.
/plugin marketplace add Fresh-Context/zest
/plugin install artifact-editor@zest
Restart Claude Code, then /artifact-editor:edit opens a welcome page that teaches the rest in five
minutes.
Free, MIT licenseRuns on your laptopNode 18+, nothing else to install
You fix the small things. Your agent takes the rest in one round.
Every change says where it stands, in the same words everywhere: Saved to the file, Waiting for your agent, or Done in rev 2.
-
I
Change it yourself
Press E and click any words. Enter saves them to the file, and only the bytes you changed move, so formatting and comments survive. Click a picture to replace it, or paste a screenshot straight onto it.

-
II
Pin a note on anything bigger
Press N, click the part, and say what should change: "make this a table", "this section is too long". The note keeps the element, its line in the file and a picture of it, so your agent knows exactly what you meant.

-
III
Hand them over
Press Submit. Claude Code works through every note on your laptop while each part you asked about pulses, and each one stops as it is done. Before Submit is set up, which takes a minute once, copy the prompt and paste it into Claude Code.

-
IV
Read the answers
The page reloads with the changes, and every note carries your agent's answer. Zest keeps a version before every save, so anything can come back.

Everything a page needs before it leaves your laptop.

Pictures from four places
Your project's own images, a free starter library, 800 million
openly licensed images through Openverse, and generation with your own OpenAI or Google key. Whatever you
pick is copied into assets/, so the page never hot-links anyone.

A check before you send it
Links that go nowhere, images loaded from other sites, missing alt text, a leftover "Lorem ipsum" or "[Company]", a missing share card. Safe fixes are one click.

Decks, as decks
A deck of HTML slides gets a slide list, order, timing, hidden slides, a talk track and a storyboard, all written to the source file.
- Versions. A copy before every save and before every outside change, the last 100 per file.
- One file out. Every image, stylesheet and script inlined into one HTML file you can email or publish.
- Canva for layout. Send one section to Canva, rearrange it there, and your agent brings it back.
- A brief. Who reads the page and what it should move them to. Your agent reads it before every round.
Your team's rules live in the repo, where they get reviewed.
A rule that lives in someone's head is a rule the next round breaks. So Zest reads a zest.json that
sits beside your pages: the brand voice, the facts every page must agree with, the words nobody may use and the
logos nobody may swap. Every round your agent runs reads them in the same order: brand, then canon, then the
page's own brief.
We call this layered context, and we treat it like a codebase: one file, one review, one history. It is how we run our own pages at Fresh Context.
{
"context": {
"brand": "brand.md",
"canon": "canon.md"
},
"lint": [
{ "find": "utilize", "say": "Write use." }
],
"protect": ["assets/logos/**"],
"built": [{
"match": "decks/*/index.html",
"source": "deck.src.html",
"build": "python3 build.py"
}],
"checks": [{
"name": "House style",
"run": "vale --output=JSON {file}"
}]
}
What your security team will ask, answered.
Forward this part to whoever approves tools. The full account is in Security and the threat model.
- Where does it run?
- On the laptop, as a server on 127.0.0.1. Pages, notes and versions stay in your own folders. There is no account and no telemetry.
- What can it run?
- Nothing a repo asks for until a person approves that exact command in that exact folder. Change the command and it asks again.
- What can a run touch?
- Files in the page's own folder, and Zest's own commands. No web, and no MCP servers unless an extension your team approved adds one. A spend cap and a turn cap stop it.
- What does it send out?
- Only what someone asked for: a search, a download, a generation with their own key, and one daily check for a newer release. The editor lists every call it made.
- Can IT lock it down?
- One policy file turns off Submit, generation, team extensions, the release check or all network access, and the editor says so wherever it matters.
- What is in it?
- Node built-ins and plain JavaScript, with no dependencies to audit. Tests run on macOS, Linux and Windows on every change.
The harness stays. The tools change.
Zest is the harness: one local server, one way to keep notes and rounds, one set of rules in the repo. The tools on it get plain names and a date, because the way people work with agents changes every few months. When a better tool ships, your notes, rules and history carry over.
Zest checks once a day for a newer release and says so when you open Claude Code.
Artifact Editor October 2026
Edit any HTML page your agent wrote, then hand your notes back to it.
The next tool
It gets its own name and date when it ships. Watch the repo to hear first.
Two lines, then open the welcome page.
/plugin marketplace add Fresh-Context/zest
/plugin install artifact-editor@zest