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

Permanent Ink

thdnganthdngan17 downloads

Turn every deletion into a visible strikethrough, and keep a history of thought process with color-coded highlights and an annotation sidebar.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates2

Every word counts.


What is this?

In the age of digital perfection, we often lose the messy, authentic process of thinking and writing. Every backspace erases not just letters, but the story of how an idea came to be.

Permanent Ink turns your Obsidian editor into a canvas where thoughts layer upon each other. When you hit Backspace or Delete, words don't vanish, they get crossed out, creating a visible record of your mind at work.

Picture this: you're writing and type "she walked nervously" but then change it to "she paced." With Permanent Ink, you get she ~~walked nervously~~ paced. The evolution preserved. Your false starts become your marginalia.

This plugin was built on top of ideas from jancbeck/obsidian-note-annotations. What started as a few personal modifications grew into something different enough to live on its own.


Features

Restricted writing mode

The core of the plugin. When active (shown as Permanent Ink: ON in your status bar), the editor enforces a write-forward discipline:

  • Backspace and Delete apply strikethroughs instead of erasing. Selecting text and pressing either key wraps the selection in ~~strikethrough~~.
  • New text always goes to the end. Typing mid-document moves your cursor to the last line first. If you're inside a recognized delimiter pair at the document's end (like parentheses or brackets), the cursor jumps to just before the closing character instead.
  • Undo and Cut are blocked. Ctrl/Cmd+Z and Ctrl/Cmd+X do nothing in restricted mode.
  • No mid-document line breaks. Pressing Enter only works at the very end of the document.
  • Cursor navigation is annotation-aware. Arrow keys skip over highlight and strikethrough blocks atomically, so you never land inside the == or ~~ markers.

Toggle the mode by clicking the status bar item or running the Toggle editing mode command.

Highlights

Select any text and press H (or use the Highlight selection command) to wrap it in ==highlight==.

In the live preview editor, highlights render as colored spans. Clicking one opens a popover where you can:

  • Pick a color from the palette
  • Write a comment (stored as ==text==<!--your comment @colorname-->)
  • Copy the highlighted text to your clipboard
  • Remove the highlight entirely

The color palette options are configurable in the plugin settings.

Strikethroughs

Select text and press Backspace, Delete, or use the Strikethrough selection command to wrap it in ~~strikethrough~~.

Like highlights, clicking a strikethrough in live preview opens the same popover, where you can attach a comment or remove it.

Selection popup

Whenever you select text with your mouse or finger, a small floating toolbar appears near the selection with two options:

  • Cross out — applies a strikethrough
  • Highlight — applies a highlight

The popup is draggable. You can also use keyboard shortcuts (H for highlight, Backspace/Delete for strikethrough) while it's open.

Annotations sidebar

Click the quote icon in the ribbon to open a sidebar panel listing every highlight and strikethrough in the current document.

Each card shows the annotated text, its type, and any attached comment. Clicking a card scrolls the editor to that annotation and briefly flashes a border around it. From the card you can:

  • Edit the attached comment inline
  • Remove the annotation (replacing it with plain text)

The sidebar updates automatically as you edit.

Quad indentation

A lightweight indentation system built for restricted mode. On the last line of the document, pressing Tab inserts a $\quad$ block at the start of the line (rendered as indentation in the editor). Pressing Tab again adds another \quad to deepen it.

In restricted mode, Backspace and arrow keys are aware of these blocks and skip over them cleanly rather than landing the cursor inside the LaTeX syntax.

Reading mode support

Highlights and strikethroughs with comments render correctly in Obsidian's reading view. The color is applied as a background, and hovering over an annotated word shows the comment as a tooltip.


Installation

  1. Download the plugin files.
  2. Place them in .obsidian/plugins/permanent-ink/ inside your vault.
  3. Enable the plugin under Settings → Community Plugins.
  4. Permanent Ink: ON will appear in your status bar.

Configuration

Open Settings → Permanent Ink to adjust:

Expand selection: when enabled, highlight and strikethrough commands automatically expand the selection to cover complete words. This prevents broken markdown rendering from partial-word selections. Hold Alt while selecting to override this on the fly.

Highlighting color options: a comma-separated list of CSS color names that appear in the color palette. Requires an app reload to take effect.


How Restricted Mode handles keys

Key Behavior
Typing Moves cursor to end of document, then types normally
Backspace / Delete Applies strikethrough to selection or nearest word
Tab Adds $\quad$ indentation on the last line
Enter Blocked unless cursor is at the very end of the document
Ctrl/Cmd+Z Blocked
Ctrl/Cmd+X Blocked
Arrow keys Navigation, with smart skipping around annotation blocks and quad indentation

A Note on Writing

"The first draft of anything is shit." — Ernest Hemingway.

Maybe that's exactly why we should keep it around.

82%
HealthExcellent
ReviewCaution
About
Preserve every edit by converting Backspace and Delete into strikethroughs so deleted words remain visible as crossed-out text. Enable a write-forward restricted mode that forces new text to the end, blocks undo and cut, supports inline highlights, and provides annotation-aware cursor navigation.
AnnotationEditingStatus bar
Details
Current version
1.0.1
Last updated
5 days ago
Created
Last month
Updates
2 releases
Downloads
17
Compatible with
Obsidian 0.12.0+
Platforms
Desktop, Mobile
License
OTHER
Report bugRequest featureReport plugin
Author
thdnganthdngan
github.com/thdngan
GitHubthdngan
  1. Community
  2. Plugins
  3. Annotation
  4. Permanent Ink

Related plugins

Advanced Tables

Improved table navigation, formatting, and manipulation.

Meta Bind

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

Outliner

Work with your lists like in Workflowy or Roam Research.

Various Complements

Complete words similar to auto-completion in an IDE.

Creases

Tools for effectively folding Markdown sections.

Image Converter

Convert, compress, resize, annotate, markup, draw, crop, rotate, flip, align, drag-resize, rename with variables, and batch process images: WEBP, JPG, PNG, HEIC, TIF

Simplified Chinese Word Splitting

Adds Simplified Chinese word splitting support for the editor and Vim mode.

LanguageTool Integration

advanced spell/grammar checks with the help of language-tool.

HiNote

Add comments to highlighted notes, use AI for thinking, and flashcards for memory.

Easy Typing

Auto format when typing.