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

@ashdev/codex-plugin-release-mangaupdates

v1.21.5

Published

MangaUpdates RSS release-source plugin for Codex - announces new chapter releases for tracked series in user-configured languages

Readme

@ashdev/codex-plugin-release-mangaupdates

A Codex plugin that announces new chapter and volume releases for tracked manga series via MangaUpdates per-series RSS feeds. Notification-only: Codex never downloads anything.

Features

  • Per-series RSS polling via the MangaUpdates feed for each tracked series
  • Filters releases by per-series language preferences (with a server-wide default)
  • Server-wide scanlation group blocklist
  • Conditional GET (ETag) support to keep upstream load low
  • Auto-registers itself as a single source row in Settings → Release tracking on first start
  • No credentials required — MangaUpdates RSS feeds are public

Authentication

None. The plugin only reads public per-series RSS feeds.

Admin Setup

Adding the Plugin to Codex

  1. Log in to Codex as an administrator
  2. Navigate to Settings > Plugins
  3. Click Add Plugin
  4. Fill in the form:
    • Name: release-mangaupdates
    • Display Name: MangaUpdates Releases
    • Command: npx
    • Arguments: -y @ashdev/[email protected]
  5. Click Save
  6. Click Test Connection to verify the plugin works

On first start the plugin auto-registers a single source row (MangaUpdates Releases) in Settings → Release tracking, where you can disable it, change the poll interval, or hit Poll now.

Linking Series to MangaUpdates

For a tracked series to receive announcements, it needs a mangaupdates external ID. Either:

  • Let a metadata-provider plugin populate it (for example, MangaBaka cross-references), or
  • Paste the ID manually into the series' tracking panel

npx Options

| Configuration | Arguments | Description | |--------------|-----------|-------------| | Latest version | -y @ashdev/codex-plugin-release-mangaupdates | Always uses latest | | Pinned version | -y @ashdev/[email protected] | Recommended for production | | Fast startup | -y --prefer-offline @ashdev/[email protected] | Skips version check if cached |

Configuration

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | blockedGroups | string (CSV) | "" | Comma-separated scanlation group names to exclude from announcements (case-insensitive, exact match). Per-series overrides may further extend this list. | | requestTimeoutMs | number | 10000 | How long to wait for a single RSS fetch before giving up, in milliseconds. |

Per-series language preferences live on each series' tracking config and override the server default (release_tracking.default_languages).

How It Works

On every releases/poll:

  1. The plugin pulls the tracked-series scope from the host (filtered server-side to series with a mangaupdates external ID).
  2. For each series, it conditionally GETs the RSS feed using the stored ETag.
  3. Items are filtered by per-series language list and the admin-configured group blocklist.
  4. Surviving items are streamed back to the host via releases/record. The host's matcher applies the threshold and ledger dedup.
  5. The new ETag is passed back so the host updates the source row.

Development

# Install dependencies
npm install

# Build the plugin
npm run build

# Type check
npm run typecheck

# Run tests
npm test

# Lint
npm run lint

Project Structure

plugins/release-mangaupdates/
├── src/
│   ├── index.ts            # Plugin entry point & poll loop
│   ├── manifest.ts         # Plugin manifest
│   ├── fetcher.ts          # Conditional GET against MangaUpdates RSS
│   ├── parser.ts           # RSS item parser
│   ├── filter.ts           # Language + blocklist filtering
│   └── *.test.ts           # Unit tests
├── dist/
│   └── index.js            # Built bundle (excluded from git)
├── package.json
├── tsconfig.json
└── README.md

License

MIT