Stéphane Sulikowski59 downloadsAdd bullet journal signifiers to tasks: draw them with any theme, click to mark done, right-click or long-press to pick one from a menu, and get suggestions as you type.
Bullet journal signifiers for Obsidian tasks. Works with any theme, and pairs with the Suliworld theme.

Your notes, your symbols: the preview above shows an example customization. Characters, symbols, colors and size belong to the plugin, independently of the theme.
See the plugin in action: picking signifiers, marking tasks done, and keeping the same signifier on a new line.
The character between a task's brackets picks its signifier. These are the defaults; customize them or add your own in the plugin settings:
| Markdown | Signifier |
|---|---|
- [ ] |
• Task |
- [x] |
× Done |
- [*] |
✱ Event |
- [n] |
■ Note |
- [>] |
› Migrated |
- [<] |
‹ Scheduled |
- [!] |
! Important |
- [ to get a list of signifiers to pick from, instead of typing a character inside the brackets.Works in Live Preview and in reading view, on desktop and mobile.
Open Settings → Suliworld Signifiers. No Style Settings plugin or specific theme is required.
- [ (both on by default).x/X are reserved; characters must be unique and occupy one UTF-16 code unit (emoji may be used as displayed symbols).Changing or removing a character does not rewrite your notes. Removed or unknown characters keep the active theme’s standard checkbox behavior. Only configured signifiers are handled by the plugin’s interactions. Command IDs remain stable when you change a name or character, preserving hotkeys.
On the first load of the updated plugin, previously saved signifier symbols, light/dark colors, size and enablement are imported from Style Settings. Existing plugin enablement takes precedence. The import is saved in the plugin’s own data.json and runs only once; the plugin does not write to Style Settings. Style Settings may remove the obsolete theme options after the theme is updated.
Update the plugin to 1.1.0 or later before updating the Suliworld theme to 1.0.3. The plugin temporarily suppresses the old theme’s signifier class while enabled, so its own settings apply with either theme version. Updated Suliworld handles only general appearance and uses standard checkboxes when this plugin is disabled.
main.js, manifest.json, and styles.css from the latest release..obsidian/plugins/suliworld-signifiers/.The plugin is written in TypeScript (src/) and bundled with esbuild into main.js.
npm install
npm run dev # rebuild main.js on every change
npm run build # type-check (strict) and build for production
npm test # configuration, migration, CSS escaping and Markdown checks
npm run lint # ESLint with Obsidian's official rules (eslint-plugin-obsidianmd)
To try it in a vault, copy main.js, manifest.json, and styles.css into .obsidian/plugins/suliworld-signifiers/.
Run npm version patch (or minor, major): it updates manifest.json and versions.json. Push the commit and the tag. The release workflow lints, tests, builds, and attaches main.js, manifest.json, and styles.css to a GitHub release.
Presentation assets for the README and community directory are in images/.