Notion To Blog
wasp-lang/wasp
Transfer a blog post from Notion to the Wasp blog. An agent skill from wasp-lang/wasp.
Read, edit, and write Notion pages as Markdown using the solid-notion CLI.
$ npx skills add LeoYeAI/openclaw-master-skills --skill solid-notion -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills solid-notion --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/solid-notion .claude/skills/solid-notion && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "solid-notion" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/solid-notion into .claude/skills/solid-notion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "solid-notion", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/solid-notionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill solid-notion -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills solid-notion --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/solid-notion .agents/skills/solid-notion && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "solid-notion" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/solid-notion into .agents/skills/solid-notion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "solid-notion", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill solid-notion -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills solid-notion --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/solid-notion .cursor/skills/solid-notion && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "solid-notion" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/solid-notion into .cursor/skills/solid-notion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "solid-notion", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/solid-notion--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill solid-notion -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills solid-notion --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/solid-notion .gemini/skills/solid-notion && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "solid-notion" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/solid-notion into .gemini/skills/solid-notion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "solid-notion", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills solid-notionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill solid-notion -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/solid-notion .github/skills/solid-notion && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "solid-notion" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/solid-notion into .github/skills/solid-notion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "solid-notion", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill solid-notion -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills solid-notion --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/solid-notion .opencode/skills/solid-notion && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "solid-notion" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/solid-notion into .opencode/skills/solid-notion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "solid-notion", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
solid-notionRead, edit, and write Notion pages as Markdown using the solid-notion CLI.
Solid Notion is an agent skill from LeoYeAI/openclaw-master-skills. Read, edit, and write Notion pages as Markdown using the solid-notion CLI. Use when pulling Notion content, editing pages, managing changesets, submitting edits, restoring changes, or setting up Notion API authentication. Keywords: solid-notion, Notion, Notion API, markdown, pull, edit, write, submit, restore, changeset, notion page, notion block.
Its SKILL.md is about 5.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `_meta.json`).
It sits in Documents & Office, covering Markdown and Authentication. It works with Notion. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pnpmnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
notion.soFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
NOTION_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Solid Notion loads about 5.3k tokens when it runs. Until then it costs about 91 tokens; SKILL.md has 1,775 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 1,775 words, ~5,250 tokens.
.claude/skills/solid-notion/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.solid-notion is a CLI for reading, editing, and writing Notion pages as Markdown with local reversible changesets.
For normal usage (published package):
npm install -g solid-notion
solid-notion --versionFor local development from source:
pnpm install
pnpm buildBefore using any command that talks to Notion, a token must be configured.
Create a Notion integration to get an API token:
solid-notion auth status --jsonReturns:
{
"ok": true,
"profile": "default",
"config_path": "...",
"token_present": true,
"token_fingerprint": "a1b2c3d4",
"token_valid": null
}If token_present is false, run init first.
printf "%s" "$NOTION_TOKEN" | solid-notion init --token-stdin --jsonReturns on success:
{
"ok": true,
"action": "init",
"profile": "default",
"config_path": "...",
"token_saved": true,
"overwritten": false,
"ignored_inputs": [],
"dry_run": false
}Other token input methods (in precedence order):
| Method | Flag | Notes |
|---|---|---|
| Direct | --token <value> | Visible in ps / shell history |
| Stdin | --token-stdin | Recommended for agents |
| JSON | --input-json '{"token":"..."}' | Useful for structured protocols |
Additional flags:
| Flag | Effect |
|---|---|
--json | Machine-readable JSON output only |
--dry-run | Preview without writing |
--force | Overwrite existing token |
--profile <name> | Use a named profile (default: "default") |
solid-notion auth logout --jsonsolid-notion ls
solid-notion ls --jsonLists all pages that have been pulled to $SOLID_NOTION_HOME/. Does not call the Notion API.
Default output: tab-separated <pulled_at>\t<page_id>\t<title>, sorted newest first.
JSON output (--json): array of objects with page_id, title, pulled_at, path.
solid-notion pagesOutput: tab-separated lines of <last_edited>\t<page_id>\t<title>.
solid-notion search <query>Output: same tab-separated format as pages.
solid-notion show page <page_id_or_name> --format markdown
solid-notion show page <page_id_or_name> --format json<page_id_or_name> can be a UUID or a page title. Default format: markdown.
solid-notion show block <block_id> --format jsonsolid-notion pull page <page_id_or_name> --format markdown --outdir ./outputOptions:
| Flag | Default | Description |
|---|---|---|
--format <format> | json | json or markdown |
--outdir <dir> | $SOLID_NOTION_HOME/<page_id> | Output directory |
--no-local-images | (images downloaded) | Skip downloading images |
--no-local-videos | (videos downloaded) | Skip downloading videos |
--no-recursive | (recursive) | Only first-level blocks |
Outputs the path of the written file.
If the page was already pulled locally, running pull page again fetches the latest content from Notion and overwrites local output files in that directory.
solid-notion pull block <block_id> --outdir ./outputOptions: --outdir <dir>, --no-recursive
All edit/write/submit commands require a strict Notion page ID (UUID format like aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee). Page names are NOT accepted.
Pipe a JSON patch object to stdin:
echo '{"ops": [...]}' | solid-notion edit <page_id>Also accepts a markdown file path (notion-page-<uuid>.md) to resolve the page ID.
CRITICAL: Valid Patch Schema
The patch object must have exactly these keys: ops (array) and notes (string). No other keys allowed.
{
"ops": [
{ "op": "replace_block_text", "block_id": "...", "new_markdown": "...", "reason": "..." },
{ "op": "append_blocks", "parent_block_id": "...", "blocks": [...], "reason": "..." },
{ "op": "set_props", "page_id": "...", "set": {...}, "reason": "..." }
],
"notes": "optional notes"
}Three allowed operation types:
replace_block_textReplaces rich_text content of a block. Supported block types:
paragraph, heading_1, heading_2, heading_3, bulleted_list_item, numbered_list_item, to_do, quote, callout
{
"op": "replace_block_text",
"block_id": "block-uuid",
"new_markdown": "## New heading",
"reason": "Clarified section title"
}append_blocksAppends new blocks under a parent block.
type + rich_text_mddivider needs only typecode supports optional language (defaults to plain text){
"op": "append_blocks",
"parent_block_id": "parent-uuid",
"blocks": [
{ "type": "paragraph", "rich_text_md": "New paragraph content" },
{ "type": "heading_2", "rich_text_md": "New section" }
],
"reason": "Added conclusion section"
}Allowed block types:
paragraph, heading_1, heading_2, heading_3bulleted_list_item, numbered_list_item, to_do, quote, calloutcode, dividerset_propsUpdates page properties (title, rich_text, number, checkbox, select, multi_select, date).
{
"op": "set_props",
"page_id": "page-uuid",
"set": {
"Status": { "type": "select", "name": "Done" },
"Priority": { "type": "number", "value": 3 },
"Done": { "type": "checkbox", "value": true },
"Tags": { "type": "multi_select", "names": ["urgent", "important"] },
"Due Date": { "type": "date", "start": "2026-03-02", "end": null },
"Title": { "type": "title", "md": "New page title" },
"Notes": { "type": "rich_text", "md": "Some notes" }
},
"reason": "Updated status to Done"
}Property value types:
| Type | Shape | Example |
|---|---|---|
number | { "type": "number", "value": 42 } | - |
checkbox | { "type": "checkbox", "value": true } | - |
select | { "type": "select", "name": "Option" } | - |
multi_select | { "type": "multi_select", "names": ["A", "B"] } | - |
date | { "type": "date", "start": "2026-03-02", "end": null } | end optional |
title | { "type": "title", "md": "markdown" } | - |
rich_text | { "type": "rich_text", "md": "markdown" } | - |
solid-notion write <page_id>Reads the workspace files (page.md, .original.md), replaces the page content in Notion, creates a changeset, and cleans up the workspace.
solid-notion submit <page_id> -m "description of changes"CRITICAL: How submit works
submit consumes pending edit logs (created by previous edit commands) and applies them to Notion with transaction-like semantics:
edit-logs/<page_id>/ that don't have .submitted markersversions/. On failure, rolls back already-applied ops using before-snapshots.Exit statuses:
status | Meaning | ok |
|---|---|---|
pushed | All ops applied successfully | true |
nothing_to_submit | No pending edits found | false |
rolled_back | Apply failed but rollback succeeded | false |
failed_needs_reconcile | Apply failed AND rollback partially failed | false |
Submit result format:
{
"ok": true,
"commit_id": "cmt_20260302_143022",
"notion_id": "3d1b-...",
"status": "pushed",
"applied_ops": 3,
"included_edits": 2
}Best practices:
submit after edit operations to publish changesrolled_back, the page is back to original state — no manual cleanup neededfailed_needs_reconcile, manual intervention may be required-m (message) flag is requiredCRITICAL: Use the new command to create Notion pages programmatically
The new command creates a new page under a parent (page or database) with metadata only (title, icon, cover, props) via stdin as JSON. After creation, the page is automatically pulled locally as markdown. To add content (blocks), use the existing edit + submit workflow.
echo '{"title":"My New Page","notes":""}' | solid-notion new --parent <parent_id> -m "Create page" --jsonRequired flags:
--parent <parent_id> — Parent page or database ID-m, --message <message> — Commit messageOptional flags:
--database — Parent is a database (creates as database entry)--json — Output JSON only--dry-run — Validate without creatingCRITICAL: Valid Payload Schema
The JSON payload via stdin must have exactly these keys:
{
"title": "Page Title",
"icon": { "type": "emoji", "emoji": "📝" },
"cover": { "type": "external", "url": "https://..." },
"props": {
"Status": { "type": "select", "name": "In Progress" }
},
"notes": "optional notes about this creation"
}Required fields:
title (string, non-empty)notes (string, can be empty)Optional fields:
icon — { "type": "emoji", "emoji": "🎉" } or { "type": "external", "url": "..." }cover — { "type": "external", "url": "..." }props — Page properties (database entries), same types as set_props plus url, email, phone_numberNo blocks field. Content is added via edit + submit after creation.
Property types for props (database entries):
All types from set_props plus:
url: { "type": "url", "value": "https://..." }email: { "type": "email", "value": "user@example.com" }phone_number: { "type": "phone_number", "value": "+1234567890" }CRITICAL rules:
title, notes, and optional fields — no extra keysprops must match the database schemaTransaction semantics:
new follows the same 4-phase pipeline as submit:
Rollback for new:
Success output (JSON mode):
{
"ok": true,
"commit_id": "parent-id-20260304T120000Z",
"action": "new",
"status": "pushed",
"created_page_id": "abc123-def456",
"page_url": "https://notion.so/abc123def456",
"title": "My New Page",
"parent_id": "parent-id",
"parent_type": "page",
"pulled_to": "/path/to/notion-page-abc123-def456.md"
}Dry run output:
{
"ok": true,
"action": "new",
"status": "dry_run",
"dry_run": true,
"validation": "passed",
"title": "My New Page",
"parent_id": "parent-id"
}solid-notion history <page_id>Output: tab-separated <id>\t<created_at>\t<type>.
Types:
changeset — Created by write or restorenew — Created by new commandsubmit — Created by submit commandsolid-notion restore <page_id> <changeset_or_commit_id>
solid-notion restore <changeset_or_commit_id>Behavior depends on type:
write/restore): Restores page to that changeset's statesubmit or new): Restore to the target hash by undoing only the later submit versions, then writes a new changesetHash-only lookup is supported. If the hash exists in multiple pages, CLI asks you to disambiguate with page ID.
After restore-to-version, local version files after the target hash are deleted.
Outputs the new changeset ID created by restore.
solid-notion pull page <page_id_or_name> --format markdown --outdir /tmp/notion-workThen read the output file path printed to stdout.
Pull the page to a workspace:
solid-notion pull page <page_id> --format markdown --outdir ~/.local/share/solid-notion-cli/<page_id>Edit the local page.md file as needed.
Write changes back:
solid-notion write <page_id>Submit with a message:
solid-notion submit <page_id> -m "Updated section headings"Use this workflow when making precise, targeted edits without pulling full markdown.
Get the target block IDs (you may need to pull JSON first):
solid-notion pull page <page_id> --format json --outdir /tmp
# or inspect specific block:
solid-notion show block <block_id> --format jsonConstruct a valid patch with ops array and notes:
{
"ops": [
{
"op": "replace_block_text",
"block_id": "block-uuid-here",
"new_markdown": "Updated content here",
"reason": "Clarified the explanation"
},
{
"op": "set_props",
"page_id": "page-uuid-here",
"set": {
"Status": { "type": "select", "name": "In Progress" }
},
"reason": "Moving to next phase"
}
],
"notes": "Batch update from review session"
}Apply the patch via stdin:
cat patch.json | solid-notion edit <page_id>Submit the pending edits:
solid-notion submit <page_id> -m "Applied review feedback"CRITICAL rules for JSON patch editing:
ops and notes — no extra keysop, reason, and type-specific fieldsblock_id in replace_block_text must be a valid Notion block IDpage_id in set_props must be the target page UUIDappend_blocks creates new blocks — the created_block_ids are recorded in edit logs for rollbackYou can run multiple edit commands before a single submit. All pending edits are aggregated:
# First edit
echo '{"ops":[...],"notes":"First change"}' | solid-notion edit <page_id>
# Second edit
echo '{"ops":[...],"notes":"Second change"}' | solid-notion edit <page_id>
# Third edit
echo '{"ops":[...],"notes":"Third change"}' | solid-notion edit <page_id>
# Submit all at once
solid-notion submit <page_id> -m "Batch: three related updates"Submit reads all edit logs from edit-logs/<page_id>/, marks them .submitted on success, and creates a single commit record.
List changesets:
solid-notion history <page_id>Restore to a specific hash:
solid-notion restore <page_id> <changeset_or_commit_id>
# or hash-only when unique:
solid-notion restore <changeset_or_commit_id>All data is stored under $SOLID_NOTION_HOME (default: ~/.local/share/solid-notion-cli).
Workspace files (<page_id>/) — Created by pull, used by write:
page.md — The markdown you edit.original.md — Snapshot before editing (for diff/comparison)page.meta.md — Page metadata (properties, etc.)pull, deleted on successful writeEdit logs (edit-logs/<page_id>/) — Created by edit, consumed by submit:
op, block_id/page_id, reason, and before/after valuesedit, marked .submitted on successful submitVersions (<page_id>/versions/) — Created by submit:
commitId, status, ops, beforeSnapshots, applyStatesubmit attempt (even failures)Changesets (changesets/<page_id>/) — Created by write and restore:
history and restorewrite, referenced by history and restore$SOLID_NOTION_HOME/
config.json # Auth tokens (mode 0600)
# Workspace (markdown editing workflow)
<page_id>/
page.md # Edited markdown
page.meta.md # Page metadata
.original.md # Original for diff
versions/ # Submit commits (JSON)
# Edit logs (JSON patch workflow)
edit-logs/<page_id>/
<page_id>-<timestamp>.jsonl # Pending edits (before submit)
<page_id>-<timestamp>.jsonl.submitted # Marker file (after submit)
# Changesets (restorable full-page versions)
changesets/<page_id>/
<page_id>-<timestamp>.md # Changeset with YAML frontmatterOverride the base directory with SOLID_NOTION_HOME environment variable.
| Flag | Effect |
|---|---|
-v, --verbose | Print debug logs to stderr |
-V, --version | Print version |
| Exit code | Error | Meaning |
|---|---|---|
| 2 | missing_arguments | No token provided |
| 3 | invalid_token | Token is empty or invalid |
| 4 | token_already_exists | Token exists, use --force |
| 5 | write_failed | Could not write config file |
All other commands exit 1 on failure and print diagnostics to stderr including error name, message, metadata (status, code, errno, syscall, hostname), cause chain, and stack trace.
--token <value> in automated flows. Use --token-stdin to avoid leaking tokens in process lists.solid-notion auth status --json before running commands. If there is no token, all Notion API calls will fail.edit, write, submit, history, or restore. These commands require strict page UUIDs.--json when you need to parse command output programmatically.submit without -m. The message flag is required.submit takes stdin — it reads from local edit-logs/, not from stdin.status: "rolled_back" — this means Notion writes failed but were undone.status: "failed_needs_reconcile" — this means both apply AND rollback failed.ops and notes allowed).reason field in each op — it is required.replace_block_text or append_blocks.set_props on properties with unsupported types (only: number, checkbox, select, multi_select, date, title, rich_text).new_markdown — pass simple Markdown text (e.g., "## Heading" or "Paragraph with bold").© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/solid-notion of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Solid Notion next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Solid Notion this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~5.3k | Automated safety check: Pass | MIT | |
| Notion To Blogwasp-lang/wasp | 19k | — | ~922 | Automated safety check: Pass | MIT | |
| Prismer NotionPrismer-AI/PrismerCloud | 1.6k | 3 repos | ~4.6k | Automated safety check: Pass | MIT | |
| Crosspostingwasp-lang/wasp | 19k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Notcrawlopenclaw/notcrawl | 134 | — | ~698 | Automated safety check: Pass | MIT | |
| Notion APIintellectronica/agent-skills | 295 | 1 repos | ~3.7k | Automated safety check: Pass | CC0-1.0 |
wasp-lang/wasp
Transfer a blog post from Notion to the Wasp blog. An agent skill from wasp-lang/wasp.
Prismer-AI/PrismerCloud
Notion API + ntn CLI: pages, databases, markdown, Workers. An agent skill from Prismer-AI/PrismerCloud.
wasp-lang/wasp
Crosspost Wasp blog articles (MDX) to DEV.to and Medium. An agent skill from wasp-lang/wasp.
openclaw/notcrawl
A skill your agent uses for local Notion archive search, sync freshness, Markdown/database exports, git-share snapshots, and Notcrawl repo/release work.
intellectronica/agent-skills
This skill provides comprehensive instructions for interacting with the Notion API via REST calls.
github/awesome-copilot
Generate a TypeSpec API plugin with REST operations, authentication, and Adaptive Cards for Microsoft 365 Copilot
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Works with
Categories
Read, edit, and write Notion pages as Markdown using the solid-notion CLI. Solid Notion is an agent skill from LeoYeAI/openclaw-master-skills. Read, edit, and write Notion pages as Markdown using the solid-notion CLI.
Solid Notion fits situations like: pulling Notion content; managing changesets; submitting edits; restoring changes.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill solid-notion -a claude-code`. Or copy the skill folder (skills/solid-notion in LeoYeAI/openclaw-master-skills) into .claude/skills/solid-notion in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill solid-notion -a codex`. Or copy the skill folder (skills/solid-notion in LeoYeAI/openclaw-master-skills) into .agents/skills/solid-notion in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill solid-notion -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/solid-notion, .gemini/skills/solid-notion, .github/skills/solid-notion and .opencode/skills/solid-notion in your project.
Going by SKILL.md and its folder, Solid Notion needs the command-line tools its instructions call (pnpm and npm) and credentials named NOTION_TOKEN. Our summary lists: Node.js; A credential in NOTION_TOKEN.
SKILL.md names 1 domain. In commands or code: notion.so; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Solid Notion is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.3k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Solid Notion: Notion To Blog (wasp-lang/wasp, 19k stars), Prismer Notion (Prismer-AI/PrismerCloud, 1.6k stars), Crossposting (wasp-lang/wasp, 19k stars) and Notcrawl (openclaw/notcrawl, 134 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,158 GitHub stars. The repository holds 1,215 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.