OctoPrint is the snappy web interface for your 3D printer! https://octoprint.org
  • Python 44.1%
  • JavaScript 24.9%
  • G-code 21.6%
  • Jinja 7.9%
  • Less 0.7%
  • Other 0.7%
Find a file
Gina Häußge e8fa6b48f0
Fix autoconnect related backwards compatibility and UX issues (#5340)
* fix(serial): adjust config schema

- removed autoconnect, port, baudrate
- adjusted initial migration to move those from serial to printerConnection
- added unit tests

* fix(api): add autoconnect setting to pre 2.0.0 connection api

* feat: default connection settings & autoconnect config

* fix(serial): remove unused autorefresh stuff from schema

* refactor(serial): slight code simplification

* fix(serial): take preferred port/baudrate from new setting

Also add unit tests for baudrateList and serialList functions.

* ux: improve autoconnect logic

- disable the autoconnect checkbox if the save checkbox is not
  checked
- only evaluate the autoconnect parameter on the API if the
  connection settings are also to be saved

* fix(serial): make copy of standard baudrate list

* fix(serial): preferredConnectorName can contain html

We want to be able to add markup if we can't determine
the preferred connector's name.

* fix(serial): fix parameters of onConnectionDataReceived

* test(serial): fix a backwards doc string

* fix(serial): reset autoconnect to false
2026-03-26 19:54:44 +01:00
.github build(deps): bump actions/download-artifact from 8.0.0 to 8.0.1 (#5329) 2026-03-23 12:35:21 +01:00
.tx 🌐 Make some display text translateable that wasn't yet (#4830) 2023-06-29 16:06:02 +02:00
docs chore: migrate left over 1.3.0 to 2.1.0 2026-03-26 15:04:32 +01:00
src Fix autoconnect related backwards compatibility and UX issues (#5340) 2026-03-26 19:54:44 +01:00
tests Fix autoconnect related backwards compatibility and UX issues (#5340) 2026-03-26 19:54:44 +01:00
translations fix: fix a bunch of typos (#5286) 2026-03-09 11:45:46 +01:00
.codespell_ignore_words fix(lint): make codespell happy again 2025-05-30 10:50:21 +02:00
.editorconfig 🎨 Add prettier for js, less, yaml, json, ... 2020-10-07 18:53:49 +02:00
.eslintrc.yaml ⬆️ Update eslint version 2023-03-06 15:27:17 +01:00
.git-blame-ignore-revs chore: update ignored revs for git blame 2025-06-23 13:51:52 +02:00
.gitattributes ♻️ Replace versioneer with a custom tool 2023-10-05 17:18:27 +02:00
.gitignore Merge branch 'bugfix' into dev 2025-09-09 10:20:43 +02:00
.ignore Add static files to .ignore 2021-09-13 15:57:28 +02:00
.pre-commit-config.yaml ci: deploy zizmor 2026-03-04 14:50:15 +01:00
.prettierignore 🎨 Add prettier for js, less, yaml, json, ... 2020-10-07 18:53:49 +02:00
.prettierrc.yaml 🎨 Add prettier for js, less, yaml, json, ... 2020-10-07 18:53:49 +02:00
AGENTS.md docs: clarify that AI generated documentation will not be accepted 2026-01-28 10:36:55 +01:00
AUTHORS.md ux: blacklist -> blocklist (#5211) 2025-12-08 10:48:15 +01:00
babel.cfg 🔖 Preparing release of 1.8.0 2022-05-16 14:55:05 +02:00
CHANGELOG.md 🐛 Fix link to repo 2020-06-24 15:59:18 +02:00
CODE_OF_CONDUCT.md 📝 Add CoC and update README 2020-10-16 13:04:40 +02:00
CONTRIBUTING.md docs: document commit message format & migrate environment docs to markdown 2026-02-25 17:06:53 +01:00
eslint.config.js chore: update pre-commit hooks 2025-06-23 12:58:15 +02:00
LICENSE.txt Some adjustments for PyPI stuff 2018-04-24 12:41:45 +02:00
MANIFEST.in fix(build): rollback to recursive-include 2025-05-30 17:40:16 +02:00
pyproject.toml fix(announcements): aggressively sanitize feed content 2026-03-24 16:10:13 +01:00
pytest.ini chore: ignore two deprecated modules during test collection 2026-01-08 12:03:10 +01:00
README.md docs: add python version badge 2025-10-16 10:25:53 +02:00
requirements.txt Force https index URL in requirements.txt 2017-11-01 16:15:18 +01:00
SECURITY.md 📝 Redirect to new sec policy on octoprint.org 2022-10-19 11:50:45 +02:00
setup.py fix(achievements): properly handle year change during runtime 2026-01-06 16:15:47 +01:00
SUPPORTERS.md chore(funding): update supporters 2026-02-18 11:39:14 +01:00
Taskfile.yml dx: add task for running qunit tasks 2026-03-26 14:44:55 +01:00
THIRDPARTYLICENSES.md docs: add link to repo in THIRDPARTYLICENSES.md 2026-02-04 15:57:55 +01:00

OctoPrint's logo

OctoPrint

GitHub release PyPI Supported Python versions Build status Community Forum Discord Contributor Covenant Linting & formatting python: ruff Linting & formatting html/jinja: djLint Formatting js/css/less/yaml: prettier pre-commit

OctoPrint provides a snappy web interface for controlling consumer 3D printers. It is Free Software and released under the GNU Affero General Public License V31.

Its website can be found at octoprint.org.

The community forum is available at community.octoprint.org. It also serves as a central knowledge base.

An invite to the Discord server can be found at discord.octoprint.org.

The FAQ can be accessed by following faq.octoprint.org.

The documentation is located at docs.octoprint.org.

The official plugin repository can be reached at plugins.octoprint.org.

OctoPrint's development wouldn't be possible without the financial support by its community. If you enjoy OctoPrint, please consider becoming a regular supporter!

Screenshot

You are currently looking at the source code repository of OctoPrint. If you already installed it (e.g. by using the Raspberry Pi targeted distribution OctoPi) and only want to find out how to use it, the documentation might be of more interest for you. You might also want to subscribe to join the community forum at community.octoprint.org where there are other active users who might be able to help you with any questions you might have.

Contributing

Contributions of all kinds are welcome, not only in the form of code but also with regards to the official documentation, debugging help in the bug tracker, support of other users on the community forum at community.octoprint.org or the official discord at discord.octoprint.org and also financially.

If you think something is bad about OctoPrint or its documentation the way it is, please help in any way to make it better instead of just complaining about it -- this is an Open Source Project after all :)

For information about how to go about submitting bug reports or pull requests, please see the project's Contribution Guidelines.

Special Thanks

Cross-browser testing services are kindly provided by BrowserStack.

Profiling is done with the help of PyVmMonitor.

Error tracking is powered and sponsored by Sentry.


  1. Where another license applies to a specific file or folder, that is noted inside the file itself or a folder README. For licenses of both linked and vendored third party dependencies, see also THIRDPARTYLICENSES.md. ↩︎