npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

course-professor

v2.0.0

Published

A Socratic learning assistant - teaches by asking questions instead of giving answers. Works with Claude Code, OpenCode, Gemini CLI, and other AI agents.

Readme

Professor — A Socratic Learning Plugin for Claude Code

A Claude Code plugin that teaches you to code by asking questions instead of giving answers.


What Is This?

Most AI coding assistants will write code for you the moment you ask. Professor does the opposite. It is built on the Socratic method: rather than handing you a solution, the professor asks questions that help you reason through the problem yourself. You think, you try, you make mistakes, and you learn.

This is intentional by design — not a limitation. When you type professor:stuck, the professor will not write the code for you. It will ask what you have tried so far, what you think might be going wrong, and nudge you toward the next insight. This approach works for all experience levels: beginners learning fundamentals, intermediate developers tackling system design, and advanced engineers studying cutting-edge concepts. The goal is genuine, durable understanding — the kind you only get by solving things yourself.


Requirements

  • Claude Code — this plugin is designed for Claude Code only (v1.0). Multi-platform support is not in scope.
  • Node.js — required for hook scripts (Node.js 18 or newer recommended).
  • Notion or Obsidian — only needed if you want to use the professor:export command. See setup sections below.

Install

Option 1: Using npx (Recommended)

npx course-professor init

This will auto and set up the plugin-detect your agent. Or specify manually:

npx course-professor setup claude   # Claude Code
npx course-professor setup cursor   # Cursor
npx course-professor setup opencode # OpenCode
npx course-professor setup gemini   # Gemini CLI

Option 2: Manual Install

  1. Clone the repo:

    git clone https://github.com/your-username/course-learning-plugin.git
  2. Create the plugins directory (if it does not exist):

    mkdir -p ~/.claude/plugins
  3. Symlink the repo into the plugins directory:

    ln -s "$(pwd)/course-learning-plugin" ~/.claude/plugins/professor

    Alternatively, you can clone directly into the plugins directory:

    git clone https://github.com/your-username/course-learning-plugin.git ~/.claude/plugins/professor
  4. Restart Claude Code to reload plugins. The professor:* commands will be available in your next session.


Notion MCP Setup

Only needed if you want to export your notes and progress to Notion using professor:export.

Step 1: Create a Notion integration

  1. Go to notion.so/my-integrations
  2. Click "New integration"
  3. Give it a name (e.g., "Professor Plugin"), click Submit
  4. Copy the Internal Integration Token shown on the integration page

Step 2: Share your target page with the integration

  1. Open the Notion page where you want exports to appear
  2. Click the ... menu → Connections → find your integration and connect it

Step 3: Add the MCP config

Create or edit .mcp.json in your project root (or ~/.claude/settings.json under "mcpServers" depending on your Claude Code version):

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-notion"],
      "env": {
        "NOTION_API_TOKEN": "your-notion-integration-token-here"
      }
    }
  }
}

Replace your-notion-integration-token-here with the token you copied in Step 1.


Obsidian MCP Setup

Only needed if you want to export your notes and progress to Obsidian using professor:export.

Step 1: Install the Obsidian Local REST API plugin

  1. In Obsidian, open Settings → Community plugins
  2. Search for Local REST API and install it
  3. Enable the plugin, then go to its settings
  4. Copy the API Key shown there (the default port is 27123)

Step 2: Add the MCP config

Create or edit .mcp.json in your project root:

{
  "mcpServers": {
    "obsidian": {
      "command": "npx",
      "args": ["-y", "mcp-obsidian"],
      "env": {
        "OBSIDIAN_API_KEY": "your-obsidian-rest-api-key-here",
        "OBSIDIAN_HOST": "127.0.0.1",
        "OBSIDIAN_PORT": "27123"
      }
    }
  }
}

Replace your-obsidian-rest-api-key-here with the API key from Step 1. Update OBSIDIAN_PORT if you changed the default port in the plugin settings.


Commands

| Command | Category | Description | |---|---|---| | professor:new-topic | Course Navigation | Start a new course topic — the professor proposes a syllabus for your review | | professor:next | Course Navigation | Move to the next exercise in the current topic | | professor:done | Course Navigation | Mark the current exercise complete and reflect on what you learned | | professor:review | Course Navigation | Review a concept from earlier in the course | | professor:syllabus | Course Navigation | Display the syllabus for the current course | | professor:progress | Course Navigation | Show your current progress through the course | | professor:hint | Getting Help | Ask for a hint — the professor nudges you without giving the answer | | professor:stuck | Getting Help | Tell the professor you are stuck — expect questions, not solutions | | professor:discuss | Getting Help | Open a free-form discussion about the current concept | | professor:quiz | Getting Help | Ask the professor to quiz you on what you have covered so far | | professor:capstone | Capstone | Begin the capstone project for the current course | | professor:capstone-review | Capstone | Submit your capstone work for Socratic review | | professor:note | Notes & Export | Save a note to your course notes file | | professor:export | Notes & Export | Export your notes and progress to Notion or Obsidian |


Web UI

Run a local web interface for a richer learning experience:

npx course-professor web

The CLI will auto-detect your agent and use its API key. If no key is found, it will prompt you to set one.

Opens at http://localhost:3000 with:

  • Lecture panel — current section rendered with syntax highlighting
  • Chat panel — Socratic conversation with Professor, streamed in real-time
  • Command pills — context-aware shortcuts so you don't need to memorize commands

The web UI reads and writes the same courses/ files as the CLI — switch between them freely.


Scope and Limitations

  • Claude Code only. This plugin targets Claude Code v1.0. Support for other AI platforms, Claude.ai, or multi-agent frameworks is deferred — not in scope for this release.
  • The professor will never complete your exercises for you. That is the whole point. If you ask the professor to write the code for you, it will redirect you with a question. This is not a bug.
  • Notion and Obsidian MCP are optional. The core learning workflow works without any external services. Export requires the relevant MCP server to be running in your project environment.