yniany269 downloadsCapture short thoughts and bring them back into view over time.
Jot down. Look back.
Jotback is a lightweight Obsidian plugin for capturing short thoughts and bringing them back into view over time.
Each memo is stored as an individual timestamped Markdown file. Your notes remain plain text, searchable through Obsidian, and portable without the plugin.
tags property.memos/.| Main view | Random review |
|---|---|
![]() |
![]() |
New memos use timestamped filenames in the following format:
YYYY-MM-DD-HHMMSS-mmm.md
Their Markdown content uses frontmatter for metadata:
---
created: 2026-08-13 20:13:30
pinned: false
tags:
- research
- obsidian
---
Turn reading notes into searchable memos.
When a memo is loaded, its creation time is resolved in this order:
created value.YAML tags are the single source for card tag chips and tag filtering. Hashtags written in the memo body remain part of the rendered Markdown content, but Jotback does not convert them into metadata or duplicate them in the card footer. New memos start with an empty tags: [] property that can be edited through Obsidian's Properties interface.
Jotback only creates and manages created, pinned, and tags. Obsidian's standard aliases and cssclasses properties are neither added nor modified by the plugin.
The default memo folder is memos/. To use another location, open Settings → Jotback → Memo storage folder and choose or enter a path relative to the vault root, for example Notes/Jotback.
Leading, trailing, repeated, and Windows-style separators are normalized. Changing the setting does not move existing memo files; move them in Obsidian's file explorer if they should appear in the new location.
The interface follows the language configured in Obsidian:
Reload the plugin or restart Obsidian after changing the application language so that all existing views and commands are rebuilt with the new locale.
| Command | Action |
|---|---|
Jotback: Open view |
Open or reveal the Jotback view. |
Jotback: Start random review |
Start a shuffled random-review session. |
The sparkle button in the Jotback view opens the random-review dialog. Memos are shuffled with Fisher-Yates and shown once per cycle before the next reshuffle. Its desktop keyboard controls are:
| Key | Action |
|---|---|
Space |
Show another random memo. |
Enter |
Open the current memo. |
Esc |
Close random review. |
Tab / Shift+Tab |
Move between controls while keeping focus inside the dialog. |
On desktop and mobile, clicking or tapping outside the random-review card also closes it.
The heatmap exposes one date in the Tab order. Use Up / Down to move by one day, Left / Right to move by one week, and Home / End to reach the first or last day of the year. Press Enter or Space to apply the date filter. Memo cards and tag filters are also keyboard accessible.
Jotback works entirely inside the local Obsidian vault. It makes no network requests, requires no account or payment, and includes no advertising, analytics, or telemetry.
npm install
npm test
The test suite covers frontmatter parsing, YAML-only tag handling, folder-path normalization, filename dates, creation-time fallback behaviour, and repository caching.
npm run lint
This runs the official eslint-plugin-obsidianmd recommended rules against the plugin source.
npm run build
The production build type-checks the TypeScript source and bundles it with esbuild into main.js. The current build configuration also copies main.js, manifest.json, and styles.css into the bundled test-vault for local testing.
For continuous rebuilds during development:
npm run dev
Copy these files into <your-vault>/.obsidian/plugins/jotback/:
main.js
manifest.json
styles.css
Then enable Jotback under Obsidian's community plugin settings.
src/main.ts Plugin lifecycle, commands, and settings
src/i18n.ts English and Chinese interface translations
src/view.ts Jotback view composition, filtering, and card rendering
src/repository.ts Cached, batched memo loading and data aggregation
src/heatmap.ts Activity heatmap rendering and date selection
src/random-review.ts Random-review dialog and keyboard interaction
src/shuffle-bag.ts Fisher-Yates shuffle and per-session review bag
src/types.ts Shared memo data types
src/utils.ts Frontmatter, tags, filenames, and date utilities
tests/ Utility and repository regression tests
styles.css Plugin interface styles
main.js Generated plugin bundle
TypeScript · Obsidian API · esbuild · Node.js test runner
MIT © 2026 yniany