[!NOTE] The existing
checkbox-styling-helperplugin now provides a more complete icon bullet experience through Codex. The renamed repository is available on GitHub.

Icon Bullet Helper is an Obsidian plugin for writing visual icon bullets while keeping your notes in plain Markdown.
- {p} Looks good
- {!important} Needs attention
- {next-step} Follow up tomorrow
The plugin renders marker syntax as SVG icons in Live Preview and Reading view. The original Markdown text stays readable, portable, and editable.
{marker} syntax as theme-independent SVG icon bullets.{!marker} syntax as callout icon bullets with a solid background tint.Command + ; on macOS or Ctrl + ; on Windows/Linux.- !.Space, Enter, and Escape inside the picker.Space and callout markers with Enter.Command + . on macOS or Ctrl + . on Windows/Linux.Common icon bullet:
- {p} Looks good
Callout icon bullet:
- {!p} Looks good
Markers may contain letters, numbers, underscores, and hyphens. Marker names are normalized by the settings UI, so spaces become hyphens.
Icon marker rendering currently targets unordered Markdown list markers in Live Preview:
- {p} Dash list
* {i} Asterisk list
+ {q} Plus list
Reading view renders markers after Obsidian has parsed the list item. Source view and fenced code blocks always show the original text.
Open the picker in either of these ways:
- !.Default picker controls:
| Action | Shortcut |
|---|---|
| Move selection | Arrow keys |
| Insert common marker | Space |
| Insert callout marker | Enter |
| Close picker | Escape |
| Toggle current marker between common and callout | Command + . or Ctrl + . |
Additional shortcuts can be assigned from Obsidian's Hotkeys settings to the picker and toggle commands.
The picker includes two kinds of entries.
Icon marker entries render as SVG icon bullets:
| Marker | Label |
|---|---|
{next-step} |
Next step |
{next} |
Next |
{therefore} |
Therefore |
{clip} |
Clip |
{p} |
Good |
{c} |
Bad |
{q} |
Question |
{important} |
Important |
{bookmark} |
Bookmark |
{star} |
Star |
{fire} |
Fire |
{up} |
Up |
{down} |
Down |
{forwarded} |
Forwarded |
{scheduling} |
Scheduling |
{i} |
Information |
{location} |
Location |
{quote} |
Quote |
{dollar} |
Dollar |
{idea} |
Idea |
{k} |
Key |
{win} |
Win |
Insert helper entries write ordinary Markdown syntax and are not SVG marker entries:
| Picker item | Inserted text |
|---|---|
| Number | 1. |
| Default | - |
| Unchecked | - [ ] |
| Incomplete | - [/] |
| Checked | - [x] |
Settings are split into three tabs.
!.At least one icon remains enabled. Disabled icon marker entries are hidden from the picker but still render in existing notes.
Some SVGs contain hard-coded fill or stroke colors. The Color setting only affects SVG parts that use currentColor.
Custom SVG input is sanitized before it is stored or rendered. The sanitizer removes scripts, event handlers, external resources, unsafe URLs, and unsupported embedded content such as foreignObject.
For best results, use compact SVGs that:
viewBox;currentColor for colorable paths;Icon Bullet Helper works locally inside Obsidian.
After the plugin is accepted into the Obsidian Community Plugins directory:
Download the release assets from the latest GitHub release:
main.jsmanifest.jsonstyles.cssCopy them into:
<Vault>/.obsidian/plugins/checkbox-styling-helper/
Then reload Obsidian and enable Icon Bullet Helper from Settings -> Community plugins.
Install dependencies:
npm install
Start the development watcher:
npm run dev
Run a production build:
npm run build
The production build type-checks the plugin, bundles main.ts into main.js, and copies the release files into build/.
Generated release files are not committed to the repository unless a release process explicitly requires them:
main.jsbuild/data.jsonnode_modules/For Obsidian Community Plugins distribution, keep manifest.json, package.json, and versions.json synchronized. The GitHub release tag must match the version in manifest.json exactly, without a leading v.
Attach these files to each GitHub release:
main.jsmanifest.jsonstyles.cssSee RELEASE.md for the release and submission checklist.
This project is released under the GPL-3.0 license.