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

@eventcatalog/sdk

v2.12.1

Published

SDK to integrate with EventCatalog

Readme

@eventcatalog/sdk

SDK and CLI tool to interact with your EventCatalog. Use programmatically in JavaScript/TypeScript or directly from the command line to automate your EventCatalog.

Motivation

EventCatalog vision is to integrate with any broker or technlogy in the world. As its powered by Markdown and contents are built at build time, you can use the SDK to generate these resources. For example you can integrate with your systems, create domains, services and messages for EventCatalog using this SDK.

The SDK supports standard CRUD operations for domains, service and messages in EventCatalog.

The SDK is useful for creating your own EventCatalog plugins and integrations (open source plugins coming in July 2024)

Features

  • Create, read and delete resources in EventCatalog
  • Version any resource in EventCatalog using the version SDK api.
  • Add files or schemas to resources in EventCatalog
  • and more more...

Installation

npm i @eventcatalog/sdk

Example usage

import utils from '@eventcatalog/sdk';

const { getEvent, versionEvent, getService } = utils(PATH_TO_CATALOG);

// Gets event by id
const event = await getEvent('InventoryEvent');

// Gets event by id and version
const event2 = await getEvent('InventoryEvent', '1.0.0');

// Version the event InventoryEvent (e.g goes to /versioned/{version}/InventoryEvent)
await versionEvent('InventoryEvent');

// Returns the service /services/PaymentService
const service await getService('PaymentService');

CLI Usage

The SDK includes a command-line interface for executing SDK functions directly from your terminal.

Running with npx (no installation required)

You can run the CLI directly using npx without installing the package:

npx @eventcatalog/sdk --dir <catalog-path> <function-name> [args...]

Running after installation

If you've installed the package, the eventcatalog command is available:

eventcatalog --dir <catalog-path> <function-name> [args...]

Common Operations

List all available functions:

npx @eventcatalog/sdk list

Get an event:

npx @eventcatalog/sdk --dir ./my-catalog getEvent "OrderCreated"
npx @eventcatalog/sdk --dir ./my-catalog getEvent "OrderCreated" "1.0.0"

Get all events:

npx @eventcatalog/sdk --dir ./my-catalog getEvents
npx @eventcatalog/sdk --dir ./my-catalog getEvents '{"latestOnly":true}'

Write an event:

npx @eventcatalog/sdk --dir ./my-catalog writeEvent '{"id":"OrderCreated","name":"Order Created","version":"1.0.0","markdown":"# Order Created Event"}'

Get a service:

npx @eventcatalog/sdk --dir ./my-catalog getService "InventoryService"

Add an event to a service:

npx @eventcatalog/sdk --dir ./my-catalog addEventToService "InventoryService" "sends" '{"id":"OrderCreated","version":"1.0.0"}'

Piping to Other Tools

Output is JSON by default, making it easy to pipe to tools like jq:

# Get all events and filter by version
npx @eventcatalog/sdk --dir ./my-catalog getEvents | jq '.[] | select(.version == "1.0.0")'

# Count total events
npx @eventcatalog/sdk --dir ./my-catalog getEvents | jq 'length'

# Extract event IDs
npx @eventcatalog/sdk --dir ./my-catalog getEvents | jq '.[].id'

Arguments Format

Arguments are automatically parsed:

  • JSON objects: '{"key":"value"}' - parsed as object
  • JSON arrays: '["item1","item2"]' - parsed as array
  • Booleans: true or false - parsed as boolean
  • Numbers: 42 or 3.14 - parsed as number
  • Strings: anything else - kept as string

See the SDK docs for more information and examples

Enterprise support

Interested in collaborating with us? Our offerings include dedicated support, priority assistance, feature development, custom integrations, and more.

Find more details on our services page.