Skip to content

Repository files navigation

Skipper

Skipper is a touch-friendly web interface for controlling Klipper-based 3D printers through the Moonraker API. It runs entirely in the browser and supports multiple printers, print and file management, temperature controls, movement, extrusion, and the G-code console.

Use the hosted version at timwedde.github.io/skipper.

Getting started

Skipper connects directly from your browser to Moonraker. Your phone or computer must therefore be able to reach the printer, usually by being on the same local network.

1. Allow Skipper in Moonraker

Add the hosted site's origin to the existing [authorization] section in moonraker.conf:

[authorization]
cors_domains:
    https://timwedde.github.io

Keep any existing cors_domains entries and add this one alongside them. Save the file and restart Moonraker.

2. Connect your printer

Open Skipper and enter:

  • Name: Any name you want to use for the printer.
  • Host or IP: The printer's local hostname or IP address, such as printer.local or 192.168.1.50. Do not include http://.
  • Port: 7125 for a standard Moonraker installation.
  • Authentication: Select trusted/none, username and password, or API key to match your Moonraker configuration.
  • Use HTTPS / WSS: Enable this only if Moonraker is configured for TLS.

Allow local-network access if your browser asks for permission, then save the printer. Printer details are stored in that browser, so another browser or device must be configured separately.

Skipper is only the frontend: it does not relay traffic through a cloud server. The printer must remain reachable from the device running Skipper, including when using the installed app.

Install as an app

Skipper is a Progressive Web App. Use your browser's Install app or Add to Home Screen action for a full-screen, app-like experience. The interface can reopen from its local cache, but printer controls still require a network connection to Moonraker.

Development

Requirements: Node.js 26 or newer and Bun.

bun install
bun dev

Before submitting changes, run:

bun format
bun lint
bun run build

Set VITE_BASE_PATH when building for a subpath such as GitHub Pages:

VITE_BASE_PATH=/skipper/ bun run build

About

My personal Klipper controller

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages