Autoplans for Obsidian
Your backlog, as notes in your vault
Autoplans is an Obsidian project management plugin. It writes each project into your vault as an ordinary Markdown note, and it can sync Obsidian notes to tasks in both directions: the note is re-rendered from the project on a timer, and two kinds of edit push back — ticking a checkbox, and adding a new "- [ ]" line.
It is an Obsidian plugin for developers who plan in Markdown but need the plan somewhere else as well: in a dashboard, in an editor, in front of a coding agent. The vault becomes one view of the backlog rather than a copy of it that quietly goes stale.
Install it
- 1
Install from the community plugins directory
The plugin is listed in Obsidian’s community directory as Autoplans.dev. Open Settings → Community plugins → Browse, search for it, then Install and Enable. Obsidian updates it in place from then on. Obsidian 1.7.2 or newer is required.
Settings → Community plugins → Browse → Autoplans.dev - 2
Or copy three files by hand
Download main.js, manifest.json and styles.css from the latest release into a folder named autoplans inside your vault’s plugin directory, then enable Autoplans.dev under Settings → Community plugins.
<vault>/.obsidian/plugins/autoplans/ main.js manifest.json styles.css - 3
Sign in with browser
Settings → Autoplans.dev → Sign in with browser opens autoplans.dev; approving there sends the key back through an obsidian:// link, and the plugin verifies it against the endpoint before storing it. Pasting a key into the API key field works too. Change MCP endpoint only if you self-host.
https://autoplans.dev/api/v1/mcp - 4
Choose which projects live in the vault
Under Settings → Two-way sync, tick the projects you want. Each becomes one note in the sync folder — Autoplans by default — written as soon as you tick it and re-rendered every few minutes after that; Sync interval sets how many, five by default. Sync projects now (both ways) forces a round trip.
Autoplans/My project.md - 5
Optional: serve the vault over MCP
Settings → MCP server → Serve MCP from this vault starts a local server on 127.0.0.1 behind a bearer token generated on first enable. Copy config puts a ready-made client entry on your clipboard; for Claude Code the equivalent command is below. Desktop only.
claude mcp add --transport http obsidian-vault http://127.0.0.1:28765/mcp \ --header "Authorization: Bearer <token>"
What the plugin does
Projects in a side panel
The ribbon icon (list-checks) opens a panel listing your projects with their task counts. Expand one to see its tasks with status and priority, and use its Map and Sync to note buttons without leaving Obsidian.
A project written as a Markdown note
Sync to note writes Autoplans/<project name>.md: YAML frontmatter carrying autoplans_project_id, a heading, the description, then one "- [ ]" line per task under ## Tasks with the task id attached as a block reference.
Two-way sync, deliberately asymmetric
The project owns titles, descriptions and ordering, and the note is re-rendered from it on the timer. Two edits go the other way: ticking a box sets the task completed or pending, and a fresh "- [ ]" line creates a task and is rewritten with its new id.
Push current note as a task
The Push current note as a task command asks which project, then creates a task whose title is the filename and whose description is the body with the frontmatter stripped. Agents connected to the vault can do the same thing as a tool call.
The task map in a pane
Map, or the Open task map command, draws a project as a graph in the main pane — tasks as nodes, dependency arrows, subtask and comment counts. It is the same map the dashboard, the desktop app and the VS Code extension render.
An MCP server inside the vault
Desktop only: a local Streamable HTTP endpoint on 127.0.0.1:28765 exposing eight tools — list, read, write, append and search notes, plus list projects, refresh a project note, and push a note up as a task.
Browser sign-in, not copy-paste
Sign in with browser opens autoplans.dev, you approve there, and the key returns through an obsidian:// link. Test connection checks the endpoint and key afterwards and reports how many tools the server exposes.
Ordinary checklist lines
Task lines are plain Markdown checklist items, so the Tasks plugin — which recognises list items starting with spaced brackets — and Dataview read them like anything else in your vault. Nothing about the format is proprietary.
What stays local
Plain-text project management has an obvious appeal: the files are yours, they open in anything, and they outlive the tool that wrote them. A local-first developer workflow only strains at the point where something outside the vault needs the same list — a coding agent, a colleague, a dashboard someone else is watching.
The plugin is explicit about that boundary. It talks to exactly one host, the origin of the MCP endpoint in its settings (autoplans.dev unless you self-host): the endpoint itself for every project and task call, and /api/telemetry/report if you have switched error reports on. Both go through Obsidian’s requestUrl helper rather than the renderer’s fetch, so calls are made by the main process and are not subject to CORS. Signing in is the one thing that leaves Obsidian: /auth/plugin on that same host is opened in your own browser, and the key comes back through an obsidian:// link. What crosses that boundary: the tasks of the projects you ticked for sync, and the title and body of a note at the moment you push it up as a task.
What does not cross it: the rest of the vault. The vault MCP server is off until you switch it on, and binds 127.0.0.1 when you do. Error reporting is a separate toggle, also off by default; when it is on, a report carries the error, its stack trace and the plugin version, with API keys, tokens, e-mail addresses and local paths stripped before sending — never note contents.
That is the practical form of local-first task management: the vault is the working copy you read and edit, and only the list you asked to share is shared. If Obsidian is your personal knowledge management system, the Autoplans folder is one more folder inside it, and a note counts as a project note only when its frontmatter carries autoplans_project_id.
Markdown task management workflows that survive a second tool
A checklist in a note is the quickest way to plan and the quickest thing to lose. Markdown task management workflows tend to fail in the same place: the list gets copied somewhere else — an issue tracker, a prompt, a colleague’s note — and from then on there are two lists, and the one being edited is not the one being read. The point of being able to sync tasks into notes is that the second list stops existing.
The general fix, with or without this plugin, is to give every line an identity that survives editing and to decide which side owns which field. Here each task line carries its id as an Obsidian block reference, so a line can still be found after it has been reworded, moved, or typed into halfway through; and the ownership rules are one-directional on purpose. The project owns titles, descriptions and order. The note owns two things: whether a box is ticked, and whether a new "- [ ]" line has appeared under ## Tasks.
An Obsidian task sync plugin is only worth having if that round trip is dependable, so writes made by the puller are marked while they happen and do not echo straight back up as pushes. Everything else — priorities, dependencies, subtasks, comments — is edited on autoplans.dev or through an agent, and simply reappears in the note on the next pull.
Serve an Obsidian vault over MCP
The other half of the plugin has nothing to do with notes going out. It is an Obsidian MCP server for coding agents, running inside Obsidian, so an agent reads the files you are actually looking at rather than a copy someone exported last week.
Switching it on starts a Streamable HTTP endpoint at http://127.0.0.1:28765/mcp with a token generated on first enable. It answers POST with JSON, returns 405 to GET — which in Streamable HTTP is how a server says it offers no server-initiated stream — and returns 401 to any request without the right bearer token. Binding localhost rather than every interface is what the MCP specification recommends for a server running on your own machine.
The eight tools are obsidian_list_notes, obsidian_read_note, obsidian_write_note, obsidian_append_note, obsidian_search_notes, autoplans_list_projects, autoplans_sync_project_note and autoplans_push_note_as_task. Copy config gives you the client entry below; Regenerate token mints a new token and invalidates the old one, so update your clients after using it.
{
"obsidian-vault": {
"type": "http",
"url": "http://127.0.0.1:28765/mcp",
"headers": { "Authorization": "Bearer <token>" }
}
}Obsidian for software project planning
A vault is a good place to think about a project and a poor place to be the only record of one. Using Obsidian for software project planning works when the notes are one view of a backlog other tools can read too — which is what the sync is for, and why the note format is boring on purpose.
The chain out to a repository is worth stating exactly, because it is shorter than people assume. The plugin syncs notes with Autoplans. Autoplans syncs the plan to a .autoplans folder in the repository, which travels with the checkout, so an agent working in that folder reads the project id from .autoplans/project.json and works the same backlog. The plugin itself never talks to GitHub.
It also means the thinking you do in the vault is not a dead end. A note written while working something out becomes a task with one command, and that task then shows up in the dashboard, in the VS Code extension, in the desktop agent, and in whichever MCP client is pointed at your account.
Questions
Which version of Obsidian does the plugin need?
Obsidian 1.7.2 or newer — that is the minimum app version in the plugin manifest. There is nothing else to install: the map view and the MCP server are both part of the plugin.
Does it work on Obsidian mobile?
The panel, the synced notes, two-way sync, the task map and pushing a note as a task all work on mobile, because network calls go through Obsidian’s requestUrl helper. The vault MCP server is desktop only: it needs Node’s HTTP module, which Obsidian mobile does not provide.
Can I sync Obsidian notes to GitHub?
Not directly, and the plugin does not try to. The chain is: the plugin syncs notes with Autoplans, and Autoplans syncs the plan to a .autoplans folder in the repository. That folder travels with the checkout, so a coding agent working there reads the same project. Your notes themselves are never written to a repository.
What happens to my edits when a synced note is re-rendered?
A sync pushes before it pulls, so two kinds of edit survive: a box you ticked or unticked, and a new "- [ ]" line under ## Tasks, which becomes a task and gets its id written back into the line. Anything else typed into a synced note is replaced on the next pull, because the project is the source of truth for titles, descriptions and ordering.
Does this connect an Obsidian checklist to a task tracker?
That is exactly what the two-way sync is. The lines stay ordinary Markdown checklist items — "- [ ] Build the ingestion module" with the task id as a trailing block reference — so the Tasks plugin and Dataview can query them, while ticking one changes the task’s status on autoplans.dev.
How do I turn a note into a task in Obsidian?
Open the note and run Push current note as a task from the command palette. It asks which project, then creates a task with the filename as the title and the body — frontmatter stripped, first 5,000 characters — as the description. An agent on the vault MCP server does the same through autoplans_push_note_as_task.
Is the vault MCP server reachable from outside my machine?
No. It is off until you enable it, it binds 127.0.0.1 only, and every request must carry the bearer token generated on first enable; anything else gets a 401. The port is configurable in settings, and the server restarts on the new one when you change it.
What does the plugin send to autoplans.dev?
The calls the features need: listing projects and tasks, status changes from ticked boxes, and tasks created from new lines or pushed notes. Error reports are a separate opt-in setting and never include note contents. If you self-host, point MCP endpoint at your own server and both go there instead.
Start with one project idea.
Describe it, get a backlog, and point your agent at it. Free, no card.
Start free