Skip to content

Add obsidian-todo extension#27674

Open
williebsweet wants to merge 4 commits intoraycast:mainfrom
williebsweet:submit/obsidian-todo-20260505-142831
Open

Add obsidian-todo extension#27674
williebsweet wants to merge 4 commits intoraycast:mainfrom
williebsweet:submit/obsidian-todo-20260505-142831

Conversation

@williebsweet
Copy link
Copy Markdown

Description

Adds obsidian-todo, a Raycast extension for creating and managing markdown todo items inside an Obsidian note.

Features included:

  • add new todos from Raycast
  • toggle existing todos complete/incomplete
  • edit and delete todo lines in place
  • open the source note in Obsidian
  • reveal the note in Finder

The extension is configured through preferences for:

  • Obsidian vault folder
  • todo note path
  • create note if missing
  • new todo placement

Screencast

Setup and usage screenshots are included in the extension metadata folder.

Checklist

Validation

  • npm run lint
  • npm run build

@raycastbot raycastbot added new extension Label for PRs with new extensions platform: macOS labels May 5, 2026
@raycastbot
Copy link
Copy Markdown
Collaborator

Congratulations on your new Raycast extension! 🚀

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days.

Once the PR is approved and merged, the extension will be available on our Store.

@williebsweet williebsweet marked this pull request as ready for review May 5, 2026 18:56
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 5, 2026

Greptile Summary

This PR introduces obsidian-todo, a new Raycast extension for browsing, creating, editing, toggling, and deleting markdown checkbox tasks inside a single Obsidian note. All previously flagged concerns (stale lineIndex, Form.TextArea multi-line corruption, $schema absence, floating latest dependency, and manual Preferences interface) have been addressed in this revision.

  • todo-note.tsresolveTodoLineIndex gracefully handles stale snapshot indexes by falling back to exact-line matching then text/indent/bullet fuzzy search, preventing silent line-corruption on concurrent edits.
  • manage-obsidian-todos.tsx — Uses Form.TextField (single-line only), wraps every mutation in runMutation for consistent toast feedback, and splits todos into Open / Completed sections.
  • package.json — Includes $schema, a semver-pinned @raycast/api version, the Productivity category, and a macOS platform declaration.

Confidence Score: 5/5

Safe to merge — the extension is self-contained, writes only to the user-specified note file, and all previously flagged issues have been resolved.

The extension reads and writes a single local markdown file with no network calls or privilege escalation. Mutation safety is handled by resolveTodoLineIndex, which re-reads the file and searches for the correct line before committing changes. No remaining issues were found that would produce incorrect behavior for users.

No files require special attention.

Important Files Changed

Filename Overview
extensions/obsidian-todo/src/lib/todo-note.ts Core library for reading, parsing, and mutating the Obsidian todo note; now includes resolveTodoLineIndex to handle stale index after concurrent edits, correctly normalizes line endings, and guards against missing files.
extensions/obsidian-todo/src/manage-obsidian-todos.tsx Main Raycast command; uses Form.TextField (not TextArea), wires up all CRUD handlers through runMutation with toast feedback, and correctly separates open/completed todos into sections.
extensions/obsidian-todo/package.json Extension manifest includes $schema, correct Productivity category, macOS platform, and semver-pinned @raycast/api dependency — no floating latest tag.
extensions/obsidian-todo/raycast-env.d.ts Auto-generated type declarations for preferences and arguments; Preferences and command-scoped types are correctly exported as globals.
extensions/obsidian-todo/CHANGELOG.md Initial release entry uses the required {PR_MERGE_DATE} placeholder per Raycast convention.

Reviews (4): Last reviewed commit: "Load generated Raycast types in tsconfig" | Re-trigger Greptile

Comment thread extensions/obsidian-todo/src/manage-obsidian-todos.tsx Outdated
Comment thread extensions/obsidian-todo/src/lib/todo-note.ts Outdated
Comment thread extensions/obsidian-todo/.prettierrc
Comment thread extensions/obsidian-todo/src/lib/todo-note.ts Outdated
Comment thread extensions/obsidian-todo/package.json
Comment thread extensions/obsidian-todo/package.json Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new extension Label for PRs with new extensions platform: macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants