cd /news/developer-tools/obsidian-logseq-compatible-tasks · home topics developer-tools article
[ARTICLE · art-85805] src=perrotta.dev ↗ pub= topic=developer-tools verified=true sentiment=· neutral

obsidian: logseq-compatible tasks

Developer perrotta.dev adopted the TODOseq community plugin (version 0.18.1) for Obsidian to preserve Logseq task syntax in shared markdown files, after auditing the plugin's source code and finding no network requests, telemetry, process execution, or dynamic code evaluation. The plugin reads and modifies notes through Obsidian's vault API, allowing clickable task states without converting task formats, easing the transition from Logseq to Obsidian.

read1 min views2 publishedJul 29, 2026

Previously.

Problem statement: preserve Logseq’s task syntax while opening the same markdown files in Obsidian.

My migration script originally converted every task into Obsidian’s checkbox syntax:

- TODO buy milk     ->  - [ ] buy milk
- DOING ...         ->  - [/] ...
- DONE ...          ->  - [x] ...

Obsidian itself does not recognize the left-hand side as tasks. The TODOseq community plug-in does:

- TODO buy milk
- DOING ...
- DONE ...

It keeps the file unchanged, adds clickable task states and a task list to Obsidian, and remains compatible with Logseq.

Before granting a community plug-in write access to my vault, I inspected the current release with the LLM™:

% git clone --depth=1 https://github.com/scross01/obsidian-todoseq.git /tmp/obsidian-todoseq-audit
Cloning into '/tmp/obsidian-todoseq-audit'...
% cd /tmp/obsidian-todoseq-audit
% git rev-parse --short HEAD
4ba5e81
% jq '{id, version, minAppVersion, description}' manifest.json
{
  "id": "todoseq",
  "version": "0.18.1",
  "minAppVersion": "1.11.0",
  "description": "Lightweight keyword-based task tracker using Logseq style keywords."
}

A source scan found no network requests, telemetry, process execution, or dynamic code evaluation 1.

It does read and modify notes through Obsidian’s vault API, as expected:

% rg -n 'vault\.(read|modify)' src/services/editor-controller.ts | head -4
1130:        const currentContent = await this.plugin.app.vault.read(todayNote);
1135:        await this.plugin.app.vault.modify(todayNote, newContent);
1283:        const todayContent = await this.plugin.app.vault.read(todayNote);
1286:        await this.plugin.app.vault.modify(todayNote, newTodayContent);

Low risk, and no task-format conversion needed.

This should make it easier for me to adapt my LogSeq muscle memory to Obsidian, even if at the cost of enabling community plug-ins.

🤖 *Drafted with *

/bloggify

.Hope is not a strategy. ↩︎

— § —

Reply via [email](mailto:serendipity@perrotta.dev?subject=Reply to: obsidian: logseq-compatible tasks)

── more in #developer-tools 4 stories · sorted by recency
── more on @perrotta.dev 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/obsidian-logseq-comp…] indexed:0 read:1min 2026-07-29 ·