← Back to Skills Marketplace
obsidian to notion
by
Michael Slater
· GitHub ↗
· v1.0.0
· MIT-0
109
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install obsidian-notion
Description
Sync Markdown files from Obsidian to a Notion database, preserving rich text, tables, lists, code blocks, callouts, quotes, and managing page updates via ups...
Usage Guidance
This skill appears to do what it claims (sync Markdown to Notion) but check the code before running. Specifically: 1) Confirm how you provide the Notion token — the README/SKILL.md and the code disagree (file edit vs env var). 2) Install curl or (preferably) change the script to use Python's requests so the token is not passed on the command line (curl + Authorization header as argv can be visible to other users/processes). 3) Review and set the Notion integration scope to the minimal database permissions needed and rotate the token after use. 4) Verify OBSIDIAN_ROOT and TARGET_DIRS to avoid accidentally syncing unintended files. 5) Run the script in an isolated account or container when you first test it. If you are not comfortable auditing/patching the script, do not paste a production token into it; instead create a dedicated, limited Notion integration for testing.
Capability Analysis
Type: OpenClaw Skill
Name: obsidian-notion
Version: 1.0.0
The skill bundle provides a legitimate utility for syncing Obsidian Markdown notes to a Notion database. The core logic in `scripts/sync.py` uses standard file operations and the Notion API (via `curl` subprocess calls) to perform an 'upsert' operation. While the use of `subprocess.run` is a powerful capability, it is used safely with argument lists rather than shell execution, and the data flow is restricted to the user's local files and the official Notion API endpoint (api.notion.com). No evidence of data exfiltration, persistence, or malicious prompt injection was found.
Capability Assessment
Purpose & Capability
The script implements Obsidian→Notion sync behavior consistent with the skill description (parsing markdown, mapping to Notion blocks, upsert semantics). However the packaging/metadata is inconsistent: the registry lists no required binaries/env but the script invokes curl and reads NOTION_API_KEY from the environment (and the SKILL.md shows a different naming convention / editing-in-file approach). Declaring curl and the Notion credential would be expected.
Instruction Scope
Instructions tell the user to edit the script and run it — that is expected. Concerns: (1) the SKILL.md examples and README show a top-level NOTION_KEY constant, but the actual code uses a CONFIG dict and pulls NOTION_API_KEY from the env by default — the mismatch may cause confusion. (2) The script uses subprocess.run to call curl with the Authorization header on the command line, which can expose the token to other local users/process-listing tools (ps).
Install Mechanism
No install spec is provided (lowest install risk). The code executes external binary 'curl' via subprocess; the registry did not declare curl as a required binary. Ensure curl exists on target systems or modify the script to use a native HTTP library (requests) to avoid reliance on an undeclared external binary.
Credentials
Requested secrets/inputs are proportional: a Notion API token, a database ID, and local Obsidian path are reasonable for this functionality. However: (1) the repo/metadata declared 'Required env vars: none' while the script reads NOTION_API_KEY and the SKILL.md shows a different variable name; (2) the code sends the token on the curl command line (exposes token via process list).
Persistence & Privilege
The skill does not request permanent presence (always=false) and does not modify other skills or global agent config. It only acts when invoked.
How to Use
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install obsidian-notion - After installation, invoke the skill by name or use
/obsidian-notion - Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
obsidian-notion 1.0.0
- Initial release: Sync Markdown files from Obsidian to a Notion database with rich text and block type mapping.
- Supports upsert strategy (delete-then-insert on same-title pages, auto-deduplication).
- Preserves bold, italic, code, links, tables, callouts, quotes, equations, and more.
- Simple configuration: set Notion API token, DB ID, Obsidian vault path, included/excluded directories.
- Matches Markdown elements to native Notion blocks, including support for callout types and proper annotation structures.
- Provides error handling guidance and data pre-processing rules for robust operation.
Metadata
Frequently Asked Questions
What is obsidian to notion?
Sync Markdown files from Obsidian to a Notion database, preserving rich text, tables, lists, code blocks, callouts, quotes, and managing page updates via ups... It is an AI Agent Skill for Claude Code / OpenClaw, with 109 downloads so far.
How do I install obsidian to notion?
Run "/install obsidian-notion" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is obsidian to notion free?
Yes, obsidian to notion is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does obsidian to notion support?
obsidian to notion is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created obsidian to notion?
It is built and maintained by Michael Slater (@molaters); the current version is v1.0.0.
More Skills