by penspanic
Browse recently modified files and folders in a compact sidebar with time filters.
Recent Changes
A compact Obsidian sidebar for finding recently modified files and folders.
Pick a time range, switch between files and folders, and return to the work that just changed. This is useful when your vault is also edited by external editors, scripts, AI agents, or Git.
Features
- One-click ranges: 1 hour, 6 hours, 1 day, 3 days, 1 week, 30 days, or all files.
- File view grouped by time, or folder view ordered by each folder's latest change.
- Configurable extensions, excluded folders and filenames, and a display limit.
- Right-click a file or folder to exclude it immediately; restore it from settings.
- Relative modification times, active-file highlighting, and folder context for generic names such as
READMEandindex. - Open in the current pane, a new tab with Ctrl/Cmd-click, or a new tab with middle-click.
- Keyboard navigation and native file context menus.
- No runtime network requests, telemetry, accounts, or other plugin dependencies.
Installation
Requires desktop Obsidian 1.7.2 or newer. The community listing is published and its automated review is complete. If Recent Changes is not yet visible in your app's plugin browser, install through BRAT or use the release files below.
Obsidian community plugins
- Open Settings → Community plugins → Browse.
- Search for Recent Changes, then select Install.
- Enable the plugin and click the history ribbon icon or run Recent Changes: Open view.
The listing's Add to Obsidian link opens the app's plugin browser. It does not bypass the app's catalog: if the plugin is missing from search results, use BRAT or manual installation instead.
BRAT
- Install and enable BRAT from Settings → Community plugins → Browse.
- Open the command palette and run BRAT: Add a beta plugin for testing.
- Paste
https://github.com/penspanic/obsidian-recent-changesand select Add Plugin. - Enable Recent Changes in Settings → Community plugins.
- Click the history ribbon icon or run Recent Changes: Open view.
BRAT also manages updates from GitHub releases. See the BRAT quick guide for update options.
Manual installation
- Download
main.js,manifest.json, andstyles.cssfrom the latest release. Use the individual release assets, not the source-code ZIP. - Create
<vault>/<config-dir>/plugins/recent-changes/. The default config directory is.obsidian. - Put the three downloaded files in that folder.
- Restart Obsidian, allow community plugins, and enable Recent Changes under Settings → Community plugins.
- Click the history ribbon icon or run Recent Changes: Open view.
For manual updates, disable the plugin, replace those same three files with the latest release assets, and enable it again. Keep your existing data.json; it stores your per-vault settings.
Compatibility
The desktop plugin has been smoke-tested on macOS with Obsidian 1.13.7. Mobile support is not enabled in this release. See validation for tested behavior and remaining device checks.
Usage
Choose Files to scan individual changes, or Folders to see which folders have recent activity. Collapse a folder to reduce clutter. The last mode, range, and collapsed folders are saved per vault.
The count shows matching files before the display limit, for example 200 of 350. Folder counts include only displayed files.
Exclude directly from the sidebar
- Right-click a file → Exclude this file to hide only that exact file.
- Right-click a file → Exclude parent folder to hide that folder and its descendants.
- In folder view, right-click a folder → Exclude this folder.
- Shift+F10 opens these menus from a focused file or folder.
These actions only hide entries in Recent Changes; the files remain in your vault. Matching uses the full vault path, so excluding Project/notes.md does not hide another notes.md elsewhere.
To restore an item, open Settings → Recent Changes → Excluded items and select Remove. Existing manual rules under Exclude still apply.
Keyboard
- Tab / Shift+Tab: move between controls and entries.
- ↑ / ↓, Home / End: move through the file and folder list.
- Enter / Space: activate a focused button.
- Ctrl/Cmd+Enter on a file: open in a new tab.
- ← / → on a folder: collapse / expand.
- Shift+F10 on a file or non-root folder: open the context menu.
Settings
| Setting | Default | Meaning |
|---|---|---|
| Open sidebar on startup | On | Create the sidebar after the workspace loads. Saved panes are retained. |
| Maximum files | 200 | Display at most 1–5,000 files. |
| Extensions | md, canvas, base | Comma-separated extensions. Empty means all file types. |
| Exclude | node_modules/, .venv/ | One case-sensitive rule per line. |
| Excluded items | Empty | Exact files/folders hidden through the sidebar menu; use Remove to restore. |
A folder rule ends in / and matches at any depth: Archive/ excludes both Archive/a.md and Project/Archive/a.md, but not Archived/a.md. A nested rule such as Project/Generated/ matches that folder sequence. A rule without / at the end matches an exact filename anywhere in the vault: README.md excludes that name, not MyREADME.md. Exclusions are literal rules, not glob patterns or regular expressions.
Upgrading the earlier local plugin with the same recent-changes ID preserves its stored filters and collapsed folders. New installs receive general-purpose defaults; existing personalized exclusions are not removed automatically.
What counts as a change?
The list uses the modification time reported by Obsidian, not the time a file was last opened. External edits appear once Obsidian detects them. Git checkouts, synchronization, and imports can update timestamps, so this is a navigation aid rather than an audit log. It does not record historical edits, deleted files, diffs, or the author of a change.
Time ranges are rolling durations; 1m means 30 days. Today/Yesterday headings use the local calendar. Extension filtering and exclusions happen before the display cap.
Development
Requires Node.js 22 or newer and npm.
git clone https://github.com/penspanic/obsidian-recent-changes.git
cd obsidian-recent-changes
npm ci
npm run check
npm run verify:release
The installable files are in dist/. Only source files are committed; builds and local plugin settings are ignored.
npm run dev
Watch mode rebuilds JavaScript. After changing styles.css or manifest.json, restart the watcher to recopy those assets. Copy the three dist/ files into a test vault's plugin directory and reload the plugin. A build writes only to dist/. If your local plugin files are linked to dist/, reloading the plugin applies that build.
See contributing, release steps, and validation.
Support and contributing
Report bugs or suggest improvements in GitHub Issues. Include your Obsidian version, operating system, and steps to reproduce. For code contributions, see CONTRIBUTING.md.
License
MIT, copyright 2026 penspanic. This is an independent community plugin, not an official Obsidian product.
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.