| Crates.io | moonriver |
| lib.rs | moonriver |
| version | 0.2.2 |
| created_at | 2025-10-26 01:32:08.167074+00 |
| updated_at | 2025-10-26 20:09:49.26982+00 |
| description | A terminal-based console for connecting to and interacting with Klipper instances via the Moonraker WebSocket API |
| homepage | https://moonriver.rs/ |
| repository | https://github.com/willpuckett/moonriver |
| max_upload_size | |
| id | 1900853 |
| size | 266,393 |
A terminal-based console for connecting to and interacting with Klipper instances via the Moonraker WebSocket API.
Moonriver provides a fast, efficient, and color-coded way to monitor and control your 3D printer, all from the comfort of your command line. Built entirely in Rust for speed and reliability.
In the tradition of klipper-repl and krui, Moonriver brings command-line control to Klipper 3D printers.
Moonriver offers three modes of operation: TUI (Terminal User Interface), Interactive REPL, and Scripting mode.
The Terminal User Interface is now the default mode, providing a comprehensive dashboard for monitoring and controlling your 3D printer.
m - Main dashboard with temperatures and job statusc - Console for GCode commands (coming soon)p - Position display with homed statusj - Print job history browser (coming soon)h - Help screent - Toggle temperature bar on/offp - Toggle position bar on/offCtrl+C to trigger emergency stop (M112) and exitq or Esc to exit normally, as
a separatorprinter.cfg, etc.) directly through the consoleLaunch the full Terminal User Interface (this is now the default):
moonriver --host <moonraker-url> --port <port>
# or simply:
moonriver
Key Bindings:
m - Main dashboardc - Consolep - Toggle position barj - Jobsh or ? - Helpq - QuitCtrl+C - Emergency stopt - Toggle temperature barTo use the classic REPL interface:
moonriver --repl --host <moonraker-url> --port <port>
Once connected, you can type your G-code commands:
> G28
> M104 S200
Execute commands non-interactively for automation:
moonriver --command "G28, M104 S200, G1 X100 Y100" --host <moonraker-url>
# or short form:
moonriver -c "G28, M104 S200" --host <moonraker-url>
> G28
// Printer response: X axis homed
// Printer response: Y axis homed
// Printer response: Z axis homed
> M105
// Printer response: T:20.5 /0.0 B:21.1 /0.0
> GET_TEMP SENSOR=heater_bed
// Printer response: // Current temperature of heater_bed is 21.1
You can evaluate one line of G-Code as follows. Note that you can use the ,
character to incorporate multiple G-Code commands into one line, and that G-Code
is case-insensitive (but generally gets converted to uppercase by Klipper).
moonriver --host <moonraker-url> --port <port> g28, screws_tilt_calculate
Typing the command m112 into moonriver will immediately discard the rest of
the command buffer and send an emergency stop signal to Klipper.
Full documentation is available at: moonriver.rs
brew install moonriver
cargo install moonriver
cargo binstall moonriver
Download the appropriate .deb file from the
releases page:
# Download for your architecture (amd64 or arm64)
wget https://github.com/willpuckett/moonriver/releases/latest/download/moonriver_VERSION_amd64.deb
# Install
sudo dpkg -i moonriver_VERSION_amd64.deb
git clone https://github.com/willpuckett/moonriver.git
cd moonriver
cargo build --release
sudo cp target/release/moonriver /usr/local/bin/
We welcome contributions! If you have suggestions or want to report a bug, please open an issue on GitHub. If you're interested in contributing code, feel free to submit a Pull Request!