Apps inside your chat
Ask your chat for an app. It builds it right there, on your own accounts. Then it keeps it, so you can open it again tomorrow.
Add it as a custom connector. That is the whole setup.
Ask for the screen you want. It runs on your own accounts.
Run your own MCP
Fork it and you have an MCP server on your own domain, under your own brand, with Sign in with One as its login. Every tool call runs on that person's own accounts, not a shared key.
- 1
Run it on the sample
The Acme Inc sample on :52290. No account, no keys.
$ git clone https://github.com/withoneai/forkable.git$ cd forkable/mcp && pnpm install$ cp .dev.vars.example .dev.vars$ pnpm dev - 2
Make one Connect app
In the One dashboard, Developers, Connect, New app. It is your login.
redirect https://mcp.acme.com/api/one/callback - 3
Deploy the Worker
The client id, secret and Connect key go in as Worker secrets.
$ npx wrangler secret put ONE_CONNECT_KEY$ pnpm deploy # wrangler deploy - 4
Add it to Claude or ChatGPT
As a custom connector. Your users sign in with One.
connector https://mcp.acme.com/mcp
mcp.acme.com stands in for your host. A workers.dev URL works too.
Your domain, your brand
Fork it, swap the name and marks, put it on your own domain. The code is MIT.
Each user, their own accounts
Sign in with One is the login. Every person connects their own tools, from the 1,052 apps in One's catalog.
One Worker, its own OAuth
The MCP endpoint, an OAuth server with dynamic client registration and PKCE, and the website. Claude and ChatGPT add it directly.
A start for any MCP
Keep the UI tools or swap them. Add your own in src/tools.ts, each one called on the person's grant.
One URL, then just ask
To use ours, there is no repo, no terminal and no deploy. It works in the chat app you already use.
Add one URL
In Claude or ChatGPT, add blocks.forkable.dev/mcp as a custom connector. Sign in with One and pick the accounts it may use.
Ask for a screen
Say what you want to see. The agent finds the actions on your accounts, writes the UI and runs it in the chat.
Keep it
Every UI is saved with its versions. Open it again in either chat app, or on the web at blocks.forkable.dev.
Six apps worth asking for
Each one starts as a single prompt. What renders below is the real code the agent writes, running here on the Acme Inc sample.
Ask for the screen you want. It runs on your own accounts.
Prep me for my next meeting: who is in it, my last emails with each of them, and draft an agenda from anything I still owe them.
Source: site/src/flows/meeting-prep.tsx, one TSX file on the kit the MCP gives every UI.
It lives past the chat
A chat answer usually scrolls away. These stay. Each one is saved with its versions and opens again wherever you are.


Your blocks
Every UI you asked for, in one list at blocks.forkable.dev.


Open it anywhere
On the web or in the other chat app, live on your accounts, any version.
- To
- leo@vandelay.com
- Subject
- Pricing for the Vandelay rollout
Writes ask first
A send or a change stops at the connector's Confirm, outside the generated UI. The UI itself cannot press it.
Open your blocks
Sign in with One on the web to see, rename or delete everything you made.
Software on request
A chat that answers with a working screen, wired to the tools you already use.
Nothing to install
One URL in the chat app people already use. No repo, no terminal, no deploy.
Your accounts, not a demo
Gmail, Calendar, Stripe, GitHub, any of the 1,052 apps in One's catalog, each signed in by you.
Made to fit the ask
Not a fixed widget. The agent writes the exact screen you asked for on a shared kit, so it still looks designed.
Yours after the chat
Saved, versioned and reopened anywhere. A chat answer becomes a small app you keep.
The screen runs in a sandbox inside the connector's frame. A write stops at the frame's own Confirm, and only that exact request runs, once.
11 tools, one kit
The agent sees these tools. The screens it writes import one small React kit, so every UI looks right in light and dark.
list_connectionswhat you connectedfind_actionssearch the catalogaction_docsread one actionui_guidethe kit and its rulesrender_uiwrite and run a screenupdate_uisave a new versionlist_my_uisyour saved screensshow_uiopen one againrename_uiname itdelete_uiremove itrun_actionthe screen calls your tools
Secured by One. You connect your own accounts and can revoke them any time.
Add it to your chat
Paste the URL, sign in with One, ask for your first screen. Want the whole app in your own repo instead? Fork the business it came from.