igor-kupczynski28 downloadsSync the first H1 header with the filename via a manual command.
Sync the first H1 header of a markdown file with its filename using a manual command.
Note: This plugin is currently under review for inclusion in the Obsidian Community Plugins directory. In the meantime, you can install it manually.
Coming soon — the plugin is under review. Once approved:
main.js and manifest.json from the latest releasetitle-sync in your vault's .obsidian/plugins/ directorymain.js and manifest.json into the folder# My Title)The file will be renamed to match the H1 header.
Cmd+Option+T (Mac) or Ctrl+Alt+T (Windows/Linux)This plugin works best with Settings → Appearance → Show inline title turned off.
When enabled, Obsidian displays the filename as an editable title at the top of each note. If your notes also have an H1 header (which this plugin syncs to the filename), you'll see the title twice — once as the inline title and once as your H1 header. Disabling the inline title avoids this redundancy and keeps your H1 as the single source of truth for the note's title.
| H1 Header | Resulting Filename |
|---|---|
# My Title |
My Title.md |
# My **Bold** Title |
My Bold Title.md |
# Title: Subtitle |
Title- Subtitle.md |
# Is This Valid? |
Is This Valid.md |
# Link to [[Page]] |
Link to Page.md |
This plugin is inspired by obsidian-filename-heading-sync but takes a different approach:
| Feature | Title Sync | filename-heading-sync |
|---|---|---|
| Sync trigger | Manual command only | Automatic (file open/save hooks) |
| Direction | H1 → filename | Bidirectional |
| Auto-insert heading | No | Yes |
| Configuration | None needed | Multiple options |
| Philosophy | Simple, opinionated | Feature-rich |
When to choose Title Sync:
When to choose filename-heading-sync:
# Install dependencies
npm install
# Build for production
npm run build
# Run tests
npm test
# Run linting
npm run lint
# Run all checks
npm run check
# Development mode (watch)
npm run dev
MIT