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

tutorializer

v1.2.0

Published

tutorializer cli to manage speeches, videos, tutorials and more

Readme

tutorializer

Command-line access to your tutorial-video data on app.tutorializer.com: projects, tutorial definitions, rendered videos, the synthesized voiceover speeches behind them, and per-project pronunciation rules.

Install

npm install -g tutorializer   # global install
npx tutorializer --help       # or run without installing

Requires Node.js 18 or newer.

Quick start

tutorializer login            # browser or API-key login (interactive chooser)
tutorializer projects list    # your projects with their ids
tutorializer videos list --projectId PROJECT_ID
Found 2 project(s):
1. Example App (64a1f2c9e4b0a1b2c3d4e5f6)
2. Example Docs (64a1f2c9e4b0a1b2c3d4e5f7)

Signing up

No account yet? Create one from the terminal — the generated password prints exactly once, and the session is stored so every other command works immediately:

tutorializer signup --email [email protected] --json

Authentication

Two ways in:

  • Browser sessiontutorializer login --browser starts a temporary localhost server, opens your browser to app.tutorializer.com, and receives the session tokens on the redirect back. Tokens are stored in ~/.tutorializer/ and reused by every later command.
  • API keytutorializer login --with-key prompts (masked — never a command argument) for an API key secret created in the app, verifies it with one authenticated call, and stores it. Alternatively export TUTORIALIZER_API_KEY=<key secret> and skip the login step entirely — the key is read from the environment at request time. New keys default to read-only scopes; widen a key in the app before using write commands.

A stored browser session takes precedence over a stored key, which takes precedence over TUTORIALIZER_API_KEY. tutorializer logout clears the stored session and any stored key (an environment key stays in effect).

Without credentials, a command run in an interactive terminal starts the browser login on its own; run non-interactively (no TTY) it fails immediately with exit code 1 and login instructions on stderr — it never opens a browser headlessly.

Commands

Session

tutorializer login              # choose browser or API key interactively
tutorializer login --browser    # log in via browser; tokens land in ~/.tutorializer/
tutorializer login --with-key   # paste an API key secret (masked prompt)
tutorializer logout             # clear the stored session and any stored key

Projects

tutorializer projects list                    # list projects (-n/--limit, default 10)
tutorializer projects get [projectId]         # raw JSON for one project, or the first N
tutorializer projects read <projectId>        # formatted view: name, domain, timestamps
tutorializer projects create <name> --domain example.com   # --domain is optional

Pronunciation rules

Project-wide dictionary entries applied when new voiceover audio is generated:

tutorializer projects pronunciation list --projectId <id>
tutorializer projects pronunciation add <word> <phonemes> --projectId <id> --alphabet ipa
tutorializer projects pronunciation remove <word> --projectId <id>

add adds or replaces the rule for that exact word. --alphabet accepts ipa (default) or cmu. Changing a rule does not regenerate existing audio — use speeches set-pronunciation to regenerate one existing segment.

Speeches

tutorializer speeches list --projectId <id> --language en -n 20   # default 10
tutorializer speeches get [speechId]      # raw JSON for one speech, or a filtered list
tutorializer speeches read <speechId>     # formatted view: text, language, url, duration
tutorializer speeches set-pronunciation <speechId> "<phonetic text>"
tutorializer speeches delete <speechId>
tutorializer speeches purge --contains <substring> --projectId <id> [--language en] [--dry-run] [--yes]

set-pronunciation stores the pronunciation hint and triggers a server-side regeneration of that speech's audio. delete permanently removes the speech record plus its audio and alignment files. purge deletes every speech in a project whose text contains a substring (case-insensitive); it prints the match list first, previews with --dry-run, and prompts for confirmation unless --yes is passed.

Videos

tutorializer videos list --projectId <id> --tutorialId <id> -n 20   # default 10
tutorializer videos get [videoId]       # raw JSON for one video, or a filtered list
tutorializer videos read <videoId>      # formatted view: status, times, url
tutorializer videos delete <videoId>    # permanently remove one rendered output

Tutorials

tutorializer tutorials list --projectId <id> -n 20    # default 10
tutorializer tutorials get [tutorialId]   # raw JSON for one tutorial, or a filtered list
tutorializer tutorials read <tutorialId>  # formatted view

Skills

tutorializer skills list               # names and descriptions of the bundled agent guides
tutorializer skills get tutorializer   # print a bundled SKILL.md to stdout

Schema

tutorializer schema                    # the whole command tree as JSON
tutorializer schema speeches list      # just that command's options and arguments

JSON output

Every data and mutation subcommand accepts --json: real, parseable JSON on stdout with no color. Lists and reads print the records; mutations print a small result object such as { "ok": true, "id": "…" }. Failures print a single-line JSON error object on stderr and exit with code 1:

tutorializer projects list --json
tutorializer speeches delete SPEECH_ID --json   # {"ok": true, "id": "…"}

Configuration

A tutorializer.json in the working directory (or any parent) supplies the default --projectId:

{ "projectId": "64a1f2c9e4b0a1b2c3d4e5f6" }

Explicit --projectId flags win over the config file. TUTORIALIZER_API_URL overrides the API endpoint (default https://api.tutorializer.com) and TUTORIALIZER_APP_URL the browser-login origin (default https://app.tutorializer.com) — only needed against a non-production deployment. TUTORIALIZER_API_KEY supplies an API key secret for headless use (see Authentication).

Usage with AI agents

Install the Tutorializer agent skills — tutorializer (this CLI) and tutorial-library-audit (the MCP-based audit workflow) — for Claude Code, Cursor, Codex, and any other agent that supports the Skills standard:

npx skills add tutorializer/skills

The same guides ship inside the npm package, version-matched to the installed CLI:

tutorializer skills list               # what is bundled
tutorializer skills get tutorializer   # the CLI guide matching this version

Or paste this into your AGENTS.md / CLAUDE.md:

## Tutorial videos

Use the `tutorializer` CLI for tutorial-video data: projects, tutorial
definitions, rendered videos, voiceover speeches, and pronunciation rules.
Run `npx tutorializer skills get tutorializer` for the full guide, and
`tutorializer --help` for the command reference. Log in once with
`tutorializer login`.

Prefer a connector? The Tutorializer MCP server at https://mcp.tutorializer.com/mcp exposes the same data as tools for Claude, ChatGPT, and any MCP-capable host — see tutorializer.com/developers.

License

Apache-2.0