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

People have used JMRI to do some great things for the model railroad community.
Our Gallery page highlights some of these.


JMRI provides powerful tools for working with your layout.

Layout Automation

JMRI can be used to automate parts of your layout, from simply controlling a crossing gate to running trains in the background.

Supported hardware

A wide range of DCC systems, Command Stations and protocols is actively supported to operate with JMRI.

Supported Computers

Donate to JMRI

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. 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.12 Production Release

Released on July 13, 2018.

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

For more information, please read the JMRI 4.12 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.13.3 Test Release

Released on September 11, 2018.

This is the next in a series working toward the next JMRI production release 4.14 in December 2018.

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

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

DigiTrains Android App for running trains from JMRI

Digitrains on Android Phone
The DigiTrains Android app now works with JMRI to provide user-friendly locomotive, accessory and route control from Android phones and tablets.

You can download it from Google play or get more information from the JMRI help.

AnyRail export to JMRI Layout Editor

AnyRail logo
AnyRail can now export your layout design to JMRI!

The AnyRail layout planning software can now export a layout design as a JMRI panel file that can be imported to Layout Editor.

For the details, see the AnyRail documentation.

MRC Hardware Support

MRC logo
JMRI now supports MRC/GaugeMaster DCC systems!

You can connect JMRI to MRC/Gaugemaster hardware by just setting the JMRI preferences and wiring it up.

For the details, see our MRC page.

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.

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.

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.


The Crandic Automated Traffic System (CATS) is a JMRI-based application by Rodney Black for controlling and operating a model railroad. There's more information on the CATS web site.

XTrackCAD and JMRI

XTrackCAD and JMRI
XTrackCAD is a great, free tool for designing your layout, developed by a group of model railroaders.

XtrkCadReader is a JMRI tool built by Giorgio Terdina to take layout information created by XTrackCAD (XTC files) and convert it to a form that JMRI can read (XML files).

This tool lets you import your physical layout design from XTrkCad directly into JMRI so you can easily set up controls for the layout you've built.

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 it's community, it's use of Java technology to empower people all over the world to contribute, and for the impact it's had.