@ultikits/cli
v1.2.0
Published
CLI tool for publishing UltiTools plugin modules to UltiCloud marketplace
Downloads
19
Maintainers
Readme
@ultikits/cli
Command-line tool for publishing UltiTools plugin modules to UltiCloud marketplace.
Installation
npm install -g @ultikits/cliRequires 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 publishAuthentication
Interactive login (browser)
ultikits login
# Choose "Browser login (magic link)"
# A browser window opens — approve the requestAccess token (developer portal)
ultikits login
# Choose "Access token (from developer portal)"
# Paste your access token from panel.ultikits.com/developerCI/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 --yesCredentials 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, JaCoCosrc/main/java/.../ModuleName.java— Main class with@UltiToolsModuleannotationsrc/main/resources/plugin.yml— Plugin descriptorsrc/main/resources/lang/en.ymlandzh.yml— i18n language filesREADME.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-dirThe 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 --yesultikits 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