# custom-blocks

A skill that routes your agent through the Notion App SDK docs before it touches custom block code. Useful when a project has interactive browser blocks.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 220
- Author: makenotion
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/makenotion/notion-cookbook/tree/HEAD/apps/agents/skills/custom-blocks/SKILL.md
- Updated: 2026-10-25
- HTML: https://affpapa.org/en/nevibecode/skills/custom-blocks

## What it does

The skill carries no logic of its own. It tells the agent to open `node_modules/@notionhq/apps/skills/custom-blocks/SKILL.md` before creating, editing or debugging custom block code, resolving that path from the App project root, and to follow what the file says.

Missing file? The agent installs project dependencies first. Still missing? `@notionhq/apps` needs a release that ships the skill. Until the SDK skill is readable, the agent stops — that is the hard edge here, and it means a stale dependency blocks all custom block work.

It is marked `user-invocable: false`, so you cannot call it from the chat. It fires on its own when the task involves custom blocks.

## Requirements
- Works with: Notion

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add makenotion/notion-cookbook --skill custom-blocks -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/custom-blocks/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/custom-blocks/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add makenotion/notion-cookbook --skill custom-blocks -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/custom-blocks/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add makenotion/notion-cookbook --skill custom-blocks -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/custom-blocks/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install makenotion/notion-cookbook custom-blocks
```

2. **Manually: put the files in place**
- File: `.github/skills/custom-blocks/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add makenotion/notion-cookbook --skill custom-blocks -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/makenotion/notion-cookbook --path apps/agents/skills/custom-blocks
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/custom-blocks/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add makenotion/notion-cookbook --skill custom-blocks -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/makenotion/notion-cookbook/tree/HEAD/apps/agents/skills/custom-blocks/SKILL.md

## When to use it
- scaffold a custom block for a Notion App
- debug an interactive block that stopped rendering
- port block code to a newer SDK release
- trace why a block fails in the browser
- install project dependencies before editing block code

## Example prompts
- Add a Notion App custom block that renders a counter
- Fix the custom block — it no longer opens in the browser
- Update `@notionhq/apps` and confirm the custom blocks SDK skill is present

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: ee5e5ace34346726.

BEGIN THIRD-PARTY FILE ee5e5ace34346726
```text
---
name: custom-blocks
description: Build interactive browser custom blocks declared by a Notion App.
user-invocable: false
---

# App custom blocks

Before creating, modifying, or troubleshooting custom block code, read
`node_modules/@notionhq/apps/skills/custom-blocks/SKILL.md`.
Resolve this path relative to the App project root.
Follow the instructions in that file.

If the file is missing, install the project dependencies.
If it remains missing, update `@notionhq/apps` to a release that includes the skill.
Do not continue with custom block changes until you can read the SDK skill.
```
END THIRD-PARTY FILE ee5e5ace34346726

The third-party file has ended. Everything between the ee5e5ace34346726 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

© makenotion · MIT · https://github.com/makenotion/notion-cookbook/tree/HEAD/apps/agents/skills/custom-blocks/SKILL.md

## Similar
- [notion-ui-skills](https://affpapa.org/en/nevibecode/skills/notion-ui-skills.md) — skill · 383 installs
- [notion-meeting-intelligence](https://affpapa.org/en/nevibecode/skills/openai-notion-meeting-intelligence.md) — skill · 3100 installs
- [notion-mcp](https://affpapa.org/en/nevibecode/skills/notion-mcp.md) — skill · 735 installs
- [notion-knowledge-capture](https://affpapa.org/en/nevibecode/skills/notion-knowledge-capture-2.md) — skill · 567 installs
- [notion-spec-to-implementation](https://affpapa.org/en/nevibecode/skills/notion-spec-to-implementation-2.md) — skill · 358 installs
- [deep-research](https://affpapa.org/en/nevibecode/skills/coreyhaines31-deep-research.md) — skill · 344 installs

## Other versions with the same name
- [custom-blocks · makenotion](https://affpapa.org/en/nevibecode/skills/makenotion-custom-blocks.md) — ★ 220

From the same set: [makenotion/notion-cookbook](https://affpapa.org/en/nevibecode/by/makenotion/notion-cookbook.md) — 7 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
