Widgets for agents.
Design a card, a table, a tree or your own widget once. Every MCP host your agents use renders it inline — claude.ai, Claude Desktop, ChatGPT, VS Code Copilot.
Sign in
Your widgets, themes, schemas, actions and keys — one catalog, served to every host.
Continue with email Continue with GitHub
No passwords stored. Two methods, one account — link the other later.
You're signed in
Signed in as . Your catalog is waiting.
Widgets, themes, schemas, actions, secrets and keys — every save is live on the next tool call.
How it works
Design in widgentic.dev
Sign in, start from a built-in card, table or tree — or a blank template — and save to your catalog. A live preview runs on every edit.
Create a key and connect a host
Point claude.ai, Claude Desktop, ChatGPT or VS Code at https://mcp.widgentic.dev/mcp with your key. Keys read your catalog; nothing else.
Ask
The agent calls render_widget; the widget appears inline in the conversation and updates in place as the data changes.
What you can design
Widgets
Cards, tables, trees or your own template — with a live preview on every edit.
Themes
Design tokens as a named theme; any host renders your palette, light or dark.
Data schemas
One shared shape, referenced by name from every widget that needs it.
Actions
Buttons that propose a message or call your API — declared as data, never code.
Secrets
Encrypted with a vault-held key, injected by name, never shown again.
API keys
Named, revocable, read-only by default; execute is opt-in at creation.
Design with your agent beta
For developers
@widgentic/coreThe contract, catalog, template DSL, theming and in-place rendering.browser + Node@widgentic/designerEmbeddable widget, theme, schema and action designers.browser@widgentic/mcpThe tool convention, server assembly, per-principal store and secrets.Node ≥ 22@widgentic/webmcpThe designers as WebMCP tools for the agent in your browser — agents draft, people save.browser · beta// npm i @widgentic/core @widgentic/mcp
import { createCatalog } from "@widgentic/core/catalog";
import { mountWidget } from "@widgentic/core/reactive";
import { extractWidgetPayload } from "@widgentic/mcp";
const catalog = createCatalog();
const found = extractWidgetPayload(toolResult, {
knownKinds: new Set(catalog.kinds())
});
if (found.found && found.ok) {
mountWidget(found.payload, container, { catalog });
}
Built to be trusted
- Writes happen only through a signed-in session — there is no agent write path.
- API keys never write; they read one catalog and can be revoked one at a time.
- Unknown or revoked keys fall back to the built-in catalog — never to an error.
- http actions run server-side behind an SSRF guard, with envelope-encrypted secrets injected by name.
- Templates cannot execute code: no scripts, no event handlers, no raw markup, no external references.