notion-skills CLI

A CLI that keeps agent skills in a Notion database: browse a shared store, install the ones you need, sync and publish for a team

  • 79 ★ on the repository
  • Last commit
CLI

Extended access

Why this level

  • The CLI reads and writes pages of your Notion database through `ntn` with your authorization
  • Installation puts skill files, which agents then follow as instructions, into shared directories
All reasons and checks

brianlovin/notion-skills

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add cli/brianlovin-notion-skills

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The CLI reads and writes pages of your Notion database through `ntn` with your authorization
  • Installation puts skill files, which agents then follow as instructions, into shared directories

This is third-party code. Review the repository files before installing.

What it does

notion-skills is a command-line utility that turns a Notion database into a skill store for coding agents. Skills are edited in the regular Notion editor, with no IDE, git or PR review, and only the needed ones are installed on a machine. One directory is read by Claude, Codex, OpenCode, Cursor and Gemini: skills land as symlinks from a central folder, plus a `~/.agents/skills/` fallback. The `list`, `install`, `uninstall`, `sync` and `publish` commands manage the store, `gen` asks your agent to draft a skill from a URL, file or prompt, `add owner/repo` pulls a public skill from GitHub, `feed` shows new and updated skills for the week and `audit` checks a skill description and body. You can keep several sources and discuss skills in Notion comments.

Who it is for. Teams that share skills among developers and want to maintain them in Notion, and solo developers with several machines and agents.

Good fit when

  • A team writes skills together in Notion and each person installs only what they need
  • You move between computers and want your skills with `notion-skills sync`
  • You want to sketch a skill from a URL or prompt with `gen` and refine it in the editor
  • You need to pull a public GitHub skill into drafts without enabling it at once
  • Before publishing you check a skill description and test markers with `audit`

Not a fit when

  • You use Windows: the tool targets macOS and Linux
  • You have no Notion workspace or access to its `ntn` CLI
  • Skills are better kept in git with review: the approach assumes editing in Notion
  • You need one shared folder for everyone with no choice: the tool installs selected skills

Example request

Set up notion-skills for our Notion database, show the skill list and install those tagged featured

Limitations

It needs macOS or Linux, Node.js 18 or newer and the `ntn` CLI, installed with `brew install ntn` and signed in with `ntn login`. The utility calls `ntn` to reach Notion, so access follows your Notion authorization. A draft stays on your machine until you run `publish`. If skills with one name are installed from different sources the second gets a prefix such as `personal-deploy`, and `--as` changes the name. To reset state the README suggests `rm -rf ~/.notion-skills` and a new `notion-skills init`, which leaves Notion content untouched.

How to disable. Run `notion-skills uninstall <slug>` for each skill and remove the package with `npm uninstall -g @brianlovin/notion-skills`. Notion pages remain and `unpublish` archives them.

FAQ

How do I install notion-skills?

Run `brew install ntn` and `ntn login`, then `npm install -g @brianlovin/notion-skills` and `notion-skills init`. The wizard asks you to pick a Notion database and agents.

Which agents are supported?

Claude, Codex, OpenCode, Cursor and Gemini, plus a generic `~/.agents/skills/` directory. Skills are symlinked from one folder so every agent sees the same set.

What is a draft?

A skill that is not yet ready for the team: it lives on your machine without a Notion row or in Notion with the Published checkbox off. The `publish` command marks it ready.

How do I install several skills at once?

`notion-skills install --tag featured` installs every skill with that tag and `--all` takes the whole source. Tags are scoped to one source.

What does the `doctor` command do?

It diagnoses problems across every source and `--fix` repairs safe ones. The first step for expired auth is `ntn logout` and `ntn login`.

Discussion

No questions or reviews yet.

CLI tools

Official Notion skills: notion-cli teaches agents the ntn commands for the API and files, notion-apps scaffolds Notion Apps.

SkillExtended access184Repository stars

Twenty-two standalone skills: Notion, Todoist, Tavily, Context7, image generation, converting documents to Markdown

SkillBroad access302Repository stars
Official

The official Notion plugin for Claude Code: four skills, ten slash commands and a connected MCP server in a single install

PluginBroad access504Repository stars

cafe3310's personal skill collection: spec-driven project work, reviews, reports, browser, 3D and video in one repository

SkillExtended access256Repository stars

A Go CLI that keeps skills, agents and rules in one place and syncs them into every AI agent with one command

CLIExtended access3.1KRepository stars
Official

Skills Manager keeps skills in one library and mounts them into Claude Code, Cursor, Codex and other agents through symlinks, with no file copies

CLIExtended access466Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialRepository starsMain difference
notion-skills (this card)no79
Notion Skillsno184skills from Notion itself; here a CLI that stores your own skills in a Notion database and installs them into agent directories
Universal Skills Managerno115a general skills manager; here the source is a Notion database with collaborative editing

README in short

The README explains why to keep skills in Notion and shows getting started and a command table. It then covers drafts, multiple sources, what a skill contains, supported agents and troubleshooting.

README badge

Original SKILL.md

---
name: notion-skills-usage
description: >
  Use the notion-skills CLI to manage AI agent skills from one or more
  Notion-backed workspace stores. Invoke when the user wants to install
  a skill from their team's store, publish a local skill they authored,
  sync installed skills, generate a new skill via their coding agent,
  manage Notion sources (one database per source), or inspect the state
  of installed/available/outdated/draft skills. Triggers on commands
  like install, publish, sync, gen, list, uninstall, unpublish, doctor,
  init, upgrade, open, import, source.
type: core
library: notion-skills
library_version: "0.17.1"
sources:
  - README.md
  - CLAUDE.md
  - .claude/rules/state.md
  - .claude/rules/drift.md
  - .claude/rules/gotchas.md
---

# Using notion-skills

`notion-skills` is an app-store-style CLI for AI coding agent skills. Each Notion database the user has linked is a "source"; they `install` what they want from any source, `publish` to a chosen source, `sync` keeps installed skills fresh across all sources.

## Mental model

A skill is in one of three states:

- **Installed** — has a manifest entry. Invokable via the agent CLI's `/<slug>` shortcut.
- **Draft** — not yet ready for team consumption. Two flavors: (1) local-only (central-store dir exists, no manifest entry, no Notion row), or (2) Notion-side (page exists with `Published = false`). Both share the `✎` marker in `list`.
- **Available** — Notion row with `Published = true`, not installed on this machine.

Two further sub-states for installed skills:

- **Outdated** — the Notion page has changed since the user last synced.
- **Local-edited** — the user edited any file in the skill dir (SKILL.md or sibling) without publishing.

The verb mapping:

| User intent | Verb |
|---|---|
| Author a new skill via the user's coding agent | `gen <input>` |
| Pull a public skill from GitHub | `add <owner/repo>` (mirrors `npx skills add` syntax) |

Report a problem