{"slug": "obsidian-logseq-compatible-tasks", "title": "obsidian: logseq-compatible tasks", "summary": "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.", "body_md": "♠ [Previously](https://perrotta.dev/2026/07/logseq-obsidian/).\n\n**Problem statement**: preserve Logseq’s task syntax while opening the same markdown\nfiles in Obsidian.\n\nMy migration script originally converted every task into Obsidian’s checkbox syntax:\n\n``` php\n- TODO buy milk     ->  - [ ] buy milk\n- DOING ...         ->  - [/] ...\n- DONE ...          ->  - [x] ...\n```\n\nObsidian itself does not recognize the left-hand side as tasks. The\n[TODOseq](https://github.com/scross01/obsidian-todoseq) community plug-in does:\n\n```\n- TODO buy milk\n- DOING ...\n- DONE ...\n```\n\nIt keeps the file unchanged, adds clickable task states and a task list to Obsidian, and remains compatible with Logseq.\n\nBefore granting a community plug-in write access to my vault, I inspected the current release with the LLM™:\n\n```\n% git clone --depth=1 https://github.com/scross01/obsidian-todoseq.git /tmp/obsidian-todoseq-audit\nCloning into '/tmp/obsidian-todoseq-audit'...\n% cd /tmp/obsidian-todoseq-audit\n% git rev-parse --short HEAD\n4ba5e81\n% jq '{id, version, minAppVersion, description}' manifest.json\n{\n  \"id\": \"todoseq\",\n  \"version\": \"0.18.1\",\n  \"minAppVersion\": \"1.11.0\",\n  \"description\": \"Lightweight keyword-based task tracker using Logseq style keywords.\"\n}\n```\n\nA source scan found no network requests, telemetry, process execution, or\ndynamic code evaluation 1.\n\nIt does read and modify notes through Obsidian’s vault API, as expected:\n\n```\n% rg -n 'vault\\.(read|modify)' src/services/editor-controller.ts | head -4\n1130:        const currentContent = await this.plugin.app.vault.read(todayNote);\n1135:        await this.plugin.app.vault.modify(todayNote, newContent);\n1283:        const todayContent = await this.plugin.app.vault.read(todayNote);\n1286:        await this.plugin.app.vault.modify(todayNote, newTodayContent);\n```\n\nLow risk, and no task-format conversion needed.\n\nThis should make it easier for me to adapt my LogSeq muscle memory to Obsidian, even if at the cost of enabling community plug-ins.\n\n🤖 *Drafted with *\n\n`/bloggify`\n\n.*Hope is not a strategy*. [↩︎](https://perrotta.dev/2026/07/obsidian-logseq-compatible-tasks/#fnref:1)\n\n— § —\n\nReply via [email](mailto:serendipity@perrotta.dev?subject=Reply to: obsidian: logseq-compatible tasks)", "url": "https://wpnews.pro/news/obsidian-logseq-compatible-tasks", "canonical_source": "https://perrotta.dev/2026/07/obsidian-logseq-compatible-tasks/", "published_at": "2026-07-29 12:34:39+00:00", "updated_at": "2026-08-04 09:03:57.866087+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools"], "entities": ["perrotta.dev", "TODOseq", "Obsidian", "Logseq"], "alternates": {"html": "https://wpnews.pro/news/obsidian-logseq-compatible-tasks", "markdown": "https://wpnews.pro/news/obsidian-logseq-compatible-tasks.md", "text": "https://wpnews.pro/news/obsidian-logseq-compatible-tasks.txt", "jsonld": "https://wpnews.pro/news/obsidian-logseq-compatible-tasks.jsonld"}}