The open format and social catalog for apps that run inside AI.
thinklet.io · Catalog · Docs · Discord
Every platform that matters has an app ecosystem. Chrome has extensions. VS Code has plugins. The App Store has apps.
MCP clients — Claude, Cursor, Windsurf, ChatGPT — are becoming platforms. Thinklet is the open format and social catalog for the apps that run inside them.
One MIT spec. One install command. 12,000+ apps built by the community — search, remix, or publish your own without leaving your AI.
Thinklet is two things:
1. An open spec (MIT). A Thinklet is a single React component with two props: content (your app's persisted state) and updateContent (writes state back). State survives conversation restarts, browser refreshes, and device switches. Zero backend. No deploy.
2. A social catalog. 12,000+ Thinklets built by the community. Open in one message. Remix with lineage. Publish and get credited.
export default function MyThinklet({ content, updateContent }) {
const count = content.count ?? 0
return (
<button onClick={() => updateContent({ count: count + 1 })}>
Clicked {count} times — this number survives forever
</button>
)
}"It feels like what Custom GPTs should have been." — Hacker News
npx @thinklet/mcp installThat's it. Then open Claude and say:
Open the expense tracker Thinklet
Build me a habit tracker and save it as a Thinklet
Remix that kanban board to track my job applications instead
Your apps open instantly, remember everything, and never ask you to redescribe them.
content is a plain JSON object managed by TQL (Thinklet Query Language). When you call updateContent, TQL writes the delta back to the platform. The next time you open the Thinklet — in any conversation, on any device — your data is there.
const { todos = [], filter = 'all' } = content
// Add a todo
updateContent({ todos: [...todos, { id: Date.now(), text, done: false }] })
// State survives:
// ‚úì Closing the conversation
// ‚úì Browser refresh
// ‚úì Opening from a different device
// ‚úì Sharing with a teammateNo localStorage. No API calls. No database setup. Just a prop.
The @thinklet/mcp server gives Claude 7 tools:
| Tool | What it does |
|---|---|
discover_thinklets |
Search the catalog by query, category, or sort |
get_thinklet |
Fetch a Thinklet by ID |
open_thinklet |
Render a Thinklet inline in the conversation |
save_thinklet |
Save to your personal library |
remix_thinklet |
Fork with new instructions, lineage preserved |
publish_thinklet |
Ship to the public catalog |
list_my_thinklets |
Your library |
You never leave Claude. One message to open. One message to save.
import { useAIStreaming } from '@thinklet/hooks'
export default function ResearchThinklet({ content, updateContent }) {
const { stream, isStreaming } = useAIStreaming()
const analyze = async () => {
const result = await stream(`Summarize: ${content.notes}`)
updateContent({ summary: result })
}
return (
<div>
<p>{content.summary ?? 'No summary yet'}</p>
<button onClick={analyze}>{isStreaming ? 'Thinking...' : 'Analyze notes'}</button>
</div>
)
}Multiple streams run in parallel. Use this for multi-agent patterns inside a single Thinklet.
The spec and MCP are free and open source. The cloud platform at thinklet.io adds:
| Feature | Free | Starter ($10/mo) | Creator ($25/mo) |
|---|---|---|---|
| Browse public catalog | ‚úì | ‚úì | ‚úì |
| Create & save Thinklets | 20 credits | 100/mo | 250/mo |
| AI models | Claude | Claude + GPT-4o | All 11 models |
| Private Thinklets | — | ✓ | ✓ |
| RAG (document attachment) | — | — | ✓ |
| Publish to catalog | — | ✓ | ✓ |
| Remix community Thinklets | — | ✓ | ✓ |
| Analytics | — | — | ✓ |
thinklet/
├── spec/
│ ├── component.md ← Component contract
│ ├── tql.md ← TQL persistence spec
│ └── ai-streaming.md ← useAIStreaming hook spec
├── mcp/
│ ├── src/
│ │ ├── index.ts ← MCP server entry
│ │ └── tools/ ← Tool implementations
│ └── package.json
├── examples/
│ ├── counter.tsx
│ ├── expense-tracker.tsx
│ └── kanban-board.tsx
└── LICENSE
| Thinklet | What it does |
|---|---|
| Competitor Intel | Track competitors, news, and positioning — data persists across sessions |
| Expense Tracker | Log and categorize expenses — your history never disappears |
| Kanban Board | Manage tasks inside Claude — cards stay exactly where you left them |
| Daily Habit Log | Track habits with streaks — survives every conversation restart |
Browse 12,000+ more at thinklet.io/explore.
The spec and MCP are open to contributions.
- Spec changes — open an issue first, then PR
- MCP bugs — PRs welcome, include a test case
- Example Thinklets — always welcome in
/examples
See CONTRIBUTING.md.
The spec being MIT means:
- Any MCP client can support Thinklets — not just Claude
- Developers can build tooling on a stable, community-owned format
- The catalog grows without a gatekeeper
- If we disappear, your apps don't
The cloud platform funds the project. The spec belongs to everyone.
MIT © Thinklet
