JMRI® is...


A better tool for programming decoders, simplifying the job of configuring DCC decoders from your computer


Design and Operate CRT based CTC control panels that reflect the real-time state of your railroad and let you control it


A system for Dispatching, grouping your Roster and Throttles


Build Trains from your Roster and print Train Manifests that detail the work your train crews will perform


A set of tools for using Audio with JMRI

Cool Uses

See some of the great things being implemented by the model railroad community using JMRI. There are also many apps with JMRI connections and apps written using the Jython scripting language.


JMRI tools for working with your layout:

Layout Automation

Use JMRI to automate parts of your layout and operations:

Supported hardware

JMRI supports a wide range of DCC systems, command stations and protocols.

JMRI Setup and Installation

JMRI environments...

JMRI Help:
Contents/ Index
Glossary/ FAQ

Donate to JMRI Donate to

What is JMRI?

fireman on the NYC

The JMRI project is building tools for model railroad computer control. We want it to be usable to as many people as possible, so we're building it in Java to run anywhere, and we're trying to make it independent of specific hardware systems.

JMRI is intended as a jumping-off point for hobbyists who want to control their layouts with a computer without having to create an entire system from scratch.

You can manage your locomotive rosters and easily program your decoders using DecoderPro®. You can build control panels and control your layout using PanelPro™ to set up signaling and other functions. OperationsPro™ lets you create manifests that route cars across your railroad from shipper to receiver, and provide train crews with operating instructions.

Going beyond the basics, you can use Logix to automate your layout's behavior, interface with X10 and Insteon systems to control your layout room's lights and write scripts to extend the capabilities of the system.

Donate to JMRI As an open source project, JMRI is evolving in many directions at once. You can get involved at many levels:

Whatever it is that you choose to do with JMRI, and however you get involved, welcome to our community!

JMRI 4.22 Production Release

Released on March 1, 2021.

JMRI 4.22 is recommended for new users. It's the most recent stable production release.

For more information, please read the JMRI 4.22 Release Note, which also contains the download links.

JMRI 3.10.1 Production Release

Released on January 11, 2015.

JMRI 3.10.1 is recommended for JMRI users with computers that can only run Java 1.6; later releases require Java 1.8.

For more information, please read the JMRI 3.10.1 Release Note, which also contains the download links.

JMRI 2.14.1 Production Release

Released on July 15, 2012.

JMRI 2.14.1 is recommended for JMRI users with computers that can only run Java 1.5; later releases require Java 1.6/1.8.

For more information, please read the JMRI 2.14.1 Release Note, which also contains the download links.

JMRI 4.23.5 Test Release

Released on May 12, 2021.

This is the next in a series working toward the next JMRI production release 4.24 probably in early summer 2021.

For more information on this test release, please read the JMRI 4.23.5 Release Note, which also contains the download links.

Release 4.22 is the current "production" release, recommended for first-time users.

MR SLAM Formatter: Another "JMRI Connections" Application

Community Connections
Tim Mann has created "Model Railroad Switch List and Manifest Formatter (MR SLAM Formatter)" as an additional way to create custom railroad paperwork from JMRI information. For more info, see our Community Connections page or go directly to the program's web site

New "How To" Explanations for Operations

Operations docs
There's a new series of introductory "How To" explanations for JMRI Operations. These provide step-by-step instructions for doing the first things needed to get started with Operations.

Check Out the "JMRI Clinics" page

JMRI clinics
Several users have contributed their clinics for our Clinics page. There are both conventional handout and slides clinics, and also some neat interactive clinics for DecoderPro® and PanelPro™.

Some JMRI clinics from past NMRA national and other conventions are also included.

Additional Applications with JMRI Connections

Community Connections
Hobbyists have created applications that work with JMRI to provide extra capabilities. In addition, some commercial vendors have created applications that work with, add data to, or take data from JMRI. See the community/connections directory for a list and links. New applications can be added at any time!

Use Your Smart Phone As a Throttle!

Android Engine Driver screen
You can now use your iPhone, iPod Touch or Android cell phone as a throttle with JMRI.

After you download and install a program onto your phone, you can connect it wirelessly to your computer running JMRI, which in turn will run your layout. Imagine friends visiting your layout and running trains from their cellphones, without having to bring throttles.

For more information, please see the feature page.

Control Your Locos From a Web Browser - computer, smartphone or tablet

InControl Icon
Now, you can control your layout directly from your computer, smartphone or tablet, without the need to download and install any application. The current web browsers running on these devices are able to manage the resources and features needed to replace physical throttles. Just start the JMRI Web Server on your JMRI computer, open http://<your JMRI server>/web/webThrottle.html and enjoy it. For more information, please visit the webThrottle - Web control for locos, panels, turnouts and routes page.

JMRI on a Raspberry Pi!

Raspberry Pi
The Raspberry Pi is becoming increasingly popular as a small and cheap computer. JMRI will operate under the Raspbian operating system (Debian version of Linux). See here for installation instructions..

Help Pages Online

JMRI Help System
The JMRI applications have a built-in help system. It has lots of information, including overviews and window-specific information. The pages are simple HTML, and users are encouraged to add missing information. The Help information is available online via either the Index or Table of Contents.

Decoder ID pages

Decoder ID pages
A "Decoder ID" page has been added to the web. Automagically created from the current DecoderPro definitions, it provides easy access to all sorts of information about decoders.

Contribute more information to our decoder definitions, and help these pages become even more useful!

KAM Dispute Ends!

KAM JMRI dispute
JMRI is an informal open-source software group. We do this for the joy of model railroading, and don't produce anything for profit.

One of our members has spent the past four years in the Federal Courts defending our right to continue against an individual who has attacked us with bogus patent threats, cybersquatting, copyright infringement and other illegal acts.

We are extremely pleased to announce that this case has now been settled. The agreement ends the dispute, and gives everybody involved a way to move forward. This is a victory for JMRI and open-source software in general.

JMRI wins Duke's Choice award from Sun Microsystems

Dukes Choice
Sun Microsystems (now part of Oracle) has awarded JMRI a 2006 Duke's Choice award. Also called a "Dukie", this award is given annually to "some of the most clever, practical, and inspirational Java technology applications on the planet". The award was presented at the annual JavaOne conference on May 14th by James Gosling.

JMRI won for its community, its use of Java technology to empower people all over the world to contribute, and for the impact it's had.