README file from
GithubHearth

A beautiful, customizable home screen for Obsidian — search, dashboard, and launcher in one. Hearth gives your vault a welcoming front page: a big search field, quick file-type filters, a new-note button, and a grid of cards that embed notes, images, bases, bookmarks and quick text.
Status: v0.9 — the top section and a fully arrangeable card dashboard (drag, resize, collision-aware packing, on-board card management, templates, per-card colors, web embeds, live auto-refreshing, zoomable and editable embeds, Excalidraw and canvas cards, multiple switchable dashboards with per-board overrides, pinned cards, a search-only mobile mode, layout import/export) are in. See Roadmap for what's next.
Screenshots




Features
Top section
- Customizable title / logo — set any title text and an emoji/short logo.
- Vault search — fuzzy search across your whole vault (the
.obsidianconfig folder is ignored automatically). Keyboard friendly:↑/↓to move,Enterto open,Escto dismiss. - Auto-detected filters — file-type filter chips are generated from what actually lives in your vault, grouped sensibly (Notes, Images, Videos, Sheets, Slides, Documents, Folders, Canvas, Bases…), each with a fitting icon. Hide any you don't want in settings.
- New note button — creates a note in your configured default location.
- Optional background — solid color, a vault image, or an image URL, with opacity and blur controls.
Dashboard cards
- Embed — embed a note (
.md), image, canvas, or.basefile. Rendered through Obsidian's own renderer, so anything Obsidian (or the Bases plugin) can embed, a card can show. Each embed has a zoom control to scale its content up or down to fit the card, and Markdown notes can be made editable in place — edits save straight back to the vault. - Excalidraw & canvas cards — dedicated templates for embedding an
Excalidraw drawing or a
.canvasfile, with a friendly prompt when the required plugin isn't enabled. - Daily note — always shows today's daily note (resolved from the core Daily notes plugin's date format and folder), with a one-click prompt to create it when it doesn't exist yet. Optionally editable in place.
- Web page — embed any
http(s)URL in a sandboxed iframe. - Live content — embed and web cards can auto-refresh on an interval, so a card tracking a frequently-edited note or a live page stays up to date.
- Bookmarks — pulls from Obsidian's core Bookmarks plugin.
- Favorites — a grid of curated note cards.
- Recent files — your recently opened files (configurable count).
- Links / launchpad — a grid of tiles opening notes, URLs or commands.
- Commands — tiles that run any command-palette command, with an adjustable button size.
- Clock & greeting — a live time-of-day greeting, clock and date.
- Text / jot-down — a quick scratch field saved with the card, rendered as Markdown (double-click to edit).
Multiple dashboards
- Switcher — a
[1] [2] [+]row in the top-left switches between boards and adds new ones. Give a board an emoji/icon to label its button instead of a number. Right-click a button for dashboard settings (name, icon, overrides) or to delete it. - Per-dashboard overrides — each board can override the global grid columns, row height and background, or fall back to the defaults.
- Pinned cards — pin any card to show it on every dashboard, sharing one definition and position across boards.
- Keyboard shortcuts — commands to jump to a dashboard by position
(Switch to dashboard 1…9) and to move to the next/previous dashboard.
Bind them under Settings → Hotkeys (e.g.
Ctrl/Cmd+1).
Arranging the dashboard
- Drag & resize — hit Arrange to move cards (drag anywhere) and resize them (corner handle); everything snaps to the grid and is saved. Cards push each other out of the way as you drag and compact upward when you let go.
- On-board management — in arrange mode each card header is editable: rename inline, swap the embedded file via a fuzzy picker, or remove the card. Add card (toolbar) drops in a new card from the library.
- Per-card colors — give any card an accent and a background tint.
- Granular sizing — numeric width/height per card, plus a configurable row height so cards can be sized finely.
- Import / export — back up or share the active board's layout as JSON.
- The dashboard can either scroll or be locked to a single page.
Mobile
- Mobile mode — an optional search-only launcher: on phones and tablets the dashboard collapses to just the search field (desktop is unaffected).
Usage
- Hearth opens automatically on startup and replaces empty new tabs (both toggleable in settings).
- Open it any time from the ribbon home icon or the command “Open home dashboard”.
- Configure everything under Settings → Hearth.
Development
npm install # install dependencies
npm run dev # watch build -> main.js
npm run build # typecheck + production build
To test in a vault, symlink or copy main.js, manifest.json and styles.css
into <vault>/.obsidian/plugins/hearth/.
Roadmap
- Drag & resize cards on a free-form grid (custom lightweight engine)
- More card types (recent, links/launchpad, commands, clock)
- Per-card backgrounds and accent colors
- Card library / templates
- Best-effort Bases (
.base) embedding (depends on the core Bases plugin) - Manage embeds from the dashboard — add, remove, swap embedded files and rename cards directly on the board, fully driven by the user
- Filter click expands a match menu — clicking a search filter drops down the matching items immediately
- Excalidraw filter — dedicated file-type filter for Excalidraw drawings
- "Other" filter — catch-all for every file not matched by any other filter
- Collision-aware auto-packing while dragging
- Inline web/iframe embeds
- Import/export dashboard layouts
- Configure cards on the board — every per-card setting (type, title, content, colors and size) is edited from the card itself in arrange mode, not in the settings tab
- More granular card sizing — numeric width & height inputs per card
- Customizable clock — 24-hour time, seconds, greeting toggle/override and date display mode
-
.usheet(Univer Sheet) support — recognized as spreadsheets in the file-type filters - Compact spacing — toggle to tighten card padding and the top margin
- Bookmark favicons — show site favicons next to URL bookmarks
- Real app icon — used for the ribbon, tab and header logo (shipped in the bundle)
- Commands card — tiles that run chosen command-palette commands
- Mobile search — results float as an overlay so they no longer push the dashboard off-screen on phones
- Live cards — per-card auto-refresh interval for embed and web cards
- Embed zoom — per-card scale control for embedded content
- Editable
.mdembeds — a per-card toggle to edit an embedded note in place; edits save straight back to the vault - Excalidraw drawing card — dedicated card template for embedding an Excalidraw drawing, with a prompt to install the plugin when it's missing
- Canvas card — dedicated card template for embedding a
.canvasfile, with a prompt to enable the core Canvas plugin when it's off - Multiple dashboards — several switchable boards, managed from the
[1] [2] [+]switcher in the top-left (right-click a button for settings or delete) - Per-dashboard overrides — columns, row height and background can be set per board, falling back to the global defaults
- Per-dashboard icon — an emoji/short text on the switcher button instead of a number
- Pinned cards — show a card on every dashboard, shared across boards
- Dashboard keyboard shortcuts — switch to a board by position, or next/previous (bindable in Settings → Hotkeys)
- Mobile mode — an option to collapse to just the search field on phones and tablets, leaving the dashboard for desktop
- Granular row height — a Row height setting for finer control over how tall cards can be
- Command tile size — adjustable button size on the commands card
- Daily note card — always embeds today's daily note, with a prompt to create it when missing
Planned
Bigger ideas
- Reorder dashboards in the switcher (drag the buttons)
- Per-board fit-to-page / max-width overrides
License
MIT © ondreu