Sonna66 downloadsTiny progress bars in the file explorer showing how full each note is, relative to a target character count.
See the state of your notes without opening them.
Files Progress adds a slim, color-coded progress bar below each Markdown note in Obsidian's File Explorer. It also provides a dedicated sidebar for reviewing progress across your vault.
It works automatically from note length. You are free to set an exact percentage whenever length is not a meaningful measure.
Quick links: Install · Get started · Set manual progress · Troubleshoot
Large vaults make it easy to lose track of unfinished drafts, short reference notes, and documents that have grown beyond their intended size.
Files Progress gives writers, researchers, students, and knowledge workers a quiet visual overview without turning every note into a task.
The bars are intentionally tiny. They add useful context while keeping Obsidian's File Explorer familiar and uncluttered.
Files Progress is available from Obsidian's Community plugins browser.
BRAT can install beta or pre-release versions directly from GitHub. Most users should use the Community plugins browser instead.
sonna-io/obsidian-files-progress.Use that exact repository name. Similar spellings such as obsidian-fles-progress will not work.
Manual installation is intended for advanced users:
main.js, manifest.json, and styles.css from the latest release.<your vault>/.obsidian/plugins/files-progress/.Files Progress requires Obsidian 1.5.7 or newer.
Files Progress has completed its initial Community directory submission. New stable releases are delivered as normal in-app updates after their verified GitHub release is available.
After enabling the plugin, Markdown notes in the File Explorer receive a progress bar automatically.
By default, a note reaches 100% at 3,600 characters. You can change this target under Settings → Files Progress.
Select the gauge icon in Obsidian's ribbon to open the Files Progress sidebar. The status bar also shows progress for the active note and opens the sidebar when selected.
You do not need to add Properties to every note. Automatic character-based progress works immediately.
The filled width represents the note's current progress. The default palette moves from red through yellow to green as the note approaches its target.
A note can exceed 100%. When overflow highlighting is enabled, notes beyond their target use the palette's overflow color.
The smallest non-zero values remain visible as a thin sliver, so recently started notes do not look empty.
Characters include letters, spaces, punctuation, and line breaks. Bars refresh as notes change and follow file creation, deletion, and renaming.
progress = note character count ÷ effective target
The effective target comes from the first available source:
progress-target Property.Enable Exclude frontmatter if Obsidian Properties should not count toward the note's character total.
Right-click a Markdown note or folder to access Files Progress actions:
Obsidian's native multi-selection is supported. Select several files or folders in the File Explorer, then right-click the selection to apply one action to all of them.
Folder actions create folder rules. They do not add or remove Properties from every note inside the folder.
The sidebar lists every included note with its percentage, character count, target, and optional folder path.
You can sort by completion, name, folder path, character count, or modification time. Grouping by folder adds collapsible headers and folder averages.
Select a note to open it. On desktop, use Ctrl/Cmd-click to toggle items and Shift-click to select a range. Right-click any selected row to apply an action to the complete selection.
Folder headers can also be selected and configured when Group by folder is enabled.
The sidebar filter supports ordinary text and a few optional patterns:
| Filter | Meaning |
|---|---|
draft |
Paths or filenames containing “draft” |
Daily* |
Names starting with “Daily” |
Projects/** |
Everything below the Projects folder |
!Archive |
Exclude paths containing “Archive” |
draft, !old |
Include draft results except old ones |
Buttons beside the filter enable case matching, whole-word matching, or regular expressions. Most users can simply type part of a filename or folder name.
Use manual progress when a note's completion is based on research, review, approvals, or another measure that character count cannot represent.
Decimals are supported, such as 42.5.
The manual value is used consistently in the File Explorer, progress sidebar, folder averages, and status bar.
You can make the same change in the note's Properties area:
progress-percent.For example, progress-percent: 50 displays the note at exactly 50%, even if its folder has a different target.
Delete the Property, clear it through the context menu, or choose Clear / inherit to return to automatic progress.
The Property name is configurable. If you rename it under Settings → Files Progress → Frontmatter properties, use that name in your notes instead.
Obsidian stores Properties as YAML at the beginning of a Markdown file. These values are equivalent:
---
progress-percent: 50
---
---
progress-percent: "50.0"
---
Valid numeric or quoted values from 1 through 100 are accepted. Invalid values are ignored, and the plugin safely returns to automatic calculation.
Every Markdown note is included by default. Use context-menu actions or the Scope section in plugin settings to focus on the parts of your vault that matter.
The optional progress Property controls one note directly:
---
progress: true
---
Use progress: false, progress: no, or progress: 0 to exclude a note. Any other non-empty value includes it.
Manual progress does not change visibility. A hidden note remains hidden until its scope is changed.
Folders can inherit a shared target and palette without modifying their notes.
Right-click a folder and choose Progress settings…, or add a folder override under plugin settings. The rule applies to notes in that folder and its subfolders.
When several folder rules apply, the nearest parent folder wins. A note-level Property still takes priority over its folder rule.
Optional folder progress bars show the average completion of included notes below each folder. Each note contributes no more than 100% to that average.
Files Progress includes three palettes:
Create or edit palettes under Settings → Files Progress → Palettes. Each palette controls colors at 0%, 50%, 100%, overflow, and the unfilled background.
Palettes can include a separate dark-mode version. When it is omitted, the light palette is reused. The plugin follows Obsidian's current light, dark, or system-adaptive appearance.
Assign palettes globally, by folder, or to individual notes. Use the progress-palette Property for direct note control.
| Setting | Default | What it does |
|---|---|---|
| Target character count | 3,600 | Defines 100% for automatic progress |
| Exclude frontmatter | Off | Ignores the Properties block when counting |
| Bar thickness | 2 px | Sets the bar height from 1–4 px |
| Highlight overflowing notes | On | Uses the overflow color above 100% |
| Folder progress bars | Off | Shows average progress below folders |
| Status bar | On | Shows progress for the active note |
| Default palette | Default | Selects the vault-wide palette |
| Setting | What it does |
|---|---|
| Included folders | Limits or restores progress for folder trees |
| Excluded folders | Hides progress for folder trees |
| Included files | Forces progress on for individual notes |
| Excluded files | Forces progress off for individual notes |
| Folder overrides | Assigns folder targets and palettes |
“Frontmatter” is the technical name for Obsidian's Properties block at the start of a note.
| Setting | Default Property | Purpose |
|---|---|---|
| Scope property | progress |
Includes or excludes one note |
| Manual progress property | progress-percent |
Sets completion from 1–100 |
| Target property | progress-target |
Sets the note's character target |
| Palette property | progress-palette |
Selects a palette by name |
Leave a Property-name setting empty to disable that type of note-level override.
Open Obsidian's Command palette to use:
The recalculate command is useful after changing many notes outside Obsidian or when a displayed count appears stale.
Update Files Progress through BRAT, then fully reload Obsidian. Disabling and re-enabling the plugin also reloads its JavaScript.
If the problem continues, confirm that the installed plugin reports version 1.5.0 or newer.
Check the following:
Values such as 50, 50.0, "50", and "50.0" are supported.
.md.Confirm that BRAT is using sonna-io/obsidian-files-progress and that Files Progress 1.5.0 or newer is available.
The previous 1.4.0 beta accidentally required Obsidian 1.13. Files Progress 1.5.0 restores support for Obsidian 1.5.7 and newer.
Use the exact repository name sonna-io/obsidian-files-progress. Remove any failed entry with a misspelled name, then add the correct repository again.
Files Progress works locally inside your vault.
Automatic progress is read-only. Notes are changed only when you explicitly apply a note-level setting that writes or clears one of the configured Properties.
Found a problem or have an idea? Open a GitHub issue and include:
The remaining sections are for contributors and plugin maintainers.
npm install
npm run dev # watch mode
npm run build # type-check and production bundle
npm run check # lint, automated tests, type-check, and build
The script copies only main.js, manifest.json, and styles.css, then verifies their SHA-256 hashes. Reload Obsidian or disable and re-enable Files Progress afterward.
Update manifest.json, package.json, and versions.json, commit the release on a clean main branch, then run:
.\publish.ps1
The script runs all checks before pushing the version tag. GitHub Actions rebuilds and attests the release assets, and the script downloads them to verify metadata and hashes.
Do not move an existing version tag or replace its release assets. Publish corrections under a new semantic version.
Files Progress is released under the MIT License.