TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
Build it. Rehearse it. Own the room. Kadal Deck has your back from first idea to last applause: AI to build it, tools to rehearse it, and a live room to own it. Open-source MDX slides, a phone remote, polls and Q&A from the audience's phones.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A talk is more than its slides. You need an outline that holds, slides that look the part, a few
run-throughs out loud, the right notes in front of you on the day, and a room that stays with you
to the end. Kadal Deck is built for all of it. You write the deck in one deck.mdx file, with AI
beside you if you want it; you rehearse it with the deck reading your notes and keeping time; you
present it with your phone in your hand; and the audience joins from theirs to vote, ask and react.
The engine is open source, and hosting is free for public decks.
Start from an idea, not a blank slide.
kadal-deck CLI, or in the browser builder: edit right on the slide, and drop in emoji,
icons, stickers, shapes, free photos, GIFs and memes from the media panel.Practise out loud until it's yours.
Walk on stage with everything at your fingertips.
Keep every seat with you.
Open source, on your side. The engine is AGPL. One deck.mdx, in git, published with one command. AI on your own
key: nothing sold, no lock-in. Hosting is free for public decks,
with paid plans from $4 a month.
You need Node 20.19 or later.
npm create @kadal/deck@latest my-talk
cd my-talk && npm install
npm run dev # http://localhost:5173: edit deck.mdx and the slide you're on updates in place
A deck is one deck.mdx file: Markdown, split into slides at ---, with components when you need
them.
---
title: Hello, room
theme: ocean
---
# Hello, room
---
## One point at a time
<Clicks>
- Slides split at `---`; a slide below this one starts at `----`
- Code steps line by line, and the notes follow your clicks
</Clicks>
---
<Poll id="lunch" question="Lunch?" options={["Dosa", "Biryani", "Both"]} />
When it's ready:
npx kadal-deck build # dist/: a static site for any host, works offline
npx kadal-deck export # PDF in export/ (add --png or --pptx)
npx kadal-deck publish # a URL on deck.kadal.cc with a live room (free plan)
Rather not install anything? Write it in the builder on
deck.kadal.cc. Already have a Slidev or reveal.js deck? npx kadal-deck import slidev slides.md or
npx kadal-deck import reveal index.html converts it and writes a report of anything that didn't
carry over.
| Writing (docs) | MDX slides, 19 layouts with named slots, frontmatter per slide, src: includes, glossary terms the compiler links on first mention |
| Clicks and motion (docs) | <Click>, <Clicks>, at="+2", notes that follow your clicks, 7 transitions (a different one in and out if you like), auto-animate, <Motion> |
| Code (docs) | Shiki highlighting stepped line by line, magic move, Monaco editors, runnable JS/TS/Python, TwoSlash hovers, code groups, snippet imports |
| Maths, diagrams, sketches (docs) | KaTeX at build time, Mermaid in the deck's colours, Excalidraw drawings revealed region by region |
| Looks (docs) | 17 themes in light and dark, 28 built-in backgrounds (most of them animated), the Pro library of 95 backgrounds and layouts on deck.kadal.cc, 200,000 icons through Iconify, Tailwind |
| Any framework (docs) | React and web components built in; Vue, Svelte, Solid, Preact, Qwik, Angular, Fresh, Rust/WebAssembly and Python as islands, each loaded only when its slide appears |
| Rehearsing (docs) | Narration that reads the notes and turns the pages, per-slide timings with a pacing badge, a teleprompter window, glossary cards |
| () |
The Pro library. 95 backgrounds and layouts in 15 genres — board-pack covers, KPI boards, magazine spreads, terminal covers, lecture outlines, synthwave grids, wedding invitations — each in light and dark, each wearing your deck's theme. One line of frontmatter picks one:
---
layout: pro/kpi-board
background: pro/neon-drift
---
The library renders on decks published to deck.kadal.cc from a
Pro or Team workspace. Anywhere else — a static build on your own host, or the free plan — a
pro/ name falls back to the theme's own background and the default layout, so the slide still
reads; only the dev server says why, in a small chip. Every item, moving, in light and dark:
deck.kadal.cc/library.
Built in, free everywhere. 28 backgrounds ship with the engine — background: aurora, or
<Background name="aurora" /> inside a slide — most of them animated, all paused off-slide and
still under reduced motion. A few of them:
Sixteen themes, each in light and dark where it makes sense. Three are built in; the rest are
packages you install and name in the headmatter (theme: ocean). Browse them all at
deck.kadal.cc/themes.
Classic, seriph, crisp, bricks and shibainu are ports of the official Slidev themes, MIT-licensed,
with credit to their authors in each package. npm create @kadal/deck@latest -- --theme <name>
starts a theme of your own; the contract is THEMES.md.
Kadal Deck is built to be written by an agent as well as by you: a skill that teaches the format, an MCP server that edits slides line by line and renders them so the agent can look at its work, and a CLI whose every command answers in JSON. Guide: AI agents.
/plugin marketplace add kadalcc/deck # Claude Code: the skill and the MCP server together
/plugin install kadal-deck@kadal-deck
npx skills add kadalcc/deck # the skill alone, for any agent (skills/kadal-deck)
claude mcp add kadal-deck -- npx -y @kadal/deck mcp # the MCP server alone
For Claude Desktop, Cursor and VS Code, point the client at npx -y @kadal/deck mcp. The server
works in the folder it starts in (or --dir <path>) and never reads or writes outside it unless
started with --allow-outside.
| MCP tools | |
|---|---|
deck_reference, deck_frontmatter_schema | every component, layout, background and option, from the engine's own catalog |
deck_create, deck_outline, deck_read_slide, deck_check | scaffold, read the deck as structure, lint it |
slide_add, slide_update, slide_remove, slide_move, deck_update_frontmatter, notes_set | edits that change only that slide's lines, linted on the spot |
slide_render, deck_preview | PNGs of slides from a dev server kept running between calls, and a live URL |
deck_build, deck_export, deck_publish | a static site, PDF/PNG/PPTX, and a published deck |
media_search, media_trending, media_used | icons, emoji, stickers, GIFs, memes, meme templates and Kadal's own library, each with the MDX to insert and its credit (credits: true lists them all on a Credits slide) |
Hosted decks, from any agent. The hosted service runs a remote MCP server at
https://deck.kadal.cc/mcp (OAuth; you pick one workspace and can make the connection read-only).
It lists and inspects your published decks, reads a talk in progress (current slide, polls,
questions by votes), changes titles, visibility and passcodes, rolls back versions, makes share
links, and quick-edits and publishes decks through the web builder without ever overwriting newer
work. Add it as a custom connector in Claude, ChatGPT or Cursor, or with
claude mcp add --transport http kadal-deck-hosted https://deck.kadal.cc/mcp.
For scripts: kadal-deck check (exit 1 on errors), kadal-deck screenshot, kadal-deck info [topic],
and --json on every command. Exit codes: 0 ok, 1 failed, 2 usage, 3 not signed in, 4 missing
prerequisite. @kadal/deck/catalog is everything a deck can use as data, @kadal/deck/authoring
reads, lints and edits a deck as text, and @kadal/deck/schema/frontmatter.json is the JSON Schema
for frontmatter.
@kadal/prettier-plugin: Prettier for deck files, in any editor
that runs Prettier. kadal-deck format runs the same formatter with no setup.kadal-deck dev for a side editor on the slide you're on.Each slide is its own module, so an edit re-renders one slide, not the deck. The drawing is an
Excalidraw file, drawn with the same sketch DSL a slide's
<Sketch> uses.
Writing, presenting, the presenter view, export and a static build need nothing but this engine, and stay free. The live room needs a server holding a WebSocket per deck.
npx kadal-deck publish gives the deck a URL, a live
room, analytics, passcodes, version history and teams, and quick edit on the web that
kadal-deck pull merges back into your files slide by slide. There is a free plan,
and the paid plans fund the engine.kadal-deck build output runs on any static host (kadal-deck ci writes the
deploy files for GitHub Pages, Netlify, Vercel, Cloudflare or Docker). The room protocol is typed
in @kadal/deck/protocol and documented endpoint by endpoint,
and kadal-deck relay gives a static build the phone remote.| Package | Version | |
|---|---|---|
@kadal/deck | The engine: MDX compiler and Vite plugin, runtime, components, themes, live client, export, the kadal-deck CLI and MCP server | |
@kadal/create-deck | npm create @kadal/deck@latest: a new deck, theme or addon | |
@kadal/deck-vue, -svelte, -solid, -preact, -qwik, -angular, -fresh, -wasm, -python |
All @kadal/* packages version together and are published from this repository's
release workflow through npm trusted publishing, with
provenance on each npm page. The VS Code
extension is published by its own workflow.
Getting started · Writing slides · Components · Configuration · CLI · Publishing · Writing a theme · Coming from Slidev
The engine's full reference, with every component and option, is in
packages/deck/README.md, and npx kadal-deck info prints it in the
terminal.
AGPL-3.0-or-later. Presenting with Kadal Deck, self-hosting your own decks, and embedding a deck in a site you publish trigger nothing; you owe nobody anything. If you run a modified engine as a network service, its users must be able to get your modified source.
Building a hosted or proprietary product on the engine without publishing your changes? A commercial licence removes the AGPL obligations: write to [email protected]. Details are in LICENSING.md. The five ported themes are MIT, and third-party notices are in THIRD_PARTY_NOTICES.md.
A bug report with a small deck.mdx that reproduces it is the most useful thing you can send, and
pull requests are welcome. CONTRIBUTING.md covers the setup (Bun 1.3+), the
tests and the island verifier. Questions and ideas go to
Discussions. Please follow the
code of conduct, and report security issues privately as
SECURITY.md describes.
Sponsorships pay for time on the open-source engine: issues, docs, new islands and the features you ask for. Sponsor Kadal Deck on GitHub; the tiers and what each one gets are on deck.kadal.cc/sponsor, and backers are listed in BACKERS.md. Companies can sponsor by invoice.
| Presenter view with notes, timer and next slide; drawing, laser, spotlight, blackout, camera, recording; a share window for video calls; a phone remote; vim keys |
| The live room (docs) | The audience follows on their phones: reactions, questions with upvotes, polls, word clouds, timed quizzes, a pace dial and a raised hand |
| Export (docs) | PDF, PNG and PPTX, with or without each click step; a static build that works offline |
| Framework renderers for islands |
@kadal/theme-* (13 packages) | The themes above |
@kadal/prettier-plugin | Prettier for deck files |
| Kadal Deck for VS Code | Preview, outline, IntelliSense, checks and formatting |
@kadal/deck-shell | not on npm yet | A prebuilt page that runs any deck.mdx compiled in the browser, for hosts and editors |