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

Count Block

Jongwoo LeeJongwoo Lee79 downloads

Add editable text blocks with a live count beneath them. Supports customizable metrics, including NEIS bytes!

Add to Obsidian
  • Overview
  • Scorecard
  • Updates2

An Obsidian plugin for text-counting blocks. Add editable text blocks with a live counter beneath them.

The block lives with the rest of your Markdown content: it's really just a code block with its language set as count. This plugin displays a footer with its count (of whatever metric you get to choose) right below each block. No content is stored outside your vault.

count-block-screenshot

Metrics

Word count is the default metric, while more options are available. It can be changed globally in the plugin settings or per block with inline options.

  • words: whitespace-separated words
  • characters: Unicode code points, including whitespace
  • characters-no-spaces: Unicode code points, excluding Unicode whitespace
  • utf8-bytes: standard UTF-8 byte length
  • neis-bytes: NEIS-style byte counting (a custom standard followed by Korean schools)

Block options belong on the opening fence and are not included in the count:

  • metric=<metric-id>
  • limit=<positive-integer>

Example:

```count metric=words limit=500
Write plain text here.

Use the Count Block: Insert command to create a block or wrap selected text.

Invalid metrics, limits, or option names are shown in the footer. Top-level fenced blocks are supported in the initial release; nesting a count block inside a list or blockquote is not yet supported by the live editor footer.

NEIS bytes

Yes this is a niche option, but is really the reason I built this thing. Korean schools happen to follow a weird counting method that counts Korean letters as three bytes, English as one and such. This differs significantly from standard byte counting, so a separate metric is needed.

Behavior follows the NEIS counter: logical line breaks count as two bytes; its listed math, Greek, middle-dot, and curly-quote exceptions count as one byte; other characters use their UTF-8 byte length. CRLF and CR line endings are normalized to logical line breaks before counting.

Roadmap

  • User-friendly dropdown controls & more
  • i18n
  • Custom metrics support (w. regex?)

I'd love to add support for custom metrics and more, but being quite occupied at the moment I'm not able to work on it right now. Will have my hands on it once I'm free.

Feedback

If you happen to encounter any bugs or have feature requests, please file an issue on GitHub. Contributions are welcome as well.

Development

npm install
npm test
npm run build

And then copy main.js, manifest.json, and styles.css to a test vault's .obsidian/plugins/count-block/ directory. Reminder: never develop against your primary vault!

HealthExcellent
ReviewPassed
About
Insert editable text blocks that display a live counter beneath and stay inline with your Markdown files as fenced code blocks. Count by words, Unicode characters, UTF-8 bytes or NEIS-style bytes and set per-block metrics or limits using fence options.
WritingMarkdown
Details
Current version
0.1.1
Last updated
Last month
Created
Last month
Updates
2 releases
Downloads
79
Compatible with
Obsidian 1.5.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
Jongwoo LeeJongwoo Leelee-jongwoo
GitHublee-jongwoo
  1. Community
  2. Plugins
  3. Writing
  4. Count Block

Related plugins

Typewriter Mode

Typewriter scroll, writing focus, current line highlight, paragraph dimming, and more!

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.

LanguageTool Integration

Advanced grammar and spell checking, powered by LanguageTool.

Custom Frames

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

ChatGPT MD

A seamless integration of ChatGPT, OpenRouter.ai and local LLMs via Ollama into your notes.

Consistent Attachments and Links

Move note attachments and update links automatically.

Outliner

Work with your lists like in Workflowy or Roam Research.

Longform

Helps you write and edit novels, screenplays, and other long projects.

Text Generator

Generate text content using GPT-3 (OpenAI).

Flashcards

Anki integration.