An Obsidian plugin that allows you to toggle the visibility of completed tasks globally across your vault.
- Toggle completed tasks - Hide or show completed
[x]tasks with a single click - Ribbon button - Quick access from the Obsidian ribbon
- Command palette - Use
Toggle Completed Task Viewcommand - Status bar indicator - Shows current state (Hiding/Showing Completed Tasks)
- Settings panel - Configure status bar visibility and sub-bullet hiding
- Hide sub-bullets - Optionally hide indented items beneath completed tasks (Edit/Live Preview mode only)
- Persistent state - Remembers your preferences between sessions
- Custom task status support - Only hides
[x]and[X], preserving custom statuses like[?],[!],[/] - Cross-platform - Works on desktop and mobile
- Open Obsidian Settings
- Go to
Community Pluginsand disableRestricted mode - Click
Browseand search for "Completed Task Display" - Click
Install, thenEnable
- Download the latest release
- Extract the files into
<vault>/.obsidian/plugins/completed-task-display/ - Reload Obsidian
- Enable the plugin in Settings > Community Plugins
Using the Ribbon:
- Click the tasks icon in the left ribbon
Using Command Palette:
- Press
Ctrl/Cmd + P - Search for "Toggle Completed Task View"
Status Bar:
- Check the status bar at the bottom to see current state
The plugin only hides truly completed tasks:
[x]- Completed (hidden)[X]- Completed (hidden)
All other task statuses remain visible:
[ ]- Uncompleted[?]- Possible task[!]- Urgent task[/]- In-progress task[-]- Cancelled task- Any other custom status
Access settings via Settings → Community Plugins → Completed Task Display:
Show status bar message
- Toggle the status bar indicator on/off
- Shows "Hiding/Showing Completed Tasks" in the status bar
Hide sub-bullets (Edit/Live Preview mode only)
- When enabled, hides indented items (sub-bullets) beneath completed tasks
- Only works in Edit and Live Preview modes
- In Reading view, sub-bullets are automatically hidden with their parent task
- Useful for cleaning up nested task lists while editing
- Node.js 20.x or later
- npm
- An Obsidian vault for testing
-
Clone the repository:
git clone https://github.com/heliostatic/completed-task-display.git cd completed-task-display -
Install dependencies:
npm install
-
Build the plugin:
npm run build
-
Link to your test vault:
# Create a symlink to your vault's plugins folder ln -s /path/to/completed-task-display /path/to/vault/.obsidian/plugins/completed-task-display -
Start development mode:
npm run dev
This will watch for changes and rebuild automatically.
-
Reload the plugin in Obsidian:
- Open Command Palette (
Ctrl/Cmd + P) - Run "Reload app without saving"
- Or manually disable and re-enable the plugin
- Open Command Palette (
completed-task-display/
├── main.ts # Main plugin code
├── styles.css # Plugin styles
├── manifest.json # Plugin manifest
├── versions.json # Version compatibility mapping
├── package.json # NPM dependencies
├── tsconfig.json # TypeScript configuration
└── rollup.config.js # Build configuration
- Development build:
npm run dev(watches for changes) - Production build:
npm run build
-
Copy built files to a test vault:
cp main.js manifest.json styles.css /path/to/vault/.obsidian/plugins/completed-task-display/
-
Reload Obsidian and test:
- Toggle completed tasks on/off
- Test with various task statuses
- Verify state persistence after restart
- Obsidian API: v1.10.0
- Minimum Obsidian Version: 0.10.0
- Node.js: 20.x (for development)
- TypeScript: 5.9.3
The plugin uses CSS classes to toggle visibility:
- Adds
hide-completed-tasksclass to document body when active - CSS selectors target completed tasks in both Reading and Edit modes
- State is persisted using Obsidian's data storage API
Runtime:
- Obsidian API (provided by Obsidian)
Development:
- TypeScript 5.9.3
- Rollup 4.52.5
- Various Rollup plugins for bundling
See package.json for complete dependency list.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
- Check existing issues first
- Use issue templates when available
- Include Obsidian version and plugin version
- Provide steps to reproduce bugs
- Fork the repository
- Create a feature branch
- Follow the existing code style
- Test your changes thoroughly
- Update documentation as needed
- Submit a pull request with a clear description
MIT License - see LICENSE file for details.
- 🐛 Fix: Only hide
[x]and[X]tasks, not all custom statuses - Fixes support for Tasks plugin custom statuses
- Resolves issues #3, #13, #19
- 🐛 Fix: CSS syntax error
- 🐛 Fix: Error handling for corrupted data
- 🐛 Fix: Line number display in edit mode (#28)
- 🔧 Update package.json metadata
- 🚀 Modernize dependencies (TypeScript 5.9.3, Rollup 4.52.5)
- 🚀 Modernize GitHub Actions workflow
- 📄 Add MIT LICENSE file
- State persistence between sessions
See full changelog for all versions.
Created by Ben Lee-Cohen
