Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Bullet Depth Markers

michael-5653michael-56531 downloads

Keeps unordered list markers (-, *, +) in sync with nesting depth, both in the file and on screen.

Add to Obsidian
Bullet Depth Markers screenshot
  • Overview
  • Scorecard
  • Updates1

Child bullets get a different marker. In the file. Not just on screen.

- Framing
    * Layout
        + Gridlines
            - Column A      ← depth 4, cycle repeats
    * Inspection

Depth 1 is -. Depth 2 is *. Depth 3 is +. Then it repeats. Shows as ● ○ ▪ in both Live Preview and Reading view.

Why not a CSS snippet

CSS only changes the look. Your file stays - all the way down. This changes the file. So export, grep and diffs see the structure too.

Install

Do one of these. Then in Obsidian: Settings → Community plugins → Reload → enable Bullet Depth Markers.

Mac

git clone https://github.com/MichaelNguyen5653/Bullet-Depth-Markers.git
cd Bullet-Depth-Markers
./install.sh ~/Documents/YourVault

Windows (Git Bash)

git clone https://github.com/MichaelNguyen5653/Bullet-Depth-Markers.git
cd Bullet-Depth-Markers
./install.sh "/c/Users/YOU/Documents/YourVault"

Manual (any OS)

Copy these 3 files:

main.js
styles.css
manifest.json

Into this folder (make it if missing):

YourVault/.obsidian/plugins/bullet-depth-markers/

How it works

Takes no hotkeys. Obsidian indents like normal. The plugin fixes the marker right after. So it works with Tab, drag, paste — anything.

  • Undo is one step.
  • Cursor never jumps. One character swaps for one character.

Leaves alone

  • Numbered lists. Keep their numbers. Still count as a level.
  • Code blocks, frontmatter, ---.
  • Old notes. A list is only fixed when you edit it.

Checkboxes do change. - [ ] becomes * [ ]. Still a checkbox.

Settings

Marker sequence. Default - * +. Only -, * and + are allowed — nothing else is a real Markdown list marker.

Dev

No build step. Obsidian loads main.js as-is.

./run-tests.sh

Uses node's built-in test runner. No node? It falls back to VS Code's Electron binary. The core of main.js is pure functions, so tests run outside Obsidian. See DESIGN.md for the reasoning.

HealthExcellent
ReviewSatisfactory
About
Convert nested bullets into depth-specific Markdown markers written into your files so exports, greps and diffs reflect hierarchy. Show the markers in Live Preview and Reading view while leaving numbered lists, code blocks and frontmatter untouched, preserving cursor position and single-step undo during edits.
MarkdownEditing
Details
Current version
1.0.0
Last updated
9 hours ago
Created
10 hours ago
Updates
1 release
Downloads
1
Compatible with
Obsidian 1.0.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
michael-5653michael-5653
GitHubmichaelnguyen5653
  1. Community
  2. Plugins
  3. Markdown
  4. Bullet Depth Markers

Related plugins

Outliner

Work with your lists like in Workflowy or Roam Research.

Various Complements

Complete words similar to auto-completion in an IDE.

Heading Shifter

Easily Shift and Change Markdown headings.

Shortcuts extender

Use shortcuts for input special symbols without language switching.

Easy Copy

Easily copy the text within inline code, bold text (and many other formats), or quickly generate an elegant link to a heading or block.

Importer

Convert your data to Markdown files you can use in Obsidian. Works with Apple Notes, OneNote, Evernote, Notion, Google Keep, and many other formats.

Meta Bind

Make your notes interactive with inline input fields, metadata displays, and buttons.

Advanced Tables

Improved table navigation, formatting, and manipulation.

Custom Frames

Turn web apps into panes using iframes with custom styling. Also comes with presets for Google Keep, Todoist and more.

Thino

Quickly capture memos and display them in the sidebar with a heatmap. (Closed source)