3D Printer World compares 3D printers, supplies, software and free model sites for 2026.

Home / Printer Host Software

Mainsail Review

Free, open source · host hardware and optional services add costs

Our verdict

A sensible starting choice for a Klipper printer: Mainsail puts files, monitoring and configuration in one adjustable browser dashboard. Its convenience depends on a working Klipper and Moonraker setup; it does not configure the printer for you.

Summary updated September 8, 2026

Mainsail

Best atKlipper users who want browser controls, configurable phone and desktop layouts, and troubleshooting tools together.

Less suited toOwners seeking wireless printing without a Klipper conversion, or businesses needing built-in operator roles and automatic farm-wide job assignment.

The Key Specs

Required softwareKlipper plus MoonrakerMainsail is the browser interface; check your exact printer and control board before converting.
Computer requirementsA suitable host, usually running LinuxA phone or laptop opens the dashboard but does not replace the computer running Klipper.
Print filesG-code from a separate slicerUpload files or send them from a supported slicer; thumbnails need the correct slicer settings.
Dashboard layoutSeparate phone and desktop arrangementsMove or hide panels to keep familiar controls and print checks within reach.
TroubleshootingConfiguration editor, bed mesh and object exclusionBed-mesh setup and correctly labeled objects are prerequisites for the corresponding tools.
Network accessLocal use needs no cloud subscriptionAway-from-home access requires a separately configured VPN or supported remote service.

Which Installation Should You Choose?

MainsailOS
Choose the bundled installation image for a fresh host on a supported board; printer configuration is still required.
KIAUH
Choose the installation helper for a Debian-based Linux host.
Manual or Docker installation
Choose these routes if you are comfortable maintaining Linux software.

Budget For The Host And Remote Access. Allow for a suitable host if your printer lacks one, an optional camera, and time to configure the printer. Camera viewing needs a working stream; timelapse needs an added component. Optional remote-access services can add ongoing costs.

More Software And Setup Details
Mobile accessBrowser-based; an installable web app needs a compatible HTTPS setup and browser.
Pause, resume and cancelBehavior depends on printer-specific macros; check these routines during setup.
Multiple printersSwitch between reachable Moonraker connections and use the farm overview; the job queue belongs to each connected printer.
Configuration backupsKeep a known-working printer.cfg and its included files on another device before editing.
UpdatesMoonraker supports the update manager; check release notes and the printer maker’s guidance for customized installations.

Mainsail is a good choice if your printer runs Klipper and you want to send files, check a print and change settings from the same browser window. Its strongest feature is how much of your printer it puts within reach: temperatures, camera feeds, configuration files and buttons for your own routines. You can also arrange the dashboard differently on your computer and phone.

The catch is that you still need to understand your printer’s setup. Mainsail makes settings easier to reach, but it doesn’t choose the right settings for you. I recommend it for an existing Klipper setup or a planned Klipper conversion. If you just want wireless printing without replacing your printer’s control software, OctoPrint may be the more sensible starting point, provided it supports your printer.

What your printer needs to use Mainsail

Mainsail works with two other programs. Klipper is firmware: software that controls the printer’s movements and heaters. It divides its work between the printer’s control board and a host computer. Moonraker passes commands and information between Klipper and other software. Mainsail is the browser interface you click and read.

That distinction matters: installing Mainsail alone won’t make an ordinary printer faster or improve its print quality. Those changes depend on the printer, Klipper settings and tuning.

The host usually runs Linux and might be a Raspberry Pi or another suitable computer. Some printers already have a host built in. Your phone or laptop opens the dashboard; it doesn’t replace the computer running Klipper.

If Klipper and Moonraker already work, adding Mainsail is mostly an interface installation and connection task. Converting a printer is a bigger project. You need a configuration that matches its hardware and a supported way to install Klipper on its control board. Check the exact printer and board revision before starting, especially with a manufacturer’s customized Klipper system.

For a fresh host, MainsailOS packages the operating system, Mainsail, Moonraker and Klipper into an installation image for supported boards. It saves software setup work; you still have to configure the printer. KIAUH, an installation helper for Debian-based Linux systems, is another route. Manual and Docker installations suit people already comfortable maintaining Linux software.

Mainsail is free, open-source software. A host, camera or optional remote service can add costs, and setup takes time. The official GitHub project is mainsail-crew/mainsail, with releases and an issue tracker. Community help is available through Discord and GitHub Discussions; contributions include documentation and translations as well as code.

The update manager can handle supported software updates through Moonraker. Read the release notes and your printer maker’s guidance before updating a customized installation. A convenient update button doesn’t remove compatibility checks.

Sending and checking prints in Mainsail

Your print starts in a slicer, the program that turns a 3D model into printer instructions called G-code. You can upload that file through Mainsail’s file manager, organize it into folders and select it when you’re ready to print.

You can also send files straight from a supported slicer. In PrusaSlicer, for example, the physical-printer settings offer Klipper (via Moonraker) as a host type. Enter the printer’s network address and test the connection. This avoids moving each file manually, but the destination still needs the correct printer profile and access settings. A successful upload doesn’t mean you sliced the model for the right machine.

Thumbnail previews make similar filenames easier to tell apart. They depend on your slicer including a supported preview image in the file, so a missing picture may need a slicer-setting change. Mainsail’s G-code viewer lets you inspect the planned paths and layers. It shows what the instructions tell the printer to do; a camera shows what’s actually happening on the bed.

Mainsail Interface Settings with G-Code Viewer selected, axes toggle, color controls and feed-rate settings.
The G-code viewer has display controls for axes, colors and feed-rate visualization.

After you select a file and start the job, the dashboard brings together printer state, progress, temperature readings and controls. You can compare the nozzle and bed temperatures with their targets and check elapsed time. Treat the remaining-time figure as an estimate. Layer information also depends on the information supplied by your slicer and configuration.

The useful part is having these checks next to your controls. If the wrong file is running, you can cancel from the interface. If you need to interrupt a job, pause and resume are available—but their behavior depends on the printer’s macros, which are saved command sequences. Where the nozzle parks, how filament retracts and what happens on cancellation need to be configured for your machine. Check those actions during setup, before depending on them midway through a long print.

You can move, hide or collapse dashboard panels. On a desktop, you might keep the temperature graph beside the camera. On your phone, put print status and the camera near the top and hide controls you rarely use. Mainsail lets you arrange these screens separately, so simplifying the phone view won’t change your desktop layout. You can also group frequently used macros, such as a printer-specific filament-loading routine, into their own panel.

For mobile use, think of Mainsail primarily as a website. It also supports an installable web app on compatible setups using an encrypted HTTPS connection; installation behavior depends on your browser. That isn’t the same as a separate native iOS or Android application. I’d use the phone for checks and familiar controls, and a larger screen for editing configuration files.

Camera viewing needs a working camera stream, commonly set up with Crowsnest. Timelapse recording adds another component, such as moonraker-timelapse. Neither happens simply because a camera panel appears in the interface.

Changing settings and handling print problems in Mainsail

Mainsail’s browser editor is one of its most useful features. You can open printer.cfg, the file holding your printer’s Klipper settings, without typing commands into a separate program. The editor uses colors to make the text easier to follow, but that doesn’t tell you whether a setting is right for your hardware.

Before changing configuration, download a known-working copy of printer.cfg and its included files to another device. If an edit causes a configuration error, read the message, undo the change or restore the relevant file, then restart Klipper. That depends on the host and Moonraker remaining reachable. If the host itself fails, you need a separate recovery route; copies stored only on its card won’t help.

The standard [include mainsail.cfg] setup supplies required sections and pause, resume and cancel macros. Check what your installation already provides before adding duplicate definitions. MainsailOS treats that supplied file as a read-only include; its documented customization uses variables in your own configuration. For example, you can change where the nozzle parks during a pause, using coordinates that suit your printer.

The Heightmap page helps explain uneven first layers by showing the bed mesh: measured height differences across the print surface. Check the numerical range as well as the picture, because the display scale can exaggerate small differences. The page needs Klipper bed-mesh configuration. It helps you investigate a tilted or uneven surface; it doesn’t straighten loose or bent hardware.

Mainsail Heightmap showing a colored bed mesh, numerical mesh range, saved profiles and numbered documentation callouts.
This documented Heightmap example pairs a bed-mesh plot with numerical measurements and saved profiles.

Object exclusion is useful when one of several parts fails. You can select that object and stop printing it while the others continue. Klipper needs [exclude_object], and the G-code needs correctly labeled objects. PrusaSlicer 2.7 or newer can emit native Klipper labels; other workflows may need Moonraker’s enable_object_processing setting and a fresh upload. Enabling the feature won’t repair an unprepared file already printing. With Cura and IdeaMaker, support material can continue after an object is excluded, so check what will remain on the bed.

Using Mainsail away from home or with several printers

On your home network, a locally installed Mainsail dashboard can communicate with your printer without a cloud subscription. Away from home, the connection is another job to set up. Saving a printer address or choosing a browser-based connection mode doesn’t make that address reachable over the internet.

A VPN can give your device a private route back to the printer’s network. Alternatively, a service such as OctoEverywhere or Obico can provide remote access through an added host component and service account. Choose based on whether you want the full interface, camera access or just notifications, and check the service’s current limits. Mainsail itself doesn’t include a universal remote-access account.

Use a VPN or a supported remote-access service instead of directly exposing Moonraker’s control port to the internet. Authentication is handled through Moonraker, which supports logins and API keys. Its trusted-client settings can also grant access based on a device’s network address. Don’t assume a login prompt protects every connection if your configuration already trusts a broad network range.

For several printers, Mainsail offers more than a list of bookmarks. You can add their Moonraker connections, switch between them and use the print farm overview, including configured camera feeds, to check several machines together. Each printer still needs its own working Klipper/Moonraker setup and a connection your browser can reach.

Mainsail Printers settings showing two example local network connections with Edit, delete and Add Printer controls.
Add reachable Moonraker connections to switch printers and use the farm overview.

Mainsail also has a job queue backed by Moonraker. That queue belongs to the connected printer; it isn’t a shared pool that automatically sends work to whichever machine becomes free. Moonraker’s automatic transition to the next job is disabled by default. On an ordinary printer, you still need to remove the finished parts and prepare the bed before starting another job.

The same distinction applies to people. A centrally configured printer list can give users the same machines to choose from, but it isn’t a team-permissions system. If you need restricted operator roles, approval steps or automatic job assignment across a farm, those requirements call for additional management software. Mainsail fits personal multi-printer oversight better than a production business that needs those features in one package.

When Fluidd or OctoPrint may suit you better than Mainsail

Fluidd is the closest alternative. It uses the same Klipper and Moonraker foundation and covers the same central tasks: file uploads, temperature checks, cameras, macros, configuration editing and object exclusion. Both let you customize their dashboards. Choose between them by how easily you can find the controls you use, rather than expecting a firmware or print-quality upgrade from switching interfaces.

If you already like Fluidd, there’s little reason to move just because a tutorial uses Mainsail. On a standard setup, the interfaces can use the same underlying printer configuration. You’ll still need to arrange the new dashboard and check its connection and macro requirements. Keep your working configuration instead of blindly adding both projects’ sample macro files.

Small differences can matter when something goes wrong. In a May 2025 Reddit report, an owner using Forge-X modified firmware tried object exclusion in both interfaces during a nine-part print. They initially preferred Mainsail’s graphical selection, then corrected their claim after learning Fluidd also allowed graphical selection through its G-code preview. That’s a useful example of a control being easier to discover for one person, rather than a feature being absent. The report didn’t identify interface versions.

Keep that 2025 experience separate from a current comparison. By the end of 2025, Mainsail had reached 2.16.1 and Fluidd 1.36.0. In September 2026, their latest stable releases are Mainsail 2.19.0 and Fluidd 1.37.4. Both continue to receive changes. Those updates don’t tell you which will be easier for you to use, faster on your computer or less demanding of its memory.

OctoPrint makes more sense if you want to keep supported existing firmware or rely on a particular plugin. Plugins are add-ons that give it extra features. It can work with many conventional printers without requiring a Klipper conversion. Check your exact model and connection support first. It also supports Klipper through a documented setup, so adopting Klipper doesn’t automatically force you to abandon OctoPrint.

For sending files, watching temperatures and pausing jobs, all three cover the basics. The bigger difference is how you add capabilities. Mainsail and Fluidd build around Klipper and Moonraker, with features such as bed-mesh viewing already integrated. OctoPrint offers an extensive plugin system, including options for bed visualization and specialized timelapses. Those plugins don’t transfer into Mainsail; check for an equivalent before migrating.

OctoPrint also offers user and group permissions, which deserve a closer look if several people share one printer. That doesn’t by itself make it a fleet scheduler. Its maintenance burden includes checking plugin compatibility, especially during the current transition: OctoPrint 2.0 is still a release candidate in early September 2026, and some plugins need updates for it. Choose a supported combination of OctoPrint and your essential plugins, rather than assuming every plugin works with every release.

Should you use Mainsail?

I recommend Mainsail if you already use Klipper and want configurable browser controls with file handling, camera viewing and troubleshooting tools close together. Separate phone and desktop layouts are particularly useful if you check prints on one device and adjust settings on another. The farm overview also makes sense for keeping an eye on several reachable printers.

Mainsail Dashboard settings with Mobile, Tablet, Desktop and Widescreen tabs and three columns of selectable panels.
Separate device layouts let you arrange the dashboard around the controls you use most.

Its main drawback is the work behind those controls. Pause behavior, bed measurements, object labels and remote access all depend on how you’ve set up the printer and its software. If you’re comfortable learning that setup, Mainsail gives you a practical place to manage it. If you want those choices handled for you, changing the interface won’t remove them.

Keep Fluidd if it already does what you need. Consider OctoPrint if you want to retain compatible firmware or depend on its plugins and permissions. For a new Klipper installation with no existing interface preference, Mainsail is a sensible starting choice—just allow time to configure and check the printer before trusting the dashboard’s buttons.

← Best Printer Host Software, ranked