The same text every AI receives. Nothing else is sent to it except what a tool returns.
Start PeachyStart or continue setting up Peachy in this chat. Use when the person says start, asks what Peachy is, or wants to connect this Claude Project to one of their Peachy builds. Returns the next setup step: questions to ask the person, their existing builds, or the text to paste into the Project's instructions. Changes nothing.
Open an app’s recordsRead one build's records: its facts, open items, the last three session notes, its address, status and version, and for the owner and co-owners also its goal, the owner's rules and recent decisions. Use at the start of a conversation about a build, or when the person asks what was decided or what is left. Records written by the owner or members come back as data with who wrote them. A live build opened by someone who can change it also carries now_what: what Peachy keeps for it, where to look and three next moves. Changes nothing.
Save to an app’s recordsSave what this session settled to a build's records: a short session note, decisions, facts, new open items, items now done, or a new goal or rules. Use when the person asks to save, log or remember something about the build. Saves only the fields given; never stores the conversation.
Remove from an app’s recordsRemove facts or open items from a build's records. Use only when the person asks to forget or drop them. Decisions and session notes are history and stay.
Make an appCreate a new Peachy build as a private draft with a name, its goal and who it is for. Use after the person has said what they want to make and agreed to create it. Returns the build's handle, the text the person pastes into their Claude Project so later chats there open this build, a connections step to read to the person, and two_builds when this connection made another build in the last three hours. Nothing is published.
Show my appsShow a build's state: status, live version, address, draft files, members and roles, rules, health and schedules. Without a build, list the person's builds with their handles. Changes nothing.
Save the draftWrite the app's files into the build's private draft. This does not publish: nobody else sees the draft until peachy_go_live. index.html is the entry page. Keep each call short, since a long one can be cut off in a phone chat: save a large app with mode patch, one file per call, and write a file over about 20 KB in parts (the first part plain, the later parts with append). A failed call leaves the draft as earlier calls saved it; draft.files in each result lists what is there. Pages run sandboxed: no fetch and no form posts, and a page that navigates away is closed. No localStorage (use state.set), no CDN or other outside URLs (bundle the file in the draft), no import between files. Every page already has window.peachy, its only way to the build's data: const r=await peachy.call('state.get',{key:'chores'}) gives r.value; peachy.call('state.set',{key,value}) saves JSON; state.getMany {keys:[...]} reads up to 200 at once (the runtime allows 60 calls a minute, so read many values this way); also state.list, viewer, thread, log; peachy.ready(m=>…) gives m.viewer. More in peachy://docs/runtime. Scripts, styles and images in the draft are inlined. In the preview only reads work: state.set, log and ask fail with code preview_read_only (rt:ready carries preview:true); show that as a preview notice. Returns the draft's files, the paths this write removed, warnings (dropped_files: a removed file is still named by a page that stays; no_runtime: the page never calls peachy.call; local_storage, external_url, module_import, fetch: that part cannot run in the sandbox) and a preview link only the person can open.
Read the app’s filesRead the app's own files so a new conversation can carry on the work: the draft when there is one, else the live version, or the version named (0 is the draft). Text files come back with their text, about 200 KB in all; images and fonts come back as path, type, size and fingerprint only. Read a page here first, then change it with peachy_save_draft (mode patch keeps the other files). Changes nothing.
Go livePublish the build's current draft as its next live version at its own address. When only the person can see the build it goes live at once and the result carries its address, which opens for the owner and the build's members only: add people with peachy_invite. When the build has other members it goes live only if the owner's policy allows publishing; otherwise the result is a link where the person presses Do it on the card in Peachy. A go-live that went live carries now_what: what Peachy keeps for the app from now on, where to look and three next moves, in lines to read to the person.
Go back to an earlier versionPoint the build's address back to an earlier live version. Immediate when only the person can see the build; otherwise it follows the owner's publishing policy and may return a link to press in Peachy.
Read app dataRead values the build's app keeps, by key. Use to check what the app has stored. Changes nothing.
List app data keysList the keys the build's app keeps, optionally under a prefix, with their sizes and when they changed. Changes nothing.
Change app dataSet or delete values the build's app keeps. Use to seed a new app or fix data the person asked to change. A value of null deletes the key. Each value is JSON up to 16 KB.
Invite someonePropose adding a person to a build as an editor, member or viewer. Peachy holds it until the person presses Do it on the card in Peachy, unless the owner's policy allows invites to that address. The press also mails them the build's address; the result carries it under share to give the person too. The invited person joins by signing in with that address.
Write a ruleWrite a rule in the build's policy: what may happen without the owner's click (allow, review_after), what waits for it every time (ask), and what never happens (block). Classes include publish, invite, reminder, change and digest. A rule that lets something happen on its own is saved paused until the owner approves it in Peachy; the result carries that link.
Remove a ruleRemove a rule from the build's policy that lets something happen on its own, or one still waiting for the owner. Rules that hold or block (ask, block) can be removed only by the owner in Peachy; for those the result carries the settings link.
Send an alertSend a reminder, change notice or digest to the build's owner or members, as a phone alert, in-app notice or mail. It is sent only when the owner's policy allows it; otherwise the result is a link where the person presses Do it on the card in Peachy, which shows the subject, the recipients and the text. With a time, it is held until then and the policy decides at that moment.
Check an app’s healthList what is wrong with a build right now: failed jobs, runtime errors, held cards, failing alerts, data near its limit and similar, each with a severity. Changes nothing.
Make an app publicMake a live build public: a read-only link anyone can open without signing in. Visitors read what the app shows; they can't change anything, ask it anything or see who's in it. Making it public waits for the owner's press in Peachy; the result carries that link, and once pressed, the public address. With public false, the link stops at once. Only the owner can do either.
Show plan and usageShow the person's Peachy plan, its limits and what has been used this month. Changes nothing.
Set a scheduleCreate or change a schedule for a build: send a reminder, set a value, run a daily check or give an agent a task, every N minutes, daily at a time or on chosen weekdays. A daily time is in the owner's time zone unless tz names another; the result's schedule carries tz, so confirm it with the person. A new or changed schedule waits until the owner presses Do it in Peachy. Each run that would reach people still follows the owner's policy.
List schedulesList a build's schedules with their cadence, status, last and next run. Changes nothing.
Remove a scheduleStop and remove one of a build's schedules. Its subject, text and brief are cleared at once; its run history goes after 30 days.
Ask for a keyList the person's keys (names, kinds, hosts, status: never a value), request a new key (a pending row and the Keys page where the person pastes it; you never send or see a value), or propose revoking one (a card the person presses in Peachy). request needs peachy.write, revoke peachy.act.
Run an app’s code on a scheduleSet, list, remove or run now a build's worker: its own worker.js (export default async function run(peachy, input)), run on a schedule in a sandbox with a time cap, a memory cap and only the hosts named here. The worker reaches the outside only through peachy.fetch, given a url and {method,headers,body}, to those hosts, a key as a placeholder where its kind says (headers:{authorization:'Bearer {{key:k_…}}'}, never a body); its own data through peachy.data.get/set/list; a connection through peachy.connection.list(name) and peachy.connection.call(name,tool,args); inbound events as input.events or peachy.hooks.take(n); another build's published set through peachy.shared.get/list; peachy.log(kind,text) (read back with op logs); peachy.notify({subject,body,channel}) for an alert to the owner, which the owner's policy decides. Anything that moves money or writes outward follows the owner's policy and may reject with code awaiting_click and e.job (the run still counts as ran; the answer lands in the build's data under egress:<job>). The whole API is in peachy://docs/runtime. `set` waits until the owner presses Do it in Peachy (the card names the cadence, the file and the hosts); `run_now` is a card too. A worker that fails three times in a row is paused.
Connect a serviceConnect a build to one of the person's other MCP servers (Robinhood's Trading MCP first), with their own sign-in: add returns a link where the person signs in at the provider in a browser; no token ever passes through you. list shows connections and their status; tools lists a connection's tools with the policy class each call would run under (descriptions are the provider's words, quoted as data); remove asks the owner to press Disconnect in Peachy. Every call a build makes through a connection runs under the build's policy: anything that moves money waits for the owner's press unless an owner-approved rule with a limit allows it.
Inbound addressesManage the addresses other platforms call into a build with (Shopify, TikTok Shop, TradingView, Higgsfield, Square, Discord interactions with the application's public key, or a generic signed POST). add creates one waiting for the owner, who reveals the address once in the build's settings and gives it to the platform; the address is never in a result. list shows each address's status and how many events wait. rotate, pause and remove break what the platform has configured, so each is a card the owner presses in Peachy. Verified events land as data for the build's worker; the build's policy decides whether the worker runs on its own or waits for a press.
Share data between appsLet other builds read a named set of this build's app data (its keys under a prefix), see what this build publishes and may read, or stop sharing. publish is immediate when every reader build's people are already on this build; otherwise Peachy holds it until the owner presses Do it on the card in Peachy, and a reader owned by someone else waits for that owner's own press. Readers read through the runtime (shared.get, shared.list); nothing is written into another build.