goryugocast5k downloadsLive Life Recording — operate tasks directly in Markdown with start/finish records, routine insertion, and a lightweight daily summary.
English site: https://goryugo.com/en/llr/ 日本語サイト: https://goryugo.com/topics/llr
An Obsidian plugin that records task start times, finish times, and daily flow directly in Markdown. One command — Toggle Task — covers create, start, and finish. No external database, no lock-in. Uninstall anytime; your records stay as plain text.

There are many task plugins for Obsidian. LLR is different in four specific ways:
grep your history.Toggle Task creates, starts, and finishes — no separate commands to remember. Long-press and Adjust-Time fill in the rest.routine/ folder. Repeat patterns are written in human-readable shorthand (e.g. every 3 days from completion or every week on mon). Completion auto-advances next_due.docs/ as ~20 Markdown files. Point any AI at the folder and it can answer "how do I…?" without you reading manuals.Spend your attention on recording, not on learning the tool.
goryugocast/llrRequires Obsidian 1.7.2 or later.
All you need to learn first is Toggle Task:
| Step | Action | Result |
|---|---|---|
| 1 | Run Toggle Task on an empty line |
- [ ] appears |
| 2 | Run Toggle Task again |
- [/] 09:00 - (start time inserted) |
| 3 | Run Toggle Task once more |
- [x] 09:00 - 09:28 (28m) (elapsed time computed) |
That's it. The record is just a Markdown checkbox — edit timestamps by hand any time and LLR recalculates.
LLR avoids "fighting" normal editing. Auto-corrections only fire when you trigger them via commands or checkbox gestures, never on idle text changes.
See the cheatsheet for a quick reference (includes a "what do I do when…?" reverse-lookup table).
| State | Format |
|---|---|
| Unstarted | - [ ] HH:mm Task name (estimate) |
| Running | - [/] HH:mm Task name HH:mm - (estimate) |
| Done | - [x] HH:mm Task name HH:mm - HH:mm (est > actual) |
Estimates accept 30, 1.5h, 45m, 30 min — written inline in parentheses or as a bare token at the end.
Inline markers (full reference: recording format spec):
@done — for routines with start_before, mark "this occurrence is already done" while the task is still in its pre-window.@MMDD / @M/D / @2026-05-30 — reschedule a routine to a specific date.→done / →YYYY-MM-DD so they're not re-fired.The three you'll use most:
| Command | What it does |
|---|---|
Toggle Task |
Create → Start → Finish (the main verb) |
Adjust Time (1m) |
Smart 1-minute nudge: with one timestamp on the line, the start time moves back 1m; with two, the end time does. Completed lines recompute duration automatically. |
Open Summary View |
Show today's progress in the sidebar |
Auxiliary commands:
Start Task / Complete Task / Start Task (Align to Previous Completion)Reset Task (Keep Estimate) / Duplicate Task / Interrupt TaskSkip Task (Log Only) / Retro Complete TaskReschedule Routine / Insert RoutineFix Duration Drift (All Completed Tasks)Full reference: commands spec.
Each note under a routine/ folder is one routine. Define repeat behavior in the YAML frontmatter, then run Insert Routine to expand today's due routines into your daily note.
---
estimate: 15 # minutes
section: 700 # groups under the 7:00 section header
repeat: every week on mon wed fri
next_due: 2026-05-25
start_before: 2 # show 2 days before next_due
---
A few repeat patterns:
1 / 3 — every day / every 3 daysevery week on mon / every 2 weeks on mon wed fri — weeklyevery month on 1 / every month on 5,10,15 / every month on last day — monthly by dayevery month on 2nd sat / every month on last sat — monthly by Nth weekdayevery 3 days from completion / every 5 days from due — choose the anchornone / no / 0 — stopJapanese shorthand (毎週月曜, 毎月1日, 第2土曜日, etc.) is also accepted for users who prefer it.
Once a routine is completed, next_due updates automatically. The full "is this routine due today?" decision tree is in the routine engine spec §3.6.

Run Open Summary View for a sidebar overview of the day.
EST. TOTAL and EST. FINISH updated dynamically as the day progressessummary_role: sleep are excluded from the main totals; a separate sleep-aware finish time is shown alongside[[wikilink]] to open the linked noteRoutine Sections setting (time + label pairs)Details: sidebar summary view spec.
Register Toggle Task in Obsidian's Mobile Toolbar (the icon row above the keyboard).
Large Mobile Checkboxes in settings for a bigger tap targetShows three values:
total — sum of today's task estimatescursor — sum from the cursor position onwardend — current time + remaining estimates = projected finish timeOnly end-of-line time tokens are counted, so numbers in the middle of text don't get accidentally aggregated.
LLR aims to make "writing it down in Markdown" feel cheap and natural. The following are intentionally out of scope:
The full "can it do X?" list is in implementation summary §3.
| Topic | Link |
|---|---|
| Index (start here) | docs/index.md |
| Quick manual | docs/クイックマニュアル.md |
| Cheatsheet (with reverse lookup) | docs/チートシート.md |
| Current release notes | docs/specs/今回のバージョンについて.md |
| Design philosophy | docs/specs/設計思想.md |
| Public site (EN) | https://goryugo.com/en/llr/ |
| Public site (JA) | https://goryugo.com/topics/llr |
The docs/ folder is structured to be fed to an AI assistant. Drop it into a Cursor / Claude / ChatGPT project to ask questions about behavior. Most spec files are written in Japanese, but AI tools translate transparently on the fly.
npm install
npm run dev # watch build
npm run build # production bundle (main.js)
npm run build:sync # bundle + sync to a local Obsidian vault
npm run lint # eslint
npm test # vitest (watch)
npx vitest run # vitest (one-shot)
To cut a release, push a semver tag (e.g. 0.2.0). The .github/workflows/release.yml workflow builds, runs lint and tests, attests the artifacts, and creates a GitHub Release automatically.