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

Scribe of Lagash - Goals and Stats

AlejandroAlejandro80 downloads

Set daily writing goals for your story and track word counts, progress and stats over time.

Add to Obsidian
Scribe of Lagash - Goals and Stats screenshot
Scribe of Lagash - Goals and Stats screenshot
Scribe of Lagash - Goals and Stats screenshot
Scribe of Lagash - Goals and Stats screenshot
  • Overview
  • Scorecard
  • Updates14

An Obsidian plugin that helps writers set goals and see detailed statistics for those goals and for the story as a whole. It is part of the Scribe of Lagash series, a set of independent, focused tools for planning and writing stories in Obsidian.

Installation

Requires Obsidian ≥1.10.0.

You can install it from the community plugins page, or download main.js, manifest.json, and styles.css from the latest release and copy them into <vault>/.obsidian/plugins/scribe-of-lagash-goals-stats/.

Scribe of Lagash Plugins

Scribe of Lagash is a series of independent, single-concern Obsidian plugins for planning and writing stories:

  • Scribe of Lagash - Visualization (github repository) — helps writers visualize their chapters and scenes.
  • Scribe of Lagash - Goals and Stats (github repository) — helps writers set goals and see detailed statistics for their story.

About the name

"Scribe" is the writer at the center of every plugin in the series, and "Lagash" nods to Nippur de Lagash, the classic Argentine comic.

Current features

  • Writing-goal widget — a right-sidebar view (ribbon icon or the "Open writing goal widget" command) with a ring for today's progress toward the daily goal, a week/month summary, and a month calendar coloring each day by whether it met, partly met, or missed the goal. History is kept in a plugin-managed file in the vault, so it survives a plugin uninstall/reinstall and travels with the vault through whatever the author already syncs it with.

    Writing-goal widget
  • Goals and Stats tab — a main-area tab (ribbon icon or the "Open Goals & Stats" command) with a "Writing goal history" section: week/month, rolling 7-/30-day, and year/365-day totals with daily averages, beside the same month calendar as the sidebar widget with today's total and, when clicked, any other day's total shown next to it.

    Goals and Stats tab
  • Daily-goal celebration — the moment you reach the daily goal, a toast notification plus a confetti burst say so, and a status-bar item lights up for as long as it stays met, whether or not the writing-goal widget is open.

  • Writing session — a plain countdown timer in the writing-goal widget, unrelated to the daily goal or any particular day: 15/30/60-minute presets or a custom length, with the same ring styling as the daily-goal progress ring, play/pause, reset, and a toast plus a short bell sound once time's up. A session in progress survives closing Obsidian — reopening shows it paused, ready to resume with a click.

    Writing session
  • File-explorer counts — every note inside the story folder shows its word (or character) count next to its name in the file explorer, and every folder shows the total of the notes beneath it. Counts update as you write. Set a story folder in settings to count only that folder instead of the whole vault, and add specific notes or folders to the exclusion list to leave them out of the count entirely. Character counts default to "characters without spaces", so they'll read lower than Obsidian's own word-count status bar, which counts every character including spaces and line breaks — turn on "Count spaces in character counts" in settings to match that convention instead.

    File-explorer counts
  • Writing-goal settings — a story folder (with folder autocomplete; switching it away from a different folder you've already used asks you to confirm first, since it starts today's writing count over for the new one — the previous folder's history is kept, ready to pick back up later), a words/characters metric (with a with/without-spaces toggle for characters), a daily goal, and the days of the week you write; the weekly and monthly targets are worked out from those. Plus a list of notes and folders to exclude from everything the plugin measures.

How "written today" is counted

Today's count isn't just "how much longer is the note now" — it's genuinely new writing, worked out by comparing what each note says right now to what it said at the start of the day and counting only the words that weren't there before. That has one nice effect: cleaning up old work doesn't punish you.

  • Deleting something you wrote on an earlier day never lowers today's count. Cut a whole tired paragraph from last week, reorganize a chapter, trim an old scene down to nothing — none of it counts against you, because none of it was written today.
  • Deleting something you wrote today does lower today's count, same as any ordinary word counter. Write a new sentence, then cut a couple of words from it before you're done for the day, and the count reflects what's actually on the page.

So the number always answers "how many new words are sitting in my story right now," not "how many keys did I press today" — a big cleanup of old material can never accidentally erase a day's progress.

Planned:

  • Goal targets — total word count and a deadline, per-chapter or per-scene length targets, and a projected completion date.
  • Goal stats — writing streaks and how each day compares to the target pace.
  • Story stats — total and per-chapter/scene word, sentence, and paragraph counts; average scene and chapter length; reading-time estimate. Will live in the Goals and Stats tab's "Story Stats" section (already there as an empty placeholder).
  • Repeated-word analysis — most-frequent words and phrases across the whole story or a single chapter, with common stop-words filtered out, to surface overused crutch words.
  • Per-story scoping — every statistic can be computed for one story folder or the whole vault.

See docs/feature-plans/ for the detailed plan of each feature (one file per feature).

Development

npm install
npm run dev    # watch build, outputs main.js
npm run build  # type-check + production build
npm test       # unit tests (Node's built-in runner; no test framework dependency)

Supply-chain safety

  • Every dependency in package.json is pinned to an exact version — no ^/~ ranges and no latest. .npmrc sets save-exact=true so future npm install <pkg> additions stay pinned by default.
  • .npmrc also sets ignore-scripts=true, so npm install/npm ci never runs a dependency's preinstall/install/postinstall script automatically. The only dependency that ships one is esbuild, and its script just optimizes linking its already-installed platform binary — the build works fine without it. On the rare platform where it doesn't (e.g. an environment without a matching prebuilt @esbuild/* package), run npm run rebuild:esbuild to explicitly and visibly opt that one script back in for that single command.

To try the plugin in a vault, copy (or symlink) manifest.json, main.js, and styles.css into <vault>/.obsidian/plugins/scribe-of-lagash-goals-stats/, then enable it from Obsidian's Community Plugins settings.

Contributing

Found a bug, or have a feature request? Open one on the GitHub Issues page — there's a template for each.

Contributions are welcome — see CONTRIBUTING.md for dev setup, code conventions, and the PR process. This project follows a Code of Conduct.

Found a security issue? See SECURITY.md instead of opening a public issue.

See CHANGELOG.md for release history.

License

MIT.

HealthExcellent
ReviewPassed
About
Scribe of Lagash - Goals and Stats helps writers build a daily writing habit and see how a story grows, whether it's a novel, a novella or a short story. Point it at a story folder, choose words or characters, and set a daily target and your writing days. The sidebar widget shows today's progress as a ring, with weekly and monthly summaries and a colored month calendar that marks met, partial and missed days. The Goals & Stats tab shows rolling 7, 30 and 365-day totals, daily averages and your full goal history. Word counts appear in the file explorer for every note and folder in your story. Writing sessions are countdown sprints with 15, 30 or 60-minute presets or a custom time, and they keep running even if you restart Obsidian. When you reach your daily goal, you get a notification and confetti. Planned next: total word-count targets, writing streaks, story statistics (reading time, sentence and paragraph length) and repeated-word detection.
WritingCalendarCharts
Details
Current version
0.8.1
Last updated
2 days ago
Created
4 weeks ago
Updates
14 releases
Downloads
80
Compatible with
Obsidian 1.10.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
AlejandroAlejandroaescanes
GitHubaescanes
  1. Community
  2. Plugins
  3. Writing
  4. Scribe of Lagash - Goals and Stats

Related plugins

Tracker

Track occurrences and numbers in your notes.

WebNovel Assistant

An all-in-one writing studio for novel and story writers. Features accurate word count tracking, daily goals, story timeline board, plot foreshadowing manager, chapter corkboard, and character lore gr

Calendarium

Craft mind-bending fantasy and sci-fi calendars.

Contribution Graph

Generate an interactive heatmap to visualize and track your productivity.

Gantt Calendar

A powerful visual task management plugin. Visualize and manage tasks created by the Tasks plugin, supporting both emoji and Dataview task formats. Support Feishu Task syncing.

LanguageTool Integration

Advanced grammar and spell checking, powered by LanguageTool.

ChatGPT MD

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

Day Planner

Turn tasks from daily notes, the Tasks plugin, and calendars into time blocks on an editable timeline, with built-in time tracker.

TaskNotes

Note-based task management with calendar, pomodoro and time-tracking integration.

Full Calendar Remastered

Complete Calendar HUB experience. Work with all your calendars in one place. Analyze your time and take action!