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

@ultikits/cli

v1.2.0

Published

CLI tool for publishing UltiTools plugin modules to UltiCloud marketplace

Downloads

19

Readme

@ultikits/cli

Command-line tool for publishing UltiTools plugin modules to UltiCloud marketplace.

Installation

npm install -g @ultikits/cli

Requires Node.js 18 or later.

Quick Start

# 1. Scaffold a new UltiTools module project
ultikits create

# 2. Build and publish to UltiCloud
cd MyModule
mvn clean package
ultikits login
ultikits publish

Authentication

Interactive login (browser)

ultikits login
# Choose "Browser login (magic link)"
# A browser window opens — approve the request

Access token (developer portal)

ultikits login
# Choose "Access token (from developer portal)"
# Paste your access token from panel.ultikits.com/developer

CI/CD (environment variable)

Set the ULTIKITS_TOKEN environment variable with your developer access token. No login step is needed.

# GitHub Actions example
- name: Publish to UltiCloud
  env:
    ULTIKITS_TOKEN: ${{ secrets.ULTIKITS_TOKEN }}
  run: ultikits publish --yes

Credentials are stored in ~/.ultikits/credentials.json.

Commands

ultikits create

Scaffold a new UltiTools module project. Interactive prompts collect module name, package name, description, author, and API version, then generate a complete project with:

  • pom.xml — Maven build config with UltiTools-API dependency, test deps, JaCoCo
  • src/main/java/.../ModuleName.java — Main class with @UltiToolsModule annotation
  • src/main/resources/plugin.yml — Plugin descriptor
  • src/main/resources/lang/en.yml and zh.yml — i18n language files
  • README.md — Bilingual project readme
  • .gitignore — Standard Java/Maven ignores
  • .git/ — Initialized git repository
# Create in current directory (prompts for module name)
ultikits create

# Create in a specific directory
ultikits create my-plugin-dir

The generated project compiles immediately with mvn compile.

ultikits login

Authenticate with UltiKits. Choose between browser-based magic link or pasting an access token.

ultikits logout

Remove stored credentials.

ultikits whoami

Check current authentication status.

ultikits init

Create an ultikits.json project config in the current directory. Interactive prompts for module ID, name, description, and category.

{
  "identifyString": "my.awesome.plugin",
  "name": "My Awesome Plugin",
  "shortDescription": "A great UltiTools module",
  "categoryId": 1
}

ultikits publish [jar-path]

Publish a plugin module JAR to UltiCloud.

If no JAR path is given, automatically finds the built JAR in ./target/ (skips -sources.jar and -javadoc.jar).

Options:

| Flag | Description | |------|-------------| | --id <string> | Module identify string | | --name <string> | Module display name | | --version <string> | Module version | | --changelog <text> | Version changelog | | --short-description <text> | Short description | | -y, --yes | Skip confirmation prompts |

Metadata resolution priority: CLI flags > ultikits.json > plugin.yml from JAR.

Example:

# Auto-detect JAR and metadata from plugin.yml + ultikits.json
ultikits publish

# Explicit JAR path with overrides
ultikits publish target/MyPlugin-1.0.0.jar --version 1.0.1 --changelog "Bug fix"

# CI/CD mode (no prompts)
ultikits publish --yes

ultikits modules list

List all your published modules.

ultikits modules info <identifyString>

Show details of a specific module.

ultikits modules delete <identifyString>

Delete a module (with confirmation prompt).

ultikits versions list <identifyString>

List all versions of a module.

ultikits versions delete <identifyString> <version>

Delete a specific version (with confirmation prompt).

Project Config (ultikits.json)

Create with ultikits init or manually. Fields are used as fallback metadata during publish:

{
  "identifyString": "com.example.myplugin",
  "name": "My Plugin",
  "shortDescription": "Does amazing things",
  "categoryId": 1
}

Categories:

| ID | Name | |----|------| | 1 | Utilities | | 2 | Economy | | 3 | World Management | | 4 | Social & Chat | | 5 | Permissions & Security | | 6 | Gameplay |

Development

git clone https://github.com/UltiKits/ultikits-cli.git
cd ultikits-cli
npm install
npm run build
npm test

License

MIT