jingmengzhiyue15 downloadsManage OKRs inside your vault with a streamlined dashboard and built-in check-ins.
Plan, track, and review Objectives and Key Results directly inside your Obsidian vault with a dedicated dashboard, embedded progress history, and local-first Markdown storage.
中文文档 · Features · Installation · Quick Start · Usage · FAQ

Vault OKR Manager is an Obsidian community plugin for managing OKRs entirely inside your vault.
The plugin keeps each objective in a single Markdown file and stores:
This storage model keeps your vault cleaner than one-file-per-KR or one-file-per-check-in approaches while still remaining readable, portable, and version-control friendly.
The plugin is local-first by design:
| Item | Requirement |
|---|---|
| Obsidian | 1.4.4 or later |
| Platform | Windows, macOS, Linux, iOS, Android |
| Plugin ID | vault-okr-manager |
| Desktop only | false |
If the plugin is available in the official Obsidian community plugins directory:
Vault OKR Manager.main.jsmanifest.jsonstyles.css.obsidian/plugins/.vault-okr-manager.YourVault/
└── .obsidian/
└── plugins/
└── vault-okr-manager/
├── main.js
├── manifest.json
└── styles.css
Open Settings → Vault OKR Manager and review the defaults:
| Setting | Default | Description |
|---|---|---|
Objective directory |
OKR |
Root folder for all objective files |
Default period type |
quarter |
Default period type for new objectives |
Auto-calculate progress |
true |
Recalculate progress automatically from current and target values |
Open dashboard on startup |
false |
Automatically open the dashboard when Obsidian starts |
Ctrl+P or Cmd+P.2026-W202026-052026-Q22026The plugin creates a file such as OKR/2026-Q2/O1.md.
No separate key result file is created. The new key result is stored inside the objective file.
Progress history is stored inside the related key result, so multiple updates on the same day are supported without creating extra files.
The default structure looks like this:
OKR/
└── 2026-Q2/
├── O1.md
└── O2.md
The plugin no longer creates:
Check-ins settings pathInstead, each objective file contains all related key results and their progress history.
Command labels follow the active plugin language. In English, the commands are:
| Command | Description |
|---|---|
New objective |
Create a new objective |
New key result |
Add a key result to an objective |
Record progress |
Record a progress update for a key result |
Open dashboard |
Open or focus the OKR dashboard |
If Obsidian is using Simplified Chinese, the plugin UI and command names switch to Chinese automatically.
| Type | Format | Example |
|---|---|---|
| Week | YYYY-Www |
2026-W20 |
| Month | YYYY-MM |
2026-05 |
| Quarter | YYYY-Qn |
2026-Q2 |
| Year | YYYY |
2026 |
Each objective file stores:
key-results arraycheckIns arrays inside each key resultExample:
---
okr-type: objective
okr-id: O1
okr-period: 2026-Q2
okr-period-type: quarter
title: Improve engineering quality
owner: Team Lead
status: active
progress: 68
due: 2026-06-30
key-results:
- okr-id: O1-KR1
title: Reach 100% review coverage
current: 80
target: 100
progress: 80
order: 0
checkIns:
- id: O1-KR1-1740000000000
date: 2026-05-18
progress: 80
delta: 10
note: Improved review coverage for backend modules
---
Key result progress:
boolean becomes 100% when completed, otherwise 0%current / target * 100target <= 0, progress is 0%0–100Objective progress:
0% when no valid key results existIf an objective is past its due date and is not completed or cancelled, the plugin:
zh-CN)This version does not support the old prototype where:
If you previously used that prototype, reorganize your data into the current objective-based structure manually.
No. Key results are embedded inside the objective file.
Check-ins folder?No. Progress history is now stored inside the objective file under each key result.
Yes. Multiple updates on the same day are supported.
The dashboard shows an overdue indicator and reminder, and you can postpone the due date directly from the UI.
No. The plugin stores everything in your local vault.
Yes. The plugin supports week, month, quarter, and year period types.
Yes. The plugin is not desktop-only.
The following backlog is based on a review of the current implementation, with priorities ordered by reliability, performance, and product completeness.
git clone https://github.com/jingmengzhiyue/obsidian-okr-manager.git
cd obsidian-okr-manager
npm install
npm run dev
Useful commands:
npm run build
npm run lint
npm test
Before publishing a release:
manifest.jsonpackage.jsonversions.jsonnpm run buildmain.js, manifest.json, and styles.css are attached to the GitHub release as individual assetsVault OKR Manager runs locally inside your vault:
This project is licensed under the MIT License.