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

@beatbax/cli

v0.2.0

Published

Command-line interface for BeatBax chiptune live-coding language.

Readme

@beatbax/cli

Command-line interface for BeatBax chiptune live-coding language.

npm version License: MIT

Overview

BeatBax CLI provides command-line tools for working with BeatBax chiptune files:

  • Play .bax songs
  • Verify syntax
  • Export to JSON, MIDI, and UGE (hUGETracker) formats
  • Inspect UGE files

Installation

npm install -g @beatbax/cli

Or use without installing:

npx @beatbax/cli play song.bax

Usage

Play a Song

beatbax play song.bax

Options:

  • --headless - Play without UI (server environments)
  • --loop - Loop playback

Verify Syntax

beatbax verify song.bax

Checks for syntax errors without playing.

Export Formats

JSON (ISM - Intermediate Song Model):

beatbax export json song.bax output.json

MIDI (4-track Standard MIDI File):

beatbax export midi song.bax output.mid

UGE (hUGETracker v6):

beatbax export uge song.bax output.uge

Export options:

  • --verbose - Show detailed progress
  • --debug - Show diagnostic information
  • --strict-gb - Reject non-GB-compatible features

Inspect UGE Files

beatbax inspect file.uge

Shows metadata, instruments, patterns, and effects from UGE files.

Example Workflow

# Create a song
cat > mysong.bax << EOF
chip gameboy
bpm 128

inst lead type=pulse1 duty=50 env=gb:12,down,1
inst bass type=pulse2 duty=25 env=gb:10,down,1

pat melody = C4 E4 G4 C5
pat bassline = C3 . G2 .

channel 1 => inst lead pat melody
channel 2 => inst bass pat bassline
EOF

# Verify syntax
beatbax verify mysong.bax

# Play it
beatbax play mysong.bax

# Export to multiple formats
beatbax export json mysong.bax mysong.json
beatbax export midi mysong.bax mysong.mid
beatbax export uge mysong.bax mysong.uge

# Inspect the exported UGE
beatbax inspect mysong.uge

Help

Get help for any command:

beatbax --help
beatbax play --help
beatbax export --help

Programmatic Usage

You can also use the CLI programmatically:

import { play, verify, exportFile } from '@beatbax/cli';

await play('song.bax');
const isValid = await verify('song.bax');
await exportFile('uge', 'song.bax', 'output.uge');

Requirements

  • Node.js 16+ (18+ recommended)
  • For audio playback: speaker support (automatic on most platforms)

Resources

License

MIT © BeatBax Contributors