jmx.sh

Interactive command-line JMX client for monitoring and managing Java applications.

Quick Start

Homebrew

Install on macOS or Linux with Homebrew:

brew install nyg/jmxsh/jmxsh

JAR

Download the release JAR and run it directly:

java -jar jmxsh-<version>.jar

Debian/Ubuntu

Add the repository and install:

curl -fsSL https://jmx.sh/apt/gpg.asc | sudo gpg --dearmor -o /usr/share/keyrings/jmxsh.gpg
echo "deb [signed-by=/usr/share/keyrings/jmxsh.gpg] https://jmx.sh/apt stable main" | sudo tee /etc/apt/sources.list.d/jmxsh.list
sudo apt update && sudo apt install jmxsh

Interactive Mode

Connect to any JMX-enabled JVM and explore MBeans interactively with tab completion and command history.

jmxsh
$ java -jar jmxsh-<version>.jar
Welcome to jmx.sh, type "help" for available commands.
$> open localhost:9999
#Connection to localhost:9999 is opened
$> domains
#following domains are available
JMImplementation
java.lang
com.example
$> bean com.example:type=AppStats
#bean is set to com.example:type=AppStats
$> get RequestCount
#mbean = com.example:type=AppStats:
RequestCount = 42;
$> run resetStats
#calling operation resetStats of mbean com.example:type=AppStats
#operation returns:
null
$> close
$> quit

Non-Interactive Mode

Automate JMX operations with scripts and pipes — perfect for monitoring, alerting, and CI/CD pipelines.

Script File

Run commands from a file:

java -jar jmxsh-<version>.jar \
  -l localhost:9999 \
  --input commands.txt

Piped Input

Pipe commands via stdin:

echo "open localhost:9999 && beans" \
  | java -jar jmxsh-<version>.jar -n

Commands

Command Description
open <host:port>Connect to a remote JMX endpoint (RMI)
open jmxmp://<host:port>Connect to a remote JMX endpoint (JMXMP)
open <pid>Attach to a local JVM by process ID
domainsList all MBean domains
beansList all MBeans (filter by domain with -d)
bean <name>Select an MBean for subsequent operations
infoShow attributes and operations of the selected MBean
get <attr>Read an MBean attribute
set <attr> <value>Write an MBean attribute
run <op> [args]Invoke an MBean operation
closeDisconnect from the JMX endpoint
jvmsList local Java processes
helpShow all available commands

Features

⌨️

Interactive REPL

Tab completion and command history powered by JLine.

🔌

Remote & Local

Connect via host:port (RMI), jmxmp:// (JMXMP), JMX URL, or local PID.

📦

Full MBean Support

Browse domains, read/write attributes, invoke operations.

⛓️

Command Chaining

Run multiple commands in one line with &&.

📜

Script Mode

Automate JMX operations via files or piped input.

🔊

Verbose Control

Silent, brief, or verbose output modes.

📂

XDG Compliant

Follows the XDG Base Directory spec — keeps your home directory clean.