Tune your knowledge. Graphune turns vault headings into a spatial, connected workspace on Obsidian Canvas.
Since 0.1.2, the Obsidian plugin ID is
graphune, as required for Community Directory submission. Existing settings are imported from the formerobsidian-heptabasedirectory on first launch.
Graphune lets you extract heading sections from your vault and place them onto Canvas as individual notes. Markdown remains the source of truth while Canvas provides the spatial workspace.
- Sidebar heading explorer — Browse all notes and their heading hierarchy in a right sidebar
- Debounced search — Quickly filter notes by title with real-time search
- Library filters — Filter by tag and folder, then sort by recency or title without rereading the Vault
- Drag & drop to Canvas — Drag any heading onto an open Canvas to create a new note
- Smart content extraction — Automatically extracts the full section content, including nested headings
- Auto file creation — Creates new files with sanitized names and handles filename collisions
- Configurable node size — Set default width and height for new Canvas nodes
- Configurable output — Choose an output folder and file name prefix for extracted notes
- Edge backlink sync — Keep Markdown backlinks aligned with connections drawn between Canvas file nodes
- English and Japanese UI — Follow Obsidian's language or choose a language explicitly
- Extraction provenance — Records the source note, heading, Canvas, and extraction time on new concept cards
- Card context panel — Shows source, backlinks, and every Canvas containing the current card
- Canvas-to-article navigation — Select a file node on Canvas to open it in the sidebar editor
- Canvas search and focus — Find cards, text, groups, and links on the current Canvas and zoom to them
- Canvas selection tools — Align, distribute, connect, or group selected cards from one toolbar, with synchronized Undo/Redo
- Fast card capture — Create a non-overlapping card, then name it immediately in a focused title editor
- Keyboard accessible — Full keyboard navigation support
- Open Settings > Community plugins in Obsidian
- Select Browse, search for Graphune, and select Install
- Select Enable after installation
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Create the plugin directory in your vault and copy the three files into it:
<vault>/.obsidian/plugins/graphune/ - Restart Obsidian and enable Graphune in Settings > Community plugins
- Open a Canvas in Obsidian
- Select the Open heading explorer ribbon icon to open the Heading Explorer
- Browse or search for notes in the explorer panel
- Expand a note to see its heading hierarchy
- Drag a heading onto the Canvas — a new note is created with the extracted section content
Select multiple Canvas nodes and open Obsidian's command palette to align or distribute them. Alignment requires two nodes; equal distribution requires three or more.
Run Create new card to place a selected card in the center of the visible Canvas. Cmd/Ctrl +
double-click an empty Canvas area to create one at that point. The new card opens with its title
selected, so typing replaces Untitled immediately.
| Setting | Description | Default |
|---|---|---|
| Extracted files folder | Folder to save extracted heading files. Leave empty to use the source file's folder. | (empty) |
| Default node width | Width for new Canvas nodes (200–800) | 400 |
| Default node height | Height for new Canvas nodes (100–600) | 300 |
| File name prefix | Prefix for extracted file names | (empty) |
| Show preview before create | Preview extracted sections before files are created | Off |
| Quick card default title | Initial title used for cards created by double-clicking | Untitled |
| Enable edge sync | Write backlinks when file nodes are connected on Canvas | On |
| Default edge color | Color applied to new edges | Obsidian default |
| Default edge label | Label applied to new edges | (empty) |
| Language | Follow Obsidian, or explicitly use English or Japanese | System default |
UI changes must follow the UX principles. Smoothness and visual quality are release criteria for this plugin.
User-facing copy belongs in src/i18n/index.ts, not directly in components. English is the source
catalog and every key must have a Japanese translation. Language changes update open Graphune views
immediately; command and ribbon labels update after Obsidian reloads the plugin.
pnpm installpnpm dev # Build in watch mode
pnpm build # Production build
pnpm test # Run tests
pnpm lint # Lint with oxlint
pnpm format # Auto-format with oxfmtBuild the plugin, create a reproducible UX audit vault, and open it in Obsidian:
pnpm build
pnpm setup:device
pnpm open:deviceThe generated .dev/ux-audit-vault enables graphune, opens the localized audit Canvas,
and restores the Heading Explorer in a 380 px right sidebar. Its notes cover folders, hierarchical
tags, Japanese text, long titles, dense Canvas content, and empty, search, and filter states. Use the
included audit checklist for light and dark themes, narrow widths, keyboard operation, and
continuous use. For iterative development, keep the vault open and run pnpm dev.
Obsidian requires one manual registration on first use: choose Open folder as vault, select .dev/ux-audit-vault, trust the local vault, and enable Graphune. After that, pnpm open:device opens it directly.
The Community Directory cannot treat a changed plugin ID as an in-place update. Disable the old
Graphune installation, install or copy 0.1.2 into .obsidian/plugins/graphune/, then enable
Graphune again. On first launch, Graphune imports data.json from
.obsidian/plugins/obsidian-heptabase/ only when the new installation has no data of its own.
For a manual or development installation, the following command copies settings and replaces the
enabled plugin ID in community-plugins.json:
pnpm migrate:legacy -- --vault <vault-path>The command keeps the old plugin directory and backs up community-plugins.json. Remove the old
directory only after verifying Graphune 0.1.2. Workspace layout entries owned by the old plugin ID
may need to be reopened once; note and Canvas content is unaffected.
Contributions are welcome. Read CONTRIBUTING.md, open an issue, or submit a pull request.
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Make your changes and add tests
- Run
pnpm test && pnpm lintto verify - Submit a pull request
Inspired by Heptabase and its approach to visual knowledge management.