Authorship

approved

by rflpazini

This plugin has not been manually reviewed by Obsidian staff. Track and visualize text authorship in the editor. Distinguishes typed, pasted, AI-generated, and reference text with color-coded highlights.

2 stars29 downloadsUpdated 1mo agoMIT

Obsidian Authorship

Track and visualize text authorship in Obsidian — see what you typed vs what you pasted.

Inspired by iA Writer's Authorship feature. Compatible with the open Markdown Annotations spec (v0.2).

Authorship Demo

What it does

  • Automatically tracks whether text was typed or pasted using CodeMirror 6 transaction events
  • Visual distinction in the editor: AI text gets a gradient highlight, pasted text is subtly marked, reference material is italicized
  • Manual marking via commands: select text and mark it as AI, Self, or Reference
  • Persists authorship at the end of your markdown files using the Markdown Annotations format
  • SHA-256 validation detects when files are modified outside Obsidian
  • 100% local — zero network calls, zero cost, open source (MIT)

Commands

CommandDescription
Mark selection as AIMark selected text as AI-generated
Mark selection as selfMark selected text as self-authored
Mark selection as referenceMark selected text as reference material
Toggle highlightingShow/hide authorship decorations

How authorship data is stored

Authorship annotations are appended to the end of your markdown files, following the Markdown Annotations spec:

Your regular markdown content here...

---
Annotations: 0,42 SHA-256 abc123def456789012345678901234
@Self: 0,20
&AI: 20,22
...
  • @ = human-authored text
  • & = AI-generated text
  • * = reference material
  • Ranges use grapheme cluster indexes: start,length
  • SHA-256 hash validates integrity when reopening

Settings

Settings

  • Enable authorship tracking — global on/off toggle
  • Author name — your name in annotations (default: "Self")
  • Default paste source — how pasted text is classified (Pasted / AI / Reference)
  • Show in status bar — per-author character count percentages

Installation

From Obsidian Community Plugins (coming soon)

  1. Open Settings > Community plugins
  2. Click Browse and search for "Authorship"
  3. Click Install, then Enable

Manual Installation

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. Create a folder authorship in your vault's .obsidian/plugins/ directory
  3. Copy the downloaded files into that folder
  4. Enable the plugin in Settings > Community plugins

With BRAT (Beta Testing)

  1. Install the BRAT plugin
  2. Add rflpazini/obsidian-authorship as a beta plugin in BRAT settings

Development

npm install
npm run dev      # watch mode
npm run build    # production build
npm test         # run tests
npm run test:coverage  # coverage report

Architecture

Built with SOLID principles. Core domain logic is fully decoupled from Obsidian/CodeMirror APIs:

  • src/core/ — Pure domain logic (RangeManager, HashValidator, AuthorshipTracker)
  • src/annotations/ — Markdown Annotations parser/serializer
  • src/editor/ — CodeMirror 6 integration (StateField, decorations, input detection)
  • src/commands/ — User-facing commands
  • src/ui/ — Settings tab, modals, status bar
  • src/utils/ — Cryptographic hashing, grapheme cluster utilities

License

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.