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

paldefender-cli

v1.0.3

Published

A high-performance CLI for managing PalDefender REST API servers with dynamic method discovery.

Readme

PalDefender CLI (pd-cli)

version license status PalLink Static Badge Publish to NPM

A high-performance, type-safe Command Line Interface for managing PalDefender REST API servers. pd-cli features a "Hybrid" input system, allowing you to use simple space-separated lists or complex JSON for administrative actions.


📦 Installation

Option 1: NPM (Recommended)

npm install -g paldefender-cli

Option 2: Standalone Binaries (GitHub Releases)

Download pre-compiled binaries for Windows, Linux, or MacOS.

Note for Unix (Linux/Mac): You must run chmod +x pd-cli before executing.

Option 3: Compile Binaries yourself

Clone this repo and prep (You must have git, node, and npm installed on your machine)

git clone https://github.com/PalLink/pd-cli-ts.git
cd pd-cli-ts
npm install
# build
# Linux:
./build-bins.sh
# Windows (Powershell):
.\build-bins.ps1
# Windows (CMD):
build-bins.bat

You now have a "build" directory with the bins inside. Open it and run the correct one for your system.


⚙️ Configuration

  1. Interactive Setup: Run pd-cli configure to save your host and admin token.
  2. Connectivity Check: Run pd-cli test-connection to verify your credentials and server status.
  3. Reset: Run pd-cli clear-config to wipe stored credentials.

🛠 Usage

For a detailed walkthrough of the repository files and common CLI commands, see USAGE.md.

🔍 Discovery & Lookup

| Command | Description | Example | | :--- | :--- | :--- | | getPlayers | List all players | pd-cli getPlayers | | getGuilds | List all guilds | pd-cli getGuilds | | getPlayer | Detailed player profile | pd-cli getPlayer "ID" | | getPals | List a player's Pals | pd-cli getPals "ID" | | getItems | View player inventory | pd-cli getItems "ID" | | findPlayerByName | Search by exact name | pd-cli findPlayerByName "Glitch" |

💬 Player Messaging

| Command | Description | Example | | :--- | :--- | :--- | | sendPlayerMessageUserId | Default PlayerChat to one player (UserID) | pd-cli sendPlayerMessageUserId "USERID" "Hello" | | sendPlayerMessageUserIDs | Default PlayerChat to many players (UserIDs) | pd-cli sendPlayerMessageUserIDs "USERID1,USERID2" "Hello" | | sendPlayerChatUserId | PlayerChat to one player | pd-cli sendPlayerChatUserId "USERID" "Hello" | | sendPlayerGlobalChatUserIDs | PlayerGlobalChat to many players | pd-cli sendPlayerGlobalChatUserIDs "USERID1,USERID2" "Event starts now" | | sendPlayerGuildChatUserId | PlayerGuildChat to one player | pd-cli sendPlayerGuildChatUserId "USERID" "Guild update" | | sendPlayerLogImportantUserIDs | PlayerLogImportant to many players | pd-cli sendPlayerLogImportantUserIDs "USERID1,USERID2" "Server restart soon" |

All SendType commands now support explicit suffix variants:

  • ...UserId for one UserID
  • ...UserIDs for comma-separated UserIDs

Examples:

  • sendPlayerChatUserId, sendPlayerChatUserIDs
  • sendPlayerGlobalChatUserId, sendPlayerGlobalChatUserIDs
  • sendPlayerGuildChatUserId, sendPlayerGuildChatUserIDs
  • sendPlayerLogNormalUserId, sendPlayerLogNormalUserIDs
  • sendPlayerLogImportantUserId, sendPlayerLogImportantUserIDs
  • sendPlayerLogVeryImportantUserId, sendPlayerLogVeryImportantUserIDs

🛠 Administrative "Give" Actions

These commands support Hybrid Logic: pass a list of names for quantity 1, or a JSON string for specific counts.

Items

# List format (Quantity 1 each)
pd-cli giveItems "ID" Stone Wood

# JSON format (Specific counts) - Requires "ItemID"
pd-cli giveItems "ID" '[{"ItemID": "Stone", "Count": 100}]'

Pals

# List format (Level 1)
pd-cli givePals "ID" Anubis Lamball

# JSON format (Specific Level)
pd-cli givePals "ID" '{"PalName": "Anubis", "Level": 50}'

Eggs

# You must supply EggID AND either PalID or PalTemplate 
# List format
pd-cli givePalEggs "ID" PalEgg_Dark_01 PalEgg_Fire_05

# JSON format
pd-cli givePalEggs "ID" '["PalEgg_Dark_05"]'

📈 Progression & Tech

| Command | Example | | :--- | :--- | | giveProgression | pd-cli giveProgression "ID" '{"EXP": 5000, "Lifmunks": 10, "AncientTechnologyPoints": 2, "TechnologyPoints": 4}' | | giveRecipeMaterials | pd-cli giveRecipeMaterials "ID" PalSphere 5 | | learnTech | pd-cli learnTech "ID" Unlock_Sphere_Tier_01 | | forgetTech | pd-cli forgetTech "ID" All (Resets tree) |


💡 Important: Windows CMD vs PowerShell/Linux

Windows CMD does not support single quotes (') for JSON. You must use double quotes and escape the internal quotes with a backslash (\").

CMD Usage:

pd-cli.exe giveItems "ID" "[{\"ItemID\": \"Stone\", \"Count\": 10}]"

PowerShell / Linux / MacOS Usage:

pd-cli giveItems "ID" '[{"ItemID": "Stone", "Count": 10}]'

🚀 Key Features

  • Hybrid Input: Choose between simple string lists or structured JSON.
  • Auto-Discovery: CLI stays in sync with the paldefender-rest-client library.
  • Formatted Output: Results are displayed in clean, readable boxes with status spinners.
  • No-Node Binaries: Use the standalone executables if you don't want to install Node.js.

📜 License

MIT © PalLink