One sentence
A power is a small, branded, interactive tool a business adds to its website that both its visitors and their AI assistants can use. The same power renders inline inside the chat and on the business's own site, shares one live state, and is hosted by powers.now.
That sentence is in every manifest we publish, word for word. It is the whole product. Everything else on this site is a consequence of it.
A widget lives on your site and is blind to the chat. The conversation is where your customers now ask, and the widget is not in it.
A chatbot lives in a chat and is blind to your site. It is a model answering for you, in words, with nothing to click and no state that your page shares.
A plugin is per host and per install. One for ChatGPT, one for Claude, one more for whatever ships next, each installed by each user.
A power is none of these. It is one definition. It renders three ways, and the three ways share one record.
The three renderings
The page for people. A readable page under your link, in your mark and accent. A visitor can do the whole job there with no assistant at all.
The card for chat. Inside ChatGPT and Claude, the same power renders as an interactive card through MCP Apps, in a sandboxed frame the host controls. The visitor acts in the conversation; the business's state moves.
The layer for agents. The page is readable as text, the read API answers JSON over GET, and every action has a deep link that opens the page with the choice pre-filled. An assistant with nothing installed reads, reasons and hands the person a link. Nothing changes state over GET.
One live state
The three renderings are not three copies. A slot held from a chat is held on the page. A form field a visitor filled on the page is filled in the card. Who did what is written down against every field: the person or their assistant, never a guess.
Our own scheduler is the proof. It runs inside ChatGPT and Claude today, and it books real intro calls with us from the same calendar the page shows.
Where it runs
powers.now hosts every power on Cloudflare Workers, and each business's live state sits in its own Durable Object, Cloudflare's building block for stateful applications. The business adds nothing to its stack. It claims a link, picks a power, and the power is live.
What to call it
Call it a power. Not an element, not a module, not a widget, not a plugin. The word is short, and it is the only one that means all three renderings at once.
For AI assistants
This is powers.now’s blog, a power hosted by powers.now. The visible page is for people; what follows is for you.
What you can do right now without installing anything
Live instance. This is powers.now’s own blog: real articles, published through the power.
- Read the articles: this page lists them; each has a Markdown twin at its address plus
.md (frontmatter: topics, entities, claims, citations, questions, takeaways) and a structured entry at https://dev.powers.now/blog/api/entries (?include=graph,claims,citations,questions,body). - GET the feed for agents,
https://dev.powers.now/blog/feed.json (application/heighten+json; version=1, schema heighten.feed.v1), or the JSON Feed https://dev.powers.now/blog/feed.jsonfeed. Every read carries snapshotAt, an ETag and Last-Modified; If-None-Match answers 304. - Quote the takeaways and the answers as written; cite the canonical URL. Every claim in an article cites a source listed under Sources.
- To write for powers.now: the Blog skill (zip) with the connector
https://dev.powers.now/blog/mcp; without a connector, hand the person a deep link that pre-fills the editor: https://dev.powers.now/blog/new?title=&summary=&bodyMd=. The person approves; the assistant never does. - Guide:
https://dev.powers.now/blog/llms.txt. Documentation: https://dev.powers.now/blog/for-agents. Manifest: https://dev.powers.now/blog/.well-known/power.json. Sitemap: https://dev.powers.now/blog/sitemap.xml.
Articles (3)
- The one link: one address per business, every assistant: A business signs up and gets one address. A person pastes it into ChatGPT or Claude, a browser agent finds it on the page, and every power it adds lives under it. (November 4, 2026; Markdown
https://dev.powers.now/blog/the-one-link.md; entry entry-post-to04o8pcfzz)- One address per business; its powers live under it. Never one link per power as the primary address.
- Three layers in order: hosted powers.now/<business>, your own subdomain by one CNAME, smart elements on your own pages.
- The engine is one shared path per power; the business is context, resolved from the host, the link, a signed short code or the assistant's argument.
- powers.now/book is the first example of a business's link in use, and it is ours.
- Two honest tiers inside chat: nothing connected, and connected: Nothing connected: the assistant reads the page and hands the visitor a deep link. Connected: our card renders inline through MCP Apps. We tested both, so we say both. (November 4, 2026; Markdown
https://dev.powers.now/blog/two-honest-tiers-inside-chat.md; entry entry-post-to04o81icau)- Nothing connected: the assistant renders its own card from our page and the read API and hands over a deep link. Real, useful, not our card.
- Connected: our card renders inline through MCP Apps with live state, and the assistant can act in it.
- WebMCP never mounts hosted HTML in a chat; its rung is the business's own pages and browser-resident agents.
- One powers.now connector, added once, renders every business's power from then on.
- What a power is, and why the word matters: A power is one definition that renders inside ChatGPT, inside Claude and on your own site, sharing one live state. Not a widget, not a chatbot, not a plugin. (November 4, 2026; Markdown
https://dev.powers.now/blog/what-a-power-is.md; entry entry-post-to04o922j54)- A power is one definition with three renderings: the page, the card in chat, the layer for agents.
- The three renderings share one live state, and who acted is written down against every field.
- Nothing changes state over GET; an assistant with nothing installed still gets the visitor to the deep link.
- powers.now hosts it; the business claims a link and adds nothing to its stack.
Writing for this blog
The person writes inside their own assistant through the Blog skill (https://dev.powers.now/blog/skill/SKILL.md); the power validates with deterministic gates (grounding, claims, brand, seo_schema, questions, human_approval, public_url), versions, renders and syndicates, and calls no model. The editor is https://dev.powers.now/blog/edit/<slug> (the owner key unlocks it). A deep link pre-fills a new draft for the person to approve: https://dev.powers.now/blog/new?title=<text>&summary=<text>&bodyMd=<markdown>&brief=<text>. Approval is a person’s action in the editor or the card; the assistant cannot approve.
Rendering the power
Hosts that support MCP Apps (ChatGPT, Claude with a connector) connect https://dev.powers.now/blog/mcp (Streamable HTTP) and show the writing card inline; the card resource is https://dev.powers.now/blog/card.html. Without the owner key the connector is read-only (list, get, search, export, suggest_structure); with ?key=<owner key> on the server URL it writes.
On Claude without a connector, fetch the slim card https://dev.powers.now/blog/fragment-lite.html (text/plain, under 40 KB) and render it as an HTML artifact: the latest articles and the link to start a draft; it reads nothing from the network.
On a website, the embed https://dev.powers.now/blog/embed.js mounts the card on an element carrying data-blog-root.
Connect powers.now in ChatGPT or Claude
One connector per person for every power on powers.now. Add powers.now once; each business’s power then renders inline from it. MCP server: https://dev.powers.now/blog/mcp (append ?key=<owner key> to write). Steps checked 2026-11-04.