Sandboxed HTML mini-apps for the Moltamp cockpit shell — clocks, system monitors, audio visualizers, mini games, and more for Claude Code, Codex CLI, Gemini CLI, and Aider.
Download Moltamp · Browse the Gallery · Widget Spec · Contributing
This is the open-source widget library for Moltamp — a skinnable cockpit UI for AI coding terminals like Claude Code, Codex CLI, Gemini CLI, and Aider. Widgets are bite-sized HTML pages that live in Moltamp's side panels and vibes banner — clocks, system monitors, weather, notes, audio visualizers, mini games, anything you can build with HTML, CSS, and vanilla JS.
Every widget runs in a sandboxed iframe with no network access. Data flows in through a typed SDK bridge (moltamp.call(), moltamp.subscribe(), moltamp.poll()), and colors come from the active skin's CSS variables — so your widget automatically retones for every theme without a single line of extra code.
If you want a Claude Code companion that feels alive — vibe coding alongside a CPU graph, a lo-fi visualizer, and a Pomodoro timer — this is the place.
Keywords: Claude Code widgets, AI terminal widgets, terminal dashboard, Moltamp widgets, vibe coding, system monitor widget, Codex CLI widgets, Gemini CLI widgets, Aider widgets, developer tools.
| Widget | Category | What it does |
|---|---|---|
| System Stats | System | Live CPU, memory, activity level, and shell state |
| Your widget here | — | Submit a PR |
Browse every community widget (with live previews) at moltamp.com/community.
moltamp-widgets/
├── widgets/ <- One folder per widget (drop-in installable)
│ └── system-stats/
│ ├── widget.json
│ └── index.html
├── WIDGETS.md <- Full SDK + manifest spec — read this first
├── CONTRIBUTING.md <- PR checklist + review criteria
└── README.md
Inside Moltamp (recommended):
Settings → Tabs → Import Widget → pick the widget folder or
.zip.
From the command line:
git clone https://github.com/shoot-here/moltamp-widgets.git
cp -r moltamp-widgets/widgets/system-stats ~/Moltamp/widgets/Restart Moltamp (or switch tabs) and the widget appears in your widget picker.
A widget is two files in a folder:
my-widget/
widget.json <- manifest
index.html <- bare HTML fragment (no <!doctype> wrapper)
assets/ <- optional: images, fonts, sounds
widget.json
{
"id": "my-widget",
"name": "My Widget",
"version": "1.0.0",
"description": "What it does, in one line.",
"author": "Your Name",
"category": "Custom",
"api": {
"ipc": ["system.getStats"],
"stores": ["telemetry.activity"]
}
}index.html
<div id="root"></div>
<style>
#root { padding: 8px; color: var(--c-chrome-text); font: 11px monospace; }
.value { color: var(--c-chrome-accent); }
</style>
<script>
(async function() {
var root = document.getElementById('root');
moltamp.poll(3000, async function() {
var stats = await moltamp.call('system.getStats');
root.innerHTML = '';
root.appendChild(moltamp.el('div', {}, [
moltamp.el('span', { color: 'var(--c-chrome-dim)' }, 'CPU '),
moltamp.el('span', { color: 'var(--c-chrome-accent)' }, stats.cpu.usagePct + '%')
]));
});
})();
</script>That's a working widget. The full SDK reference, available IPC channels, store subscriptions, lifecycle hooks, and Canvas tips all live in WIDGETS.md.
Point Claude, ChatGPT, Codex, or any LLM at WIDGETS.md — it includes a "Common Mistakes" section with the top 10 gotchas AI tools hit, plus complete code examples for each. The sandbox catches most dangerous mistakes (network calls, cross-origin access, ES module imports), so AI-generated widgets are safe by design.
- Fork this repo
- Create
widgets/your-widget-id/withwidget.json+index.html - Add a
preview.pngscreenshot - Run through the checklist in WIDGETS.md and CONTRIBUTING.md
- Open a PR — we review weekly
Merged widgets ship in the next Moltamp release and appear in the in-app picker plus moltamp.com/community.
MIT — use, fork, remix, ship. Attribution appreciated but not required.