OctoDash gives OctoPrint a touchscreen interface meant for a Pi on a wall
OctoDash is a simple, but beautiful dashboard for OctoPrint.
At a glance
- What is it?
- OctoDash is a TypeScript and Angular front end for OctoPrint, packaged as an Electron application for Debian based Linux and built for touchscreens on a Raspberry Pi attached to a printer. It is Apache-2.0 licensed, at version 2.8.0, and the last push was on 2026-10-06.
- Who is it for?
- OctoDash suits someone who has OctoPrint on a Raspberry Pi with a touchscreen attached and wants the printer controlled by touch rather than by a phone, and it is the wrong tool if you do not have OctoPrint, since it is a front end for that server and not a print server itself. Before installing, read the requirements list carefully, because OctoPrint 1.9.0 or higher, a Debian based Linux, a landscape screen and a specific user account are all hard prerequisites.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 16 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 21, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A front end for OctoPrint, aimed at a screen on the wall
OctoDash is a simple, but beautiful dashboard for OctoPrint, and the README is precise about what that means. It is a User Interface for OctoPrint, it utilizes the OctoPrint API but tries to use modern design principles in order to fully enable the power of your Raspberry Pi attached to your 3D Printer. OctoDash works best with a Touchscreen and will support almost all functions that OctoPrint offers just in a nicer format.
So the scope is a display layer, not a server. Everything OctoDash does is a call to the OctoPrint API, and the design work went into making the same operations legible on a small screen with fingers rather than a desktop browser with a mouse.
The requirements tell you what the target machine is. OctoPrint 1.9.0 or higher. A Debian-based Linux installation, with OctoPi recommended, and OctoDash may be installed on the same device OctoPrint is running from. And a 16:9, 16:10 or 4:3 screen in landscape orientation, with a touchscreen recommended.
The screen requirement is a design decision rather than a technical one. A portrait phone layout would be a different application, and the fixed aspect ratios and landscape orientation tell you the layout was drawn for a small landscape panel mounted next to a printer. The Debian requirement is because the packaged output is a deb, and the target hardware is a Pi, so the packaging target and the screen target agree.
The project is by Timon Gaebelein, the primary language is TypeScript with Angular, and the licence is Apache-2.0. The homepage is a GitHub Pages site, and there is a Discord server for support and development questions.
Installation runs as the display user, not as root
The install is a single command:
bash <(wget -qO- https://github.com/UnchartedBull/OctoDash/raw/main/scripts/install.sh)And the instruction attached to it is the part that matters. Execute this command as the user that logs in on the display, usually pi, and not as root or with sudo. For more options and information have a look at the wiki installation page.
That is a deliberate constraint rather than a warning about style. OctoDash is a desktop application that has to own a display, and the display belongs to a session, and a session belongs to a user. Installing it as root would put the process in a different session and the window would not appear where the user expects. The wiki page is also where the no keyboard setup is covered, which matters for a Pi you configure over SSH before you ever plug the screen in.
Updating follows the same pattern and can be done two ways. Through the OctoDash UI, by clicking Settings, then About, then Install for the current version. Or from the command line:
bash <(wget -qO- https://github.com/UnchartedBull/OctoDash/raw/main/scripts/update.sh)Having a self-update button in the interface is a small but meaningful decision for a device that is often headless until someone walks up to it. The troubleshooting guide in the wiki is also linked prominently, and the README says to look there first when there are installation issues, with the issue tracker as the fallback.
The tips are the real feature list
The tips and tricks section is where the actual behaviour of the application is described, and it is more informative than a feature bullet list would be.
OctoDash supports printing from your Raspberry and from the printer's SD card, if configured in OctoPrint, from version 1.5.0. You can let OctoDash push out and pull in the filament during a filament change, if you set up the feed length correctly, also from 1.5.0, and you can use the printer's filament change progress by enabling it in the settings, with the printer needing to support M600. If you are using FilamentManager you can add the colour in HEX format to the end of the name, like "Vendor black (#000000)", and that colour is then shown in the filament selection menu.
The customisation options are the other half. You can adjust the look of OctoDash through the ~/.config/octodash/custom-styles.css file by adding your own CSS rules, from version 2.0.0. You can press on the temperatures and fan speed icons in the home screen to adjust them, and tapping the value once sets it to zero, from 1.4.1. You can press multiple arrows directly after another in the control view, and all actions will be executed in series even if the prior did not finish. And the six actions on the right in the control view can be customised, to send GCode commands, to restart OctoPrint or your Pi, or even to open iFrames so you can view your camera.
The M600 detail is the one worth understanding. That is a G-code command for filament change, so a printer that supports it can do the physical swap while the dashboard tracks the progress, which is the kind of end-to-end feature that only makes sense on a touchscreen attached to the machine doing the work.
Previews are supported too. OctoDash supports.ufp package and PrusaSlicer preview images, with a square aspect ratio like 256x256 recommended, and you can show the thumbnails during the print by pressing on the percentage inside the progress ring.
Finally, language. OctoDash will start in your host's language if it is supported, and you can override it by starting it with LANG=fr_FR.UTF-8 octodash. Currently supported languages are fr_FR.UTF-8, and English is used if your requested language is not available.
An Electron shell around an Angular app, packaged as a deb
The package.json shows the technology choices and the packaging target, and there is one configuration field that generates code.
The app is an Angular project built with Angular CLI, since the repository has angular.json along with tsconfig.app.json, tsconfig.spec.json and tsconfig.json. The main entry is main.js, the module type is ES module, and the browserslist targets chrome >= 120. The engines field requires node ^24.12.0 and npm ~11.13.0, which is a very recent toolchain requirement for a project whose users run it on a Raspberry Pi.
The build configuration is electron-builder. The appId is octodash, the productName is OctoDash, and the output directory is package. The files list is the interesting part, because it shows what a packaged OctoDash contains: main.js, src/helper, the built dist directory, angular.json, node_modules, the themes CSS, the licence, and a long set of exclusion patterns for the things in node_modules that should not be shipped, including changelogs, readmes, tests, type declarations, binaries and source maps.
The Linux target is a deb with architecture armv7l, arm64 and x64, in the Utility category, with the icon taken from src/assets/icon/icon.png. The three architectures together say who the audience is, since a Pi is either 32-bit or 64-bit and a lot of older Pi hardware is still armv7l.
The prepare script runs json2ts to read src/helper/config.schema.json and write src/model/config.model.ts. So the configuration file has a JSON schema, and the TypeScript types for it are generated at build time rather than written by hand, which means the config schema is the single source of truth for what can be set.
The repository also has a themes/ directory, which is where the visual themes live, and a .stylelintrc.json with a .stylelintignore alongside a .prettierrc and .prettierignore for the formatting rules. The styles are linted separately from the TypeScript, which is a sign the project treats the CSS as a real part of the product rather than as an afterthought.
Where OctoDash is the wrong choice
The first limit is that it does nothing without OctoPrint. There is no local printing, no file management and no slicing in OctoDash. Every feature in the tips list is a call to the OctoPrint API, so a user without an OctoPrint server has no use for it at all.
The second is the platform assumption. The requirements are a Debian-based Linux installation, OctoPrint 1.9.0 or higher, and a landscape touchscreen of a specific aspect ratio. That rules out a Windows machine running OctoPrint, a Mac, and any headless setup where the display is a phone. The Linux requirement is not incidental, since the package is a deb and the toolchain is aimed at a Pi.
The third is the toolchain requirement against that hardware. Node ^24.12.0 and npm ~11.13.0 are pinned in package.json, so the build expects that toolchain. The install script handles this for the end user, but a contributor or someone building from source on an older Pi is the one who has to sort out the runtime.
The fourth is what the customisation surface implies. The six customisable actions in the control view can send arbitrary GCode, restart OctoPrint or the Pi, and open iFrames. Those are broad controls on a device that is often physically attached to a machine and reachable by anyone who can touch the screen, so the security posture of the OctoPrint instance behind it is what actually matters, and the README says nothing about authentication or access control.
The fifth is scope creep in a different direction. The README describes the tool as supporting almost all functions that OctoPrint offers just in a nicer format, which sets an expectation of near-parity with a server that is itself still moving. The release history shows v2.7.0 in January 2026, v2.7.1 the same month, and v2.8.0 in June, with the last push on 2026-10-06, so the project is active and keeping up with OctoPrint, but a dashboard that tracks a fast-moving API is a maintenance commitment rather than a set-and-forget install.
Editorial conclusion
OctoDash suits someone who has OctoPrint on a Raspberry Pi with a touchscreen attached and wants the printer controlled by touch rather than by a phone, and it is the wrong tool if you do not have OctoPrint, since it is a front end for that server and not a print server itself. Before installing, read the requirements list carefully, because OctoPrint 1.9.0 or higher, a Debian based Linux, a landscape screen and a specific user account are all hard prerequisites. Verify first that your touchscreen resolution matches one of the supported aspect ratios, and note the install command runs as the display user rather than as root.
Frequently asked questions
What is OctoDash?
It is a dashboard for OctoPrint, written in TypeScript with Angular and packaged as an Electron application. It uses the OctoPrint API to present the print server's functions in a form meant for a touchscreen, and it targets a Raspberry Pi attached to a 3D printer.
How do I install OctoDash?
Run bash <(wget -qO- https://github.com/UnchartedBull/OctoDash/raw/main/scripts/install.sh) as the user that logs in on the display, usually pi, and not as root or with sudo. The wiki installation page covers the other options and the setup without a keyboard.
What are the requirements for OctoDash?
OctoPrint 1.9.0 or higher, a Debian-based Linux installation with OctoPi recommended, and a 16:9, 16:10 or 4:3 screen in landscape orientation with a touchscreen recommended. OctoDash may be installed on the same device that runs OctoPrint.
How do I update OctoDash?
Through the interface, by clicking Settings, then About, then Install for the current version, or from the command line with bash <(wget -qO- https://github.com/UnchartedBull/OctoDash/raw/main/scripts/update.sh).
Can I customise the look of OctoDash?
Yes. You can add your own CSS rules to the ~/.config/octodash/custom-styles.css file, from version 2.0.0. The six actions in the control view can also be reassigned to send GCode, restart OctoPrint or the Pi, or open iFrames.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/unchartedbull-octodash)