
loey_space
๐ง Automated Personal Knowledge Management & Second Brain vault architecture for Obsidian featuring HomePulse Dashboard, 2-way habit sync, MOC navigation, and Google Gemini AI enrichment.
updated: 2026-08-13
๐ง loey_space โ Personal Knowledge Management & Second Brain Architecture
A modular, automated, and secure Personal Knowledge Management (PKM) system built inside Obsidian. Engineered around the PARA/MOC methodology, real-time 2-way habit tracking, automated multi-domain AI enrichment, and a unified
#0C0D13ultra-dark command center interface.
๐ Table of Contents
- โก Quickstart
- ๐ผ๏ธ Screenshots
- โจ Main Features
- โก HomePulse Command Center
- ๐๏ธ Vault Directory Architecture
- ๐ Documentation
- ๐ ๏ธ Installation & Setup Guide
- ๐ก Daily Workflows & Keyboard Shortcuts
- ๐ฑ Mobile Workflow
- ๐ Habit Analytics
- ๐ Task System Rules & Conventions
- ๐จ Styling & Aesthetics
- ๐ Security & Git Safety
- ๐งฏ Troubleshooting
- ๐ค Contributing
โก Quickstart
Five minutes from clone to a working dashboard:
- Clone and open โ
git clone https://github.com/lowqualityloey/loey_space.git, then in Obsidian choose Open folder as vault. - Leave Restricted Mode โ Settings โ Community plugins โ Turn on community plugins. Nothing loads until you do.
- Turn auto-updates off โ Settings โ Community plugins โ Auto-update plugins: OFF. Two plugins here are local custom builds and an update replaces them.
- Add an API key (optional) โ
cp .env.example .env, then paste a key from Google AI Studio intoGEMINI_API_KEY. Everything except AI enrichment works without one. - Start today โ
Ctrl + Pโ HomePulse: Open Dashboard View, thenCtrl + Pโ QuickAdd: Create Daily Note.
That's it. Habit tracking, task dashboards and the MOC queries all come alive as soon as a daily note exists.
[!IMPORTANT] Two things that will bite a fresh clone:
homepulseandkanban-status-syncare bundled custom builds in.obsidian/plugins/. Do not install or update them from the Community Store โ HomePulse would be replaced by stock code, and Kanban Status Sync isn't published there at all. Keep Auto-update plugins: OFF.- Secrets live only in
.env, which is git-ignored. Copy.env.example, never commit real keys, and read the Vault Security Policy.
๐ผ๏ธ Screenshots
โก HomePulse Command Center

The custom HomePulse plugin: habits sync two ways with today's daily note, open tasks aggregate from daily notes and project kanbans, and Execution Pulse tracks focus minutes, note rhythm and completion ratios live.
๐ Daily Note

One note per day carrying mood / energy / sleep_hours, habits, a timestamped log, and an AI Daily Summary generated from what was actually logged. Unfinished tasks roll forward automatically; the previous day marks its copies [>] so nothing is counted twice.
๐ Project Kanban

Each project gets a board. Card checkboxes follow their lane automatically โ To Do is [ ], In Progress is [/], Done is [x] with a completion date โ and ticking a card anywhere moves it to Done. Backlog and Archive stay out of the task dashboards.
โจ Main Features
| Feature | Description |
|---|---|
| HomePulse Dashboard | Custom native plugin with real-time widgets โ habits, tasks, pomodoro, focus, projects, tech tree, activity heatmap, all in one view |
| 2-Way Habit Sync | Toggle habits in the dashboard and they instantly update in today's daily note (and vice versa) |
| Multi-Domain AI Enrichment | One shortcut (Ctrl+Shift+A) analyzes any note โ generates summaries for daily notes, explanations for concepts, code breakdowns for dev notes |
| Weekly AI Summaries | Automated 7-day analysis of mood, energy, tasks, and habits with actionable recommendations |
| Habit Analytics Dashboard | 30-day rolling metrics, streak tracking, day-of-week patterns, and improvement recommendations |
| Smart Task Management | Tasks live in daily notes and project kanbans, aggregated in real-time via _Tasks MOC.md with status indicators ([ ], [/], [x]) |
| Project Kanban Integration | Each project gets a visual kanban board; tasks from To Do/In Progress/Review flow into the central task hub (Backlog excluded) |
| GitHub Project Sync | Bi-directional 2-way sync between Obsidian Kanbans and GitHub Projects v2 (github_project_number) via QuickAdd & gh CLI |
| Kanban Status Sync | Drag a card between lanes and its checkbox follows automatically โ To Do [ ], In Progress [/], Done [x] with a completion date |
| Mobile Quick Capture | 4 mobile-optimized commands for instant capture on the go โ process later on desktop |
| Inbox Auto-Classification | Quick captures tagged with type/area/priority suggestions based on content analysis |
| Token Triage Sweep | Tag a capture line #do / #dev / #concept / #learn / #ref / #personal / #project / #bin, then file the whole inbox in one pass โ swept lines are logged, never silently deleted |
| Dynamic Tech Tree | Auto-generated capability map scanning projects, concepts, and resources across the vault |
| Execution Pulse | Live productivity analytics โ habit %, focus minutes, note rhythm, task completion ratios |
| PARA/MOC Architecture | Clean folder separation with Maps of Content for navigation โ scales without friction |
| Ultra-Dark Command Center | Glassmorphic #0C0D13 theme with JetBrains Mono, Inter, and custom CSS snippets |
โก HomePulse Command Center
The heart of loey_space is HomePulse (.obsidian/plugins/homepulse), a high-performance native dashboard plugin:
- ๐ 2-Way Real-Time Habit Sync: Toggling habit checkboxes inside the Habits widget instantly updates
- [ ]/- [x]in today's active daily note (01-Daily/YYYY-MM-DD.md) and99-Templates/Daily.md. - โก Execution Pulse: Live productivity analytics tracking daily habit completion percentage, focus/pomodoro minutes, 7-day note creation rhythm, and task completion ratios.
- ๐ Knowledge Profile: Real-time vault metric counter displaying total Notes, Areas, Projects, and Tags.
- ๐ฏ Today's Focus: Editable focus widget that live-syncs with your daily note's Focus section (supports multiple focus items).
- ๐ ๏ธ System Quick Actions: 1-click execution shortcuts for timestamped daily note generation, quick capture, new projects, and dev snippets.
- ๐ Open Tasks Widget: Live active task feed with Lucide status icons โ In Progress tasks sorted to top, Backlog/Archive excluded.
- ๐ณ Tech Tree: Dynamic capability map auto-generated from your vault's projects, concepts, and resources.
- ๐ Activity History: GitHub-style contribution heatmap showing your vault activity over the year.
๐๏ธ Vault Directory Architecture
loey_space/
โโโ Home.md # Central Command Dashboard (Navigation, Active Tasks, Projects, Inbox)
โโโ 00-Inbox/ # Quick capture dump & triage
โ โโโ _Inbox MOC.md # Unprocessed notes dashboard
โ โโโ _Triage MOC.md # Stale notes & overdue reviews
โโโ 01-Daily/ # Daily logs, habits, energy/sleep tracking, AI reflections
โ โโโ _Daily MOC.md # Daily notes navigation & monthly overview
โ โโโ _Tasks MOC.md # Task command center, in-progress, completion history & analytics
โ โโโ Habit Analytics Dashboard.md # 30-day habit metrics, streaks, trends
โโโ 02-Projects/ # Active development projects & build specifications
โ โโโ _Projects MOC.md # Project dashboard with progress bars
โ โโโ weather-dashboard/ # Example project (notes + Kanban board)
โโโ 03-Dev/ # Code snippets, technical patterns, debugging notes
โโโ 04-Learning/ # Courses, tutorials, & study notes
โโโ 05-Personal/ # Personal goals, life & fitness logs
โโโ 06-Resources/ # Technical documentation, API specs, & system scripts
โ โโโ APIs/ # API specs & integration documentation
โ โโโ scripts/ # Automation (AI enricher, triage-sweep, inbox-status, weekly summary)
โ โโโ Mobile Workflow Guide.md # Mobile capture setup & usage
โ โโโ Second Brain Guide.md # System usage, folder guidelines & workflow rules
โ โโโ Vault Security Policy.md # Secret management & Git safety rules
โโโ 07-Reviews/ # Weekly & Monthly retrospectives (AI-generated)
โโโ 08-Concepts/ # Evergreen technical & domain concepts
โโโ 99-Attachments/ # Monthly subfolders (YYYY-MM/) for screenshots and media
โโโ 99-Templates/ # Master Templater & QuickAdd note blueprints
โ โโโ Daily.md # Daily note template (habits, tasks, reflections)
โ โโโ Mobile Capture.md # Mobile quick capture template
โ โโโ Mobile Task.md # Mobile task capture template
โ โโโ Mobile Idea.md # Mobile idea capture template
โโโ .obsidian/ # Vault configuration, custom plugins, snippets & themes
โ โโโ plugins/homepulse/ # Custom HomePulse dashboard plugin
โ โโโ plugins/kanban-status-sync/ # Syncs kanban card checkboxes to their lane
โ โโโ snippets/ # CSS snippets (dashboard-cards, fonts, project-tasks, homepulse-mobile)
โโโ .kiro/ # Kiro IDE hooks (env validation, git safety, triage suggestions)
โโโ .secrets/ # [GIT-IGNORED] Private human-readable sensitive notes
โโโ .env # [GIT-IGNORED] Real API keys and machine credentials
๐ Documentation
Full reference lives inside the vault rather than a separate docs/ tree, so every guide stays searchable, linkable and enrichable in Obsidian:
| Guide | Covers |
|---|---|
| CONTRIBUTING | Open/closed scope, testing without Obsidian, PR workflow, security rules |
| Second Brain Guide | Folder architecture, QuickAdd flows, the AI enricher contract, triage tokens, task rules, daily routine |
| Mobile Workflow Guide | Mobile toolbar setup and the capture-fast / triage-later loop |
| Vault Security Policy | Secret management and Git safety rules |
| QuickAdd Inbox Optimization Guide | Capture templates and inbox processing |
| Weekly AI Summary Guide | Weekly review generation and its data requirements |
๐ ๏ธ Installation & Setup Guide
Step 1: Clone or Open Vault in Obsidian
- Download or clone this repository to your local computer:
git clone https://github.com/lowqualityloey/loey_space.git - Open Obsidian, click Open folder as vault, and select the
loey_spacedirectory.
Step 2: Environment Credentials Setup (.env)
Copy the example file and fill in your API keys:
cp .env.example .env
Then edit .env with your real credentials:
# Required for AI enrichment (daily summaries, concept analysis, dev note analysis)
GEMINI_API_KEY=your_google_gemini_api_key_here
# Optional - Weather Dashboard project
VITE_OPENWEATHER_API_KEY=your_openweather_api_key_here
# Optional - OpenAI fallback
OPENAI_API_KEY=sk-your_openai_api_key_here
[!IMPORTANT] Getting a Gemini API Key (required for AI features):
- Go to Google AI Studio
- Click Create API Key
- Copy the key and paste it into your
.envfileThe
.envfile is listed in.gitignoreand will never be pushed to version control.
[!WARNING] If
.envis missing orGEMINI_API_KEYis not set:
- AI Daily Summary (
Ctrl+Shift+A) will show an error notice- Weekly AI Summary generation will fail
- Concept and Dev note enrichment will not work
- All other vault features (tasks, habits, navigation, dataview queries) work normally without an API key
Step 3: Enable Core Community Plugins
Go to Obsidian Settings -> Community Plugins and ensure the following plugins are enabled:
- HomePulse โ Dashboard command center & 2-way habit synchronization.
- QuickAdd โ Automation macros & 1-click note generation blueprints.
- Templater โ Dynamic date calculation & variable expansion.
- Dataview โ Real-time indexer queries for MOCs & task tracking.
- Kanban โ Visual board view for project workflows.
- Kanban Status Sync โ Keeps card checkboxes in step with their lane (bundled in this vault, not from the store).
- Calendar โ Visual daily note navigator.
- Activity History โ Contribution heatmap for the dashboard.
[!IMPORTANT] Pre-Configured HomePulse Plugin: This vault comes pre-configured with an enhanced build of the HomePulse plugin located in
.obsidian/plugins/homepulse/(featuring 2-way real-time habit file sync, dynamic Tech Tree scanner, deferred dashboard refresh, and QuickAdd daily note macro integration). Do not re-install or auto-update HomePulse from the Obsidian Community Store, as doing so will overwrite these custom integrations with standard plugin code. Disable automatic plugin updates in Obsidian (Settings -> Community plugins -> Auto-update plugins: OFF).
Step 4: Launch HomePulse Dashboard
- Click the HomePulse icon on the ribbon action bar or press
Ctrl + Pand execute HomePulse: Open Dashboard View.
๐ก Daily Workflows & Keyboard Shortcuts
1-Click Note Creation Shortcuts
Use QuickAdd ribbon buttons or command palette (Ctrl + P -> QuickAdd: Run...):
โณ Create Daily Noteโ Generates today's daily log (01-Daily/YYYY-MM-DD.md) with habits, energy tracking, and task lists.๐ก Create Concept Noteโ Creates a structured evergreen note in08-Concepts/.๐ป Create Dev Noteโ Creates a technical code pattern in03-Dev/.๐ฅ Quick Capture to Inboxโ Appends a quick note to the inbox dump (timestamped).๐งน Archive & Clear Quick Capture Dumpโ Archives processed entries to00-Inbox/Archives/and resets the dump note.๐ Create Project Noteโ Scaffolds a new project with folder and kanban.๐ Sync GitHub Project Kanbanโ Bi-directionally syncs the active project board with GitHub Projects v2 (via left ribbon buttonlucide-githubor QuickAdd).
Multi-Domain AI Enricher (Ctrl + Shift + A)
Position your cursor inside any active note and press Ctrl + Shift + A (or run QuickAdd: AI Enrich Note):
- Daily Notes (
01-Daily/): Generates a narrative summary, AI reflection, inspirational quote, and suggested next step. - Concept Notes (
08-Concepts/): Detects topic domain and generates technical explanations, examples, and related concept links. - Dev Notes (
03-Dev/): Analyzes code snippets and updates tags, context, explanation, and wikilink references.
Inbox Triage (token sweep)
Triage is a decision, not a form. Append a token to any line in 00-Inbox/quick-capture-dump.md:
- i have to do laundry #do
- https://app.lofi.town/ #ref
- semantic commit messages #concept
- lemme test #bin
Then run QuickAdd: ๐งน Triage Sweep once. #do becomes a task in today's daily note; #dev / #concept / #learn / #ref / #personal become real notes with the right frontmatter; #project scaffolds a project folder plus Kanban board; #bin is dropped. Untagged lines stay put, and swept lines are logged (struck through, with their destination) in a ## โ
Triaged section rather than deleted.
At session start, Kiro reports the current state โ e.g. "Inbox: 9 items, oldest 7 days. None tagged yet." โ instead of nagging on every message.
Weekly AI Summary
Run QuickAdd: ๐ Weekly AI Summary (or bind to Ctrl+Shift+W):
- Aggregates 7 days of daily notes (mood, energy, tasks, habits, wins, blockers)
- Generates executive summary, patterns, and recommendations via Gemini AI
- Creates a structured review note in
07-Reviews/YYYY-W[week].md
๐ฑ Mobile Workflow
Designed for capture fast, triage later. All mobile commands land in inbox with ๐ฑ marker.
Mobile Commands (add to Obsidian Mobile toolbar)
| Command | What it does |
|---|---|
๐ฑ Mobile Capture | Appends thought to inbox with timestamp |
๐ฑ Mobile Task | Appends as checkbox to inbox |
๐ฑ Mobile Idea | Creates structured idea note in inbox |
๐ฑ Mobile Add to Daily | Adds task directly to today's daily note |
Setup
- Install Obsidian Mobile and sync the vault
- Go to Settings -> Mobile -> Manage toolbar
- Add the
๐ฑQuickAdd commands - Capture in < 10 seconds, batch-process on desktop
See 06-Resources/Mobile Workflow Guide.md for full setup instructions.
๐ Habit Analytics
The Habit Analytics Dashboard (01-Daily/Habit Analytics Dashboard.md) provides:
- Overall Completion Rate โ 30-day rolling percentage with per-habit progress bars
- Daily Heatmap โ Last 14 days showing which habits were completed each day
- Day-of-Week Patterns โ Which days you're most/least consistent
- Streak Analysis โ Current and longest streaks for each habit
- Trend Analysis โ 7-day moving average with trend indicators
- Improvement Recommendations โ Identifies habits below 70% and suggests fixes
All data is automatically pulled from daily notes โ no manual tracking required.
๐ Task System Rules & Conventions
- Source of Truth: All tasks are logged directly inside daily notes (
01-Daily) or project notes (02-Projects). - Task Status Hierarchy:
- [ ] task=> Active To-Do (Visible in Open Tasks widget &_Tasks MOC.md)- [/] task=> In Progress (Sorted to top, focus anchor)- [x] task=> Completed (Logged in task analytics)
- Habit Isolation: Routine checkboxes under
## ๐ Habitsare strictly isolated from task command centers. - Kanban Filtering: Tasks under
## Backlogand## Archivein project kanbans are excluded from the Open Tasks widget and_Tasks MOC.md. - Lane-Driven Status: Card markers are set automatically from the lane a card sits in (
To Do->[ ],In Progress/Review / Test->[/],Done->[x]+โ date). Cancelled/forwarded markers ([-],[>],[<]) are preserved. - Tick Anywhere to Complete: Ticking a project card from the board,
_Tasks MOC.md, or the daily note's project query moves that card to the Done lane with today's date. - Project Tasks in Daily Notes: Daily notes show in-progress project work through a live Dataview query (
#### ๐ฏ In Progress from Projects), not copied text โ so nothing is double-counted in the Open Tasks widget and nothing leaks into the next day's carry-over. A CSS snippet (project-tasks.css) draws these[/]cards as empty checkboxes inside daily notes, so they read as ordinary open tasks you can tick; cards completed that day stay listed, checked. - Project Status Matching:
_Projects MOC.mdacceptsin progress,in-progress,active,doingandwipas active, so a space instead of a hyphen no longer hides a project. Progress bars count committed work only โ Backlog and Archive are excluded. - Daily Carry-Over: Unfinished
- [ ]tasks under### โ Tasksroll forward into tomorrow's daily note. Completed and in-progress items do not. - Forwarded, Not Duplicated: When tasks carry forward, the previous note marks its copies
- [>](forwarded, shown as a faintโ). Each task is therefore open in exactly one note, so it is counted once in the Open Tasks widget,_Tasks MOC.md, and the analytics. - GitHub Project v2 Sync: Project Kanbans with
github_project_numberfrontmatter sync cards, status columns, and priority tags (#priority/p0Red ๐ด,#priority/p1Yellow ๐ก,#priority/p2Blue ๐ต,#priority/p3Green ๐ข) bi-directionally with GitHub Projects v2. - Today-Scoped Dashboards:
_Tasks MOC.mdcounts daily tasks from the current daily note only; project board tasks are always included. Completed totals stay all-time.
๐จ Styling & Aesthetics
- Ultra-Dark Palette: Designed around a high-contrast
#0C0D13background, sleek card containers, and glassmorphic borders (.obsidian/snippets/dashboard-cards.css). - Mobile HomePulse:
homepulse-mobile.cssoverrides the dashboard's fixed 5-column grid and 132px row height on phones, so cards go full width and grow to fit. Execution Pulse and Knowledge Profile drop to 2ร2, the calendar's weekday labels centre over their columns, and tap targets are raised to 32px. - Typography System: Custom Google Fonts hierarchy (
.obsidian/snippets/fonts.css):- Body / UI:
Inter,Plus Jakarta Sans,Outfit - Code / Monospace:
JetBrains Mono
- Body / UI:
๐ Security & Git Safety
- No Hardcoded API Keys: All machine credentials and API tokens strictly reside in
.env(git-ignored). - Private Notes Directory: The
.secrets/directory is strictly excluded from Git tracking for storing sensitive personal documents. - Session Validation: Kiro IDE hooks check
.envpresence on startup and warn if API keys are missing. - Vault Security Policy: Read the official Vault Security Policy for complete guidelines.
๐ช Enabling the pre-commit guard
A commit-blocking hook ships in .githooks/pre-commit, but Git does not use it until you point at it. Run this once per clone:
git config core.hooksPath .githooks
On a fresh clone, also mark it executable so it survives on other machines:
git update-index --chmod=+x .githooks/pre-commit
It refuses a commit when the staged changes include:
| Check | Blocks |
|---|---|
| Paths | .env, .env.*, .secrets/, 00-Private/, *_secret*, *_private* |
| Content | Google/Gemini (AIzaโฆ), OpenAI (sk-โฆ), GitHub tokens, AWS key IDs, PEM private keys, and *_API_KEY= with a real-looking value |
| Advisory | Warns if sensitive files are already tracked from earlier commits |
Placeholders such as your_google_gemini_api_key_here are allowed, so .env.example and the docs quoting it still commit cleanly. Only added lines are scanned, and any match is redacted in the output rather than echoed back. Deliberate override: git commit --no-verify.
[!WARNING] The hook is a local guard, not a net. It cannot help a machine that hasn't run the
core.hooksPathcommand, and it runs before the push โ so also switch on GitHub secret scanning + push protection (repo Settings โ Code security). That blocks server-side, and unlike a CI workflow it acts before the commit becomes public.If a key ever does reach a public commit, rotate it. Rewriting history does not un-leak it.
๐งฏ Troubleshooting
| Symptom | Cause and fix |
|---|---|
โ ๏ธ GEMINI_API_KEY missing in .env! | No key configured. Run cp .env.example .env and paste a key from Google AI Studio. |
| AI summary reads flat, with a notice about quota | Gemini refused with HTTP 429 and the offline fallback wrote the text. The notice names which limit: a per-minute limit clears in about a minute; a daily limit does not, and resets at midnight Pacific. Re-run Ctrl + Shift + A afterwards to replace it. |
| A bundled plugin or CSS change has no effect | Obsidian loads plugins, snippets and hooks at startup. Run Ctrl + P โ Reload app without saving. |
๐งน Triage Sweep missing from the palette | Register it once: Settings โ QuickAdd โ Manage Macros โ new macro โ Add User Script โ triage-sweep.js, then add it as a Macro choice. |
| Sweep says "no daily note for <date>" | #do files into today's note, which must already exist. Run QuickAdd: Create Daily Note first. |
| HomePulse lost its custom behaviour | It was updated from the Community Store. Restore .obsidian/plugins/homepulse/ from Git history and set Auto-update plugins: OFF. |
| Habit toggles don't reach the daily note | Sync needs today's note at 01-Daily/YYYY-MM-DD.md with a ## ๐ Habits section, and Dataview enabled. |
| Dashboard cramped or overlapping on mobile | Enable the homepulse-mobile snippet: Settings โ Appearance โ CSS snippets. |
๐ง Maintenance
- Updating plugins โ safe for store plugins (Dataview, Templater, QuickAdd, Kanban, Calendar, Activity History). Never for
homepulseorkanban-status-sync, which are local builds with no store equivalent. - Restyling the dashboard โ HomePulse's own
styles.cssis regenerated on rebuild, so put overrides in.obsidian/snippets/instead. That's whathomepulse-mobile.cssanddashboard-cards.cssdo. - After editing
.kiro/hooks/โ reload the app; hooks are read once at session start.
๐ค Contributing
The system is open to contributions; the journal isn't. PRs are welcome for the Kanban Status Sync plugin, the automation scripts, CSS snippets, the pre-commit hook, templates and docs. The numbered content folders are personal notes and are closed to PRs โ though issues are welcome about anything.
See CONTRIBUTING.md for the full scope, plus how to test any script under plain Node by mocking app.vault โ no Obsidian install and no risk to real notes.
๐ License
This project is licensed under the MIT License - see the LICENSE file for complete details.
How to Install
- Download the ZIP or clone the repository
- Open the folder as a vault in Obsidian (File โ Open Vault)
- Obsidian will prompt you to install required plugins
Stats
Stars
0
Forks
0
License
MIT
Last updated 14d ago