Leftovers

by Kobi Versano
5
4
3
2
1
Score: 50/100

Description

Reviews

No reviews yet.

Stats

1
stars
179
downloads
0
forks
10
days
6
days
6
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
6
commits

README file from

Github

Leftovers

Leftovers moves unfinished tasks from previous daily or weekly notes into the note you're working on. Yesterday's open tasks don't get forgotten, and old notes don't pile up with duplicates.

Installation

In Obsidian, open Settings → Community plugins → Browse, search for Leftovers, then install and enable it.

To install manually, download main.js and manifest.json from the latest release into <vault>/.obsidian/plugins/leftovers/, then enable Leftovers in Settings → Community plugins.

Usage

  1. Open a daily or weekly note.
  2. Put the cursor where you want the tasks.
  3. Run Leftovers: Pull unfinished tasks into this note from the command palette. You can also assign it a hotkey in Settings → Hotkeys.

Every unchecked task from earlier notes of the same kind is inserted at the cursor, oldest first, and removed from the note it came from. A daily note pulls from earlier daily notes, and a weekly note from earlier weekly notes.

Example

Before, in 2026-09-24:

- [x] Send invoices
- [ ] Book dentist
- [ ] Plan launch
  - [x] Draft announcement
  - [ ] Pick a date

After running Leftovers in 2026-09-25, the open tasks move there, along with everything indented under them:

- [ ] Book dentist
- [ ] Plan launch
  - [x] Draft announcement
  - [ ] Pick a date

2026-09-24 keeps only - [x] Send invoices.

What gets moved

  • Only tasks marked [ ] count as unfinished. [x], [-], [>] and other statuses stay where they are.
  • Anything indented under an unfinished task (sub-tasks, notes) moves with it.
  • An unfinished sub-task under a finished task moves on its own and becomes a top-level task.
  • Tasks in frontmatter and code blocks are ignored.
  • Notes dated after the current note are never touched.

Note: Undo (Ctrl/Cmd+Z) removes the pulled tasks from the current note, but it does not put them back in the earlier notes.

Daily notes

Leftovers uses the folder and date format from Obsidian's core Daily Notes plugin, or from Periodic Notes if you use it. The command only appears in the command palette when the open note is a daily note.

Weekly notes

  • With Periodic Notes or Calendar: Leftovers uses that plugin's weekly note folder and format.
  • Without either: any note in the vault whose name matches the Weekly note format in Leftovers' settings is a weekly note.

Settings

Setting Default Description
Weekly note format gggg-[W]ww (e.g. 2026-W40) The date format of weekly note names. Only used when Periodic Notes and Calendar aren't installed.

Development

npm install
npm run dev     # watch build
npm run build   # production build → main.js
npm test        # unit tests

To try a local build, symlink this folder into <vault>/.obsidian/plugins/leftovers/, then enable the plugin in Settings → Community plugins.

Releasing

  1. Bump version in manifest.json and package.json, and add the new version to versions.json.

  2. Commit, then tag the commit with the exact version (no v prefix) and push the tag:

    git tag 1.2.0 && git push origin 1.2.0
    

The Release workflow tests and builds the plugin, attests the build, and publishes a GitHub release with main.js and manifest.json attached.