A set of Obsidian plugins for writers who work in plain markdown. Tasks stay in your notes. Content stays in your files. Nothing moves until you say so.
Three plugins, one workflow:
| Plugin | Badge | Focus |
|---|---|---|
| Warped Todo | ␣⌘ |
Capture, prioritize, and focus on tasks |
| Warped Hugo | H⌘ |
Browse and manage Hugo content |
| Warped Reference | g⌘ |
Sync Google Drive docs into your vault |
Tag tasks in your notes. Work through them one at a time.
Most task tools pull you away from your writing. Warped Todo doesn't. You tag items where you write them, and a sidebar surfaces what needs doing. No separate app, no migration, no lock-in.
Add #todo to any line:
- [ ] Review the intake form #todo
- [ ] Update onboarding copy #todo #content
- [ ] Call Dana about the deadline #todo @meOpen the sidebar (Cmd+Shift+T). Your TODOs appear sorted by priority, grouped by project tag. Click a checkbox and the item becomes #todone @2026-05-09, logged to your TODONE file.
That's the whole loop. Everything else is optional.
The problem with task lists: you see everything at once. Focus mode fixes that.
Click the eye icon in the sidebar. The list disappears. One task card takes its place:
Sprint planning prep
in: work/projects.md > Sprint 12
[ ] Write the agenda #todo #focus #sprint
#sprint @bruce
Done Skip Exit focus mode →
Done completes the task and advances the queue. Skip rotates it to the back. When your #focus items are finished, you can continue with the next highest priority or stop.
The header stays in place during focus mode. The eye icon turns amber, and clicking it again exits focus without moving the mouse. Other tab buttons are faded and inert until focus is off.
Your most important TODOs are shown first, based on tags like #focus (meaning I want to focus on this task), and priority (like, #p0). If no priority is set, it falls back to your top-priority TODOs so the card is always useful.
| Tag | Meaning |
|---|---|
#focus |
In the focus queue; shown first in the sidebar |
#p0 – #p4 |
Priority tiers (#p0 is highest) |
#future / #snooze |
Parked; lives in the Snoozed tab |
Items sort: #focus first, then by priority tier, then by tag count. Right-click any row to change priority, snooze, copy, or move.
Any tag that isn't a priority or lifecycle tag becomes a project tag. The sidebar builds a tag cloud from your active TODOs:
- [ ] Write the brief #todo #q2-campaign
- [ ] Review brand assets #todo #q2-campaign
- [ ] Fix nav bug #todo #siteClick #q2-campaign in the cloud to filter. Click again to clear. The cloud only shows tags with active items.
Tag a heading with #todo (or #todos) and the list items beneath it become children of that block — sprints, meeting follow-ups, anything that belongs together:
## Sprint 12 #todos #api
- [ ] Fix auth bug #p0
- [ ] Update docs
**Diagnostics**
- [ ] Add structured logging
- [ ] Wire OpenTelemetry tracesIn the sidebar the heading renders as a single block: header row with the source filename and a → to open the whole block, children indented underneath, bold lines like **Diagnostics** carrying through as in-block labels. The header itself has no checkbox — children are completed individually, and the whole block disappears from the active list once the last child is done. Tag filters keep the parent header visible when only its children match. Right-click → Move to… relocates the entire block — header plus children — to another file in one move.
The same pattern works for #idea / #ideas headings in the Ideas tab.
Not everything is a task. Capture ideas without cluttering your TODO list:
- [ ] What if we rewrote the onboarding flow? #idea #productIdeas get their own tab. Right-click to promote one to a TODO when it's ready to act on.
Type / at the start of a line:
| Command | Inserts |
|---|---|
/todo |
- [ ] #todo |
/idea |
- [ ] #idea |
/today |
Today's formatted date |
/callout |
Obsidian callout block |
Assign items with @handle:
- [ ] Review the API spec #todo @eric
- [ ] Update the FAQ #todo @meHandles are resolved from team.md at your vault root. The tag cloud shows assignee pills alongside project tags (@me first, then other active handles, then @unassigned). Click to filter; click again to clear. Unknown handles are auto-added to the team file.
| Command | Hotkey | What it does |
|---|---|---|
| Copy as Slack Markdown | Cmd+Shift+C |
Converts selected text to Slack mrkdwn |
| Copy as Notion Markdown | Cmd+Shift+N |
Strips Obsidian syntax for clean Notion paste |
Browse and manage your Hugo site content without leaving Obsidian.
If you write for a Hugo site, Warped Hugo gives you a sidebar view of all your content: posts, drafts, and pages grouped by folder, with publish status at a glance.
Open it with Cmd+Shift+H.
The sidebar groups content by top-level folder (posts/, notes/, etc.). Each item shows title, date, and draft status. Click any item to open it in the editor.
Filter by:
- Status: All, Published only, or Drafts only
- Tags: Frontmatter tags from your content
- Folder: Subfolder paths become filterable tags (
posts/tech/tutorials/→ filter bytechortutorials)
Click + in the sidebar header:
- Pick a folder from your content hierarchy
- Enter a title
- A new file is created with Hugo frontmatter (
title,date,draft: true, emptytags)
Pull Google Drive docs into your vault. Give Claude Code access to both.
Warped Reference has two parts:
- Obsidian plugin: A Drive browser sidebar that syncs Docs (to markdown) and Sheets (to CSV) into your vault
- MCP server: Lets Claude Code search your Drive and read vault files through one interface
Open the sidebar. Browse your Drive tree, check files or folders, click Sync. Docs become markdown with frontmatter; Sheets become CSV. Drive is the source of truth; synced files update when the Drive version changes.
---
gdrive_id: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms"
gdrive_path: "Work/Projects/Project Brief.gdoc"
synced: "2026-05-09 14:22"
---
# Project Brief
The project aims to...The MCP server registers as vault in Claude Code. Once set up, Claude can:
- Search Drive by filename or vault by content
- Read any Drive file or vault note
- Pull a Drive doc into the vault in one step (search, download, convert, write)
- Extract sections from large docs by heading name or index
./setup.sh # builds the MCP server and registers it with Claude CodeVerify with /mcp in Claude Code. vault should appear as connected.
- rclone (
brew install rcloneon macOS) - Node.js 18+
- Claude Code
From the repo root:
./install.sh # pick plugins and vaults interactively
./install.sh -a # all plugins (still prompts for vaults)
./install.sh -a -p # all plugins to previously selected vaultsThe installer builds each plugin and copies main.js, manifest.json, and styles.css to .obsidian/plugins/<plugin-name>/ in your selected vaults.
Vault selections are cached in .install-vaults. Use ./install.sh -p to reuse them.
MIT