Last Updated: April 30, 2026
Complete guide to using Pluginator for Minecraft server plugin management.
- Getting Started
- Interactive Mode
- Subscription Tiers
- Command Line Usage
- Plugin Configuration
- Server Configuration
- Update Checking
- Sync Workflow
- Migrate Workflow
- Backup System
- Health Dashboard
- Performance Analytics
- Recommendations
- Templates
- Organization
- Plugin Notes & Config Sync
- Theming
- Post-Action Hooks
- Troubleshooting
Install Pluginator using your preferred method. See INSTALLATION.md for all options.
# macOS
brew tap NindroidA/pluginator && brew install pluginator
# Windows
scoop bucket add pluginator https://github.com/NindroidA/scoop-pluginator && scoop install pluginator
# npm (any platform)
npm install -g @nindroidsystems/pluginatorRun the setup wizard:
pluginator setupThis will guide you through:
- Setting your production server path (with path validation)
- Setting your test server path (with path validation)
- Selecting Minecraft version and server type
- Configuring features, panel connections, and notifications
- Scanning for existing plugins
- Auto-assigning update sources from the curated registry
Auto-Source Assignment: After scanning, Pluginator automatically matches your plugins to the curated registry (104 plugins) and assigns optimal update sources. Manually configured sources are never overwritten. Re-run via /auto-source at any time.
Path Validation: When you enter a server path, Pluginator verifies the directory exists and contains plugin JAR files. If validation fails, you can:
- Retry — Re-enter the path (your previous input is pre-filled)
- Continue Anyway — Proceed without plugins (useful for new server setups)
Cached Paths: Re-running the setup wizard pre-fills paths from your current config, so you don't have to retype them.
Pluginator stores its data at ~/.pluginator/:
~/.pluginator/
├── config.json # User configuration
├── custom-registry.json # User plugin registry entries
├── custom-sources.json # User source overrides
├── session.json # Auth session (encrypted)
├── notifications.json # Notification history (v2.9.1)
├── .salt # Encryption salt
├── servers/ # Per-server plugin data
│ └── <server-id>/
│ └── plugins.json
├── backups/ # Backup archives
├── cache/ # Cache files
└── logs/ # Application logs
Launch the interactive terminal UI:
pluginatorThe UI was overhauled in the v2.7.x series with a unified design system:
- Bordered Panel components wrap every major section with embedded titles and footers
- EnhancedTable drives the Plugins / Updates / Servers / Health views with auto-sized columns and responsive column hiding
- KeyHintsBar at the bottom of every view shows context-relevant shortcuts
- EmptyState components replace blank views with centered icon/title/description/action layouts
- Scrollbar appears on long lists with a track (
│) and thumb (┃) - Breadcrumb shows your navigation trail (Tab > Name > Detail)
The UI has 9 tabs:
| # | Tab | Description | Tier |
|---|---|---|---|
| 1 | Home | Dashboard with Server Status, Updates, and Quick Actions cards | Free |
| 2 | Servers | Side-by-side comparison of production vs test plugins | Plus |
| 3 | Plugins | Full plugin list with search, filtering, and detail panel | Free |
| 4 | Updates | Available updates with progress + changelog view | Free |
| 5 | Logs | Application logs with filtering and auto-scroll | Plus |
| 6 | Stats | Plugin statistics, source breakdowns, version distribution | Plus |
| 7 | Health | Plugin health scores, security advisories, compatibility | Pro |
| 8 | Recs | Smart plugin recommendations | Pro |
| 9 | Perf | Server performance analytics with panel integrations | Pro |
Press 1–9 to jump to a tab. Tabs requiring a higher tier display a lock icon and strikethrough; pressing the shortcut shows an upgrade notification.
The visible tabs in the header can be customized via /tabs (Tab Visibility).
The Home view is now a true dashboard (v2.7.12):
- Server Status card — prod/test paths, plugin counts, last scan time
- Updates card — total available, last check time, error count
- Quick Actions grid — Scan / Sync / Check Updates / Backup buttons
- On terminals ≥120 columns wide, Server Status and Updates are shown side-by-side
- A startup tips panel rotates 20 tier-aware tips below the cards (v2.9.0)
The Logs tab provides real-time access to application logs (Plus tier).
Keyboard Shortcuts in Logs:
f— Filter by log level (All / Info / Warn / Error / Debug)a— Toggle auto-scroll (automatically scroll to newest logs)r— Refresh logsCtrl+D— Quick access from any tab
Features:
- Color-coded log levels for easy identification
- Duration indicators for slow operations (>100ms shown in yellow, >1000ms in red)
- Structured context display for detailed operation information
- Daily log files with automatic cleanup
Log Levels:
- Info (blue) — Normal operation events
- Warn (yellow) — Non-critical issues
- Error (red) — Failures and exceptions
- Debug (gray) — Detailed diagnostic information (requires
PLUGINATOR_DEBUG=1)
Pluginator uses a state-aware input system that validates keys against the current UI state.
| Key | Action | Notes |
|---|---|---|
Tab |
Next tab | |
Shift+Tab |
Previous tab | |
1–9 |
Jump to tab | Locked tabs show upgrade prompt |
j / ↓ |
Move down | |
k / ↑ |
Move up | |
g |
Jump to top | |
G |
Jump to bottom | |
Space |
Toggle selection | |
Enter |
Confirm action | |
Esc |
Cancel/close dialog | Context-dependent |
/ or : |
Open command palette | |
Ctrl+P |
Open quick actions palette | |
? |
Show help overlay | |
Ctrl+C |
Quit (press twice) | 2s timeout |
Ctrl+D |
Jump to Logs tab | Plus tier |
Ctrl+O |
Jump back (vim-style) | Plus tier |
Ctrl+I |
Jump forward (vim-style) | Plus tier |
Keys may be disabled in certain UI states:
Progress State (operation running):
- Only
Esc(if cancellable) andCtrl+Cwork - All other keys are ignored to prevent accidental actions
Command Palette (when / or : is pressed):
↑/↓— Navigate commandsEnter— Execute commandEsc/Ctrl+C— Close palette- Any printable character — Search
Dialogs (confirmations, selections):
- Navigation and confirmation keys only
- Other actions disabled until dialog is closed
Help/Config Overlays:
- Any key closes the overlay
- Returns to previous state
Press / or : to open the command palette. Type to search commands.
Common commands:
| Command | Description |
|---|---|
/scan |
Scan plugin directories on both servers |
/sync |
Sync plugins from production to test |
/updates |
Check all plugins for available updates |
/backup |
Create a backup of plugin directories |
/setup |
Run the setup wizard |
/config-edit |
Edit configuration interactively |
/themes |
Browse and install community themes (Max tier) |
/login |
Login to your Pluginator account |
/account |
View account, tier, and today's usage |
/notifications |
View notification history |
/plugin-edit |
Edit a plugin's update source and settings |
/schedule |
Configure automatic update checking (Pro tier) |
/history |
View operation history |
/reset |
Clear cache, logs, and session (preserves config) |
/selfupdate |
Check for Pluginator updates and auto-install |
/help |
Display keyboard shortcuts |
/exit |
Exit Pluginator |
See COMMANDS.md for the full list of ~75 commands.
Command Palette Navigation:
↑/↓— Navigate through commandsEnter— Execute selected commandEsc— Close palette- Commands requiring a higher tier are hidden automatically
Press Ctrl+P to open the quick actions palette — a streamlined fuzzy finder over your most-used actions, plugins, and bookmarks. Use it when you know roughly what you want but don't remember the exact command name.
Pluginator uses a tiered subscription system. The free tier is intentionally narrow — enough to try the workflow, but daily plugin management really starts at Plus.
| Tier | Price | Update Checks/Day | Downloads/Day | Syncs/Day | Migrations/Day |
|---|---|---|---|---|---|
| Free | $0 | 1 | 5 | 1 | 0 |
| Plus | $9.99 (one-time) | 10 | 50 | 5 | 3 |
| Pro | $2.99/mo or $24.99/yr | 25 | 150 | 15 | 10 |
| Max | $4.99/mo or $44.99/yr | Unlimited | Unlimited | Unlimited | Unlimited |
| Feature | Free | Plus | Pro | Max |
|---|---|---|---|---|
| Scan, Sync, Backup, Updates | Yes | Yes | Yes | Yes |
| Home / Plugins / Updates tabs | Yes | Yes | Yes | Yes |
| Servers tab (prod vs test compare) | — | Yes | Yes | Yes |
| Logs tab | — | Yes | Yes | Yes |
| Stats Dashboard | — | Yes | Yes | Yes |
| Tags / Groups / Dashboard widgets | — | Yes | Yes | Yes |
Jump-list (Ctrl+O / Ctrl+I), chord shortcuts |
— | Yes | Yes | Yes |
| Migrations (test → prod) | — | Yes | Yes | Yes |
| Health Dashboard | — | — | Yes | Yes |
| Recommendations | — | — | Yes | Yes |
| Performance Analytics | — | — | Yes | Yes |
| Profiles / Macros / Vim mode / Schedule | — | — | Yes | Yes |
| Export / Import | — | — | Yes | Yes |
| Theme Marketplace | — | — | — | Yes |
| Accessibility toggle | — | — | — | Yes |
Plus tier holders receive a permanent discount on Pro/Max subscriptions. See TIER_SYSTEM.md for full details.
Use --no-ui to skip the interactive TUI:
pluginator --no-uiThis lists available CLI subcommands, useful for scripting and CI environments.
pluginator check-updatesOptions:
-t, --type <type>— Filter by source type (spigot, modrinth, github, hangar, etc.)--all— Include disabled plugins
Copy plugins from production to test server:
pluginator syncOptions:
-f, --force— Overwrite existing files--dry-run— Preview changes without copying
Move plugins from test to production:
pluginator migrateOptions:
--no-backup— Skip automatic backup--dry-run— Preview changes
# Create a backup
pluginator backup
# Restore from backup (use the -r flag)
pluginator backup -r ~/.pluginator/backups/backup-prod-2026-04-30T10-30-00.tar.gzOptions:
-o, --output <path>— Custom backup location-t, --type <type>— Backup type (prod, test, both)-r, --restore <file>— Restore the specified backup archive
View and search application logs:
pluginator logsOptions:
--level <level>— Filter by level (info, warn, error, debug)--grep <pattern>— Search for pattern in messages--since <date>— Show logs since date (YYYY-MM-DD)--follow— Real-time tail (liketail -f)--json— Output raw JSONL format
Examples:
# View only errors
pluginator logs --level error
# Search for "sync" in logs
pluginator logs --grep sync
# Follow logs in real-time
pluginator logs --follow
# Get machine-readable JSON output
pluginator logs --json --since 2026-04-25# Run setup wizard
pluginator setup
# Auto-update all plugins (scan + check + download)
pluginator auto-update
# Login / logout (or run /login in the UI)
pluginator login
pluginator logout
# Self-update Pluginator
pluginator self-update
# Show help / version
pluginator --help
pluginator --version
# Use specific theme
pluginator --theme oceanPlugins are configured in ~/.pluginator/servers/<server-id>/plugins.json. Use /plugin-edit (or /pedit) to edit interactively, or edit the file directly.
{
"plugins": [
{
"name": "EssentialsX",
"type": "spigot",
"resourceId": "9089",
"enabled": true
}
]
}Pluginator supports 8 plugin sources:
| Source | type |
Identifier field | Notes |
|---|---|---|---|
| Spigot | spigot |
resourceId |
via Spiget API |
| Modrinth | modrinth |
projectSlug |
Generous rate limits |
| GitHub | github |
repoSlug |
Owner/repo format |
| Hangar | hangar |
projectSlug |
PaperMC's official catalog |
| GeyserMC | geysermc |
projectName |
Bedrock support |
| Bukkit / CurseForge | curseforge |
projectId |
API key required |
| Jenkins | jenkins |
jobUrl |
Custom CI builds |
| Web Manifest | web |
manifestUrl |
Self-hosted plugins |
Find the resource ID in the Spigot URL:
https://www.spigotmc.org/resources/essentialsx.9089/ → 9089
{
"name": "EssentialsX",
"type": "spigot",
"resourceId": "9089"
}Use the project slug from the URL:
https://modrinth.com/plugin/luckperms → luckperms
{
"name": "LuckPerms",
"type": "modrinth",
"projectSlug": "luckperms"
}Use owner/repo format:
{
"name": "Vault",
"type": "github",
"repoSlug": "MilkBowl/Vault"
}Use the project slug from https://hangar.papermc.io/<author>/<slug>:
{
"name": "Maintenance",
"type": "hangar",
"projectSlug": "Maintenance"
}{
"name": "TestPlugin",
"type": "spigot",
"resourceId": "12345",
"version": "1.0.0", // Current installed version
"enabled": true, // Enable/disable (default: true)
"disableOnTest": true, // Disable when synced to test
"mcVersion": "1.21.1", // Target MC version
"filenamePattern": ".*\\.jar", // Regex for filename matching
"notes": "Custom permissions" // Free-form notes (v2.9.0)
}Configuration is stored at ~/.pluginator/config.json. Edit it interactively with /config-edit, or via the /setup wizard.
Key settings include:
- Server paths — Production and test plugin directories
- Minecraft version — Target version for compatibility checks
- Backup settings — Retention count and backup directory
- API keys — Optional GitHub token, CurseForge API key
- Post-action hooks — Shell commands to run after sync/download/backup/etc. (v2.9.0)
# Enable debug logging
PLUGINATOR_DEBUG=1 pluginator
# Custom API endpoint
PLUGINATOR_API_URL=https://api.nindroidsystems.com
# Disable colors
NO_COLOR=1 pluginator- Pluginator reads your
plugins.json - For each enabled plugin, queries the appropriate API
- Compares installed version with latest available
- Reports which plugins have updates
Pluginator handles various version formats:
- Semantic:
1.0.0,2.1.3 - Prefixed:
v1.0.0 - Build numbers:
1.0.0-b123 - Snapshots:
1.0.0-SNAPSHOT
Each source has rate limits:
| Source | Limit | Notes |
|---|---|---|
| Spigot | ~100/min | Via Spiget API |
| Modrinth | 300/min | Generous limits |
| GitHub | 60/hr | 5000/hr with token |
| Hangar | Generous | PaperMC's official API |
| CurseForge | Varies | Requires API key |
Sync copies plugins from production to test server.
- Scans production plugins directory
- Compares with test server plugins
- Identifies new or updated plugins
- Copies files to test server
- Handles
disableOnTestplugins by adding.jardissuffix
- Testing updates before deploying to production
- Setting up a new test server
- Keeping test server in sync with production
Use /preview (or pluginator sync --dry-run) to see exactly what a sync would do — no files are touched.
The Servers tab can also discover and sync plugin YAML/JSON config files between servers (not just JARs). Use the /config-sync workflow to see which plugin configs differ between prod and test.
Migrate moves tested plugins from test to production. Requires Plus tier.
- Creates automatic backup of production
- Scans test server plugins
- Validates changes (compatibility checks against your MC version)
- Copies files to production
- Cleans up old versions if needed
- Automatic backup before migration
- Dry-run mode for preview
- Confirmation prompts
- Rollback instructions in logs (and via
/rollback)
Backups are tar.gz archives containing:
- All plugin JAR files
- plugins.json configuration
- Timestamp in filename
Schedule automatic backups via /backups (Backup Schedule).
Old backups are automatically removed based on the MAX_BACKUPS setting in config.json.
Format: backup-{type}-{timestamp}.tar.gz
Example: backup-prod-2026-04-30T10-30-00.tar.gz
# Use the CLI (preferred)
pluginator backup -r ~/.pluginator/backups/backup-prod-2026-04-30T10-30-00.tar.gz
# Or extract manually
tar -xzf backup-prod-2026-04-30T10-30-00.tar.gz -C /path/to/restore
cp -r /path/to/restore/* /your/server/plugins/Pluginator includes four built-in color themes:
| Theme | Description |
|---|---|
default |
Purple/violet tones |
ocean |
Blue/cyan tones |
forest |
Green/emerald tones |
sunset |
Orange/amber tones |
# Via command line
pluginator --theme ocean
# Via config file (~/.pluginator/config.json)
{
"theme": "ocean"
}Requires Max tier
Browse and install community themes:
# Open the theme marketplace
/themesThe marketplace loads themes from the NinSys API. If offline, a bundled gallery of curated themes is available as a fallback. Themes can be installed by URL or browsed by category (dark / light / accessibility).
Requires Pro tier
The Health tab provides per-plugin health monitoring.
Each plugin receives a health score (0-100) based on:
- Compatibility (40%) — Minecraft/server version support
- Security (30%) — Known vulnerabilities, update recency
- Update Status (30%) — Available updates, version age
| Grade | Score | Meaning |
|---|---|---|
| A | 90-100 | Excellent |
| B | 75-89 | Good |
| C | 60-74 | Fair |
| D | 40-59 | Poor |
| F | 0-39 | Critical |
/health— Open health dashboard/conflicts— View plugin conflicts/deps— View the dependency graph
Requires Pro tier
The Performance tab monitors server performance.
- TPS (Ticks Per Second)
- MSPT (Milliseconds Per Tick)
- Memory usage
- Player count
- Plugin load times
- Real-time metrics display
- Historical charts
- Configurable alerts
- Baseline detection
Connect to server management panels:
- AMP
- Pterodactyl
- Crafty Controller
- MCSManager
Requires Pro tier
The Recommendations tab suggests plugins based on:
- Plugins commonly used together
- Popular plugins you don't have
- Similar alternatives to your plugins
- Upgrade suggestions
Use /recs to open. Dismissed and saved recommendations persist between sessions.
Apply pre-configured plugin bundles via /templates.
- Essential Starter — LuckPerms, Vault, EssentialsX
- Economy Bundle — Vault + economy plugins
- World Protection — WorldGuard, CoreProtect
- Admin Tools — moderation, anti-cheat, logging
Organize plugins with:
- Tags — Custom labels for filtering (
/tags, Plus tier) - Groups — Collections for bulk actions (
/groups, Plus tier) - Profiles — Saved configurations (
/profiles, Pro tier) - Favorites — Quick access to frequent plugins (
/favorites)
Add free-form notes to any plugin via /plugin-edit. Notes appear in the plugin detail panel and are stored in your local preferences (not on the plugin's JAR). Useful for tracking custom permissions, server-specific tweaks, or "do not auto-update" reminders.
Beyond JAR sync, Pluginator can discover and sync plugin YAML/JSON config files between servers. Use it from the Servers tab to keep config drift in check between prod and test.
All toast notifications are persisted to ~/.pluginator/notifications.json. Open /notifications to browse past notifications, see when each operation completed, and review error toasts you may have missed.
Added in v2.9.1
Configure shell commands to run after specific operations:
post-sync— After successful syncpost-download— After plugin downloadpost-backup— After backup creationpost-update-check— After update check completespost-migrate— After migration to production
Configure via /config-edit under the hooks section. Hooks run with the operation's environment context as variables and are useful for restarting the server, sending Discord webhooks, or syncing with external tooling.
As of v2.8.0, Pluginator hardens its HTTP layer:
- SSRF blocklist — RFC 1918 / loopback / link-local addresses are refused for outbound requests, preventing a malicious source manifest from probing your internal network
- Atomic file writes — All config writes use a temp-file + rename pattern so a crash mid-write can't corrupt your config
- Token guidance —
/config-editflags tokens stored in plain config and recommends environment variables instead
"No plugins found"
- Check your
plugins.jsonfile exists - Verify the JSON syntax is valid (
/validate) - Ensure plugins have correct type and identifiers
"Failed to check updates"
- Check your internet connection
- Verify API keys if using GitHub or CurseForge
- Check if the source API is accessible (try
/auto-sourceto retry)
"Permission denied"
- Ensure you have write access to server directories
- Check file ownership
- Run with appropriate permissions
"Version comparison failed"
- Plugin may have non-standard version format
- Set explicit
versionin plugin config
"Locked tab" notification
- Servers / Logs / Stats require Plus, Health / Recs / Perf require Pro, Theme Marketplace requires Max
- See TIER_SYSTEM.md for full feature access
Enable debug logging:
# Via environment variable
PLUGINATOR_DEBUG=1 pluginator
# Or in config file
PLUGINATOR_DEBUG=1Debug logs include:
- API requests and responses
- Version comparison details
- File operations
- Input validation (accepted/rejected inputs with reasons)
- State transitions (UI state changes with triggers)
- Throttled operations (rate-limited action attempts)
| Command | Effect |
|---|---|
/clearcache |
Clears the API/update cache only |
/reset |
Clears cache, logs, and session — preserves config |
/factoryreset |
Wipes everything (debug mode only) |
- Check the Troubleshooting Guide
- Join the NindroidSystems Discord for quick community help
- Search existing issues
- Open a new issue with debug logs
Logs are stored in ~/.pluginator/logs/:
~/.pluginator/logs/
├── pluginator-2026-04-30.log
├── pluginator-2026-04-29.log
└── ...
Log files are created daily and automatically cleaned up.