moleculer-repl
v0.8.0
Published
REPL module for Moleculer
Maintainers
Readme

REPL module for Moleculer 
The moleculer-repl is an interactive developer console for Moleculer microservices framework.
Features
- List nodes, services, actions and events
- Call actions with parameters, meta and streaming support
- Direct call actions on specific nodes
- Emit and broadcast events
- Benchmark actions
- Cache management (list keys, clear)
- Load services from file or folder
- Listen to events in real-time
- Show local node information & configuration
- Show metrics
- Custom commands support
- Command history (persisted across sessions)
- Autocomplete for action names, event names and node IDs
Requirements
- Node.js >= 22
- Moleculer >= 0.14.12 (0.15.0 compatible)
Install
npm install moleculer-replUsage
Start broker in REPL mode
const { ServiceBroker } = require("moleculer");
const broker = new ServiceBroker();
broker.start().then(() => {
broker.repl();
});You will get a console:
mol $Run help to see available commands.
Custom delimiter
// moleculer.config.js
module.exports = {
replOptions: {
delimiter: "moleculer λ"
}
};Custom commands
// moleculer.config.js
module.exports = {
replOptions: {
customCommands: [
{
command: "hello <name>",
description: "Call the greeter.hello service with name",
alias: "hi",
options: [
{ option: "-u, --uppercase", description: "Uppercase the name" }
],
action(broker, args, helpers) {
const name = args.options.uppercase ? args.name.toUpperCase() : args.name;
return broker.call("greeter.hello", { name }).then(console.log);
}
}
]
}
};Commands
call <actionName> [jsonParams] [meta]
Call an action. Supports JSON params, key-value flags, meta, streaming and file I/O.
# Call with JSON params
mol $ call greeter.hello {"name":"World"}
# Call with key-value params
mol $ call greeter.hello --name World
# Call with meta (use # prefix)
mol $ call greeter.echo --a 5 --#b 3
# Call with calling options (use $ prefix)
mol $ call greeter.hello --name World --$timeout 3000
# Load params from file
mol $ call greeter.hello --load
# Load params, meta and options from file
mol $ call greeter.hello --loadFull params.json
# Send a file as stream
mol $ call file.save --stream ./data.bin
# Save response to file
mol $ call greeter.hello --save response.json
# Save streaming response to stdout
mol $ call greeter.objectStream --save stdoutdcall <nodeID> <actionName> [jsonParams] [meta]
Direct call an action on a specific node. Same options as call.
emit <eventName> [jsonParams]
Emit an event.
mol $ emit user.created {"name":"John"}broadcast <eventName> [jsonParams]
Broadcast an event to all nodes.
mol $ broadcast config.changedbench <actionName> [jsonParams] [meta]
Benchmark an action.
# Run for 5 seconds (default)
mol $ bench greeter.hello {"name":"World"}
# Run specific number of iterations
mol $ bench greeter.hello --num 1000
# Run for specific time
mol $ bench greeter.hello --time 10actions [options]
List available actions.
mol $ actions # List all actions
mol $ actions -f greeter.* # Filter by pattern
mol $ actions -l # Only local actions
mol $ actions -i # Skip internal ($node) actions
mol $ actions -d # Show detailed infoservices [options]
List available services.
mol $ services # List all services
mol $ services -l # Only local services
mol $ services -i # Skip internal servicesevents [options]
List available event subscriptions.
mol $ events # List all events
mol $ events -l # Only local events
mol $ events -i # Skip internal eventsnodes [options]
List known nodes.
mol $ nodes # List all nodes
mol $ nodes -a # Show all nodes (including unavailable)
mol $ nodes -d # Show detailed info
mol $ nodes --raw # Print raw registry as JSON
mol $ nodes --save registry.json # Save registry to fileinfo
Show broker information (version, uptime, services, transporter, serializer, etc.).
metrics [options]
Show metrics.
mol $ metrics # List all metrics
mol $ metrics -f process.* # Filter by patternlistener <eventName>
Subscribe and listen to an event in real-time.
mol $ listener user.**load <servicePath>
Load a service from a file.
mol $ load ./my-service.jsdestroy <serviceName>
Destroy a locally running service.
cache keys / cache clear [pattern]
Manage the built-in cache.
mol $ cache keys # List cache keys
mol $ cache clear # Clear all cache
mol $ cache clear greeter.* # Clear matching keysenv
List environment variables.
clear
Clear the cacher.
cls
Clear the console.
quit / exit
Stop the broker and exit.
Documentation
Please read our documentation on Moleculer site
Contribution
Please send pull requests improving the usage and fixing bugs, improving documentation and providing better examples, or providing some testing, because these things are important.
License
The project is available under the MIT license.
Contact
Copyright (c) 2026 MoleculerJS
