Developing Plugins¶
- General Concepts
 - Control Properties
 - Mixins
 - Hooks
- General Concepts
 - Execution Order
 - Available plugin hooks
- octoprint.access.permissions
 - octoprint.access.users.factory
 - octoprint.accesscontrol.keyvalidator
 - octoprint.cli.commands
 - octoprint.comm.protocol.firmware.info
 - octoprint.comm.protocol.firmware.capabilities
 - octoprint.comm.protocol.firmware.capability_report
 - octoprint.comm.protocol.action
 - octoprint.comm.protocol.atcommand.<phase>
 - octoprint.comm.protocol.gcode.<phase>
 - octoprint.comm.protocol.gcode.received
 - octoprint.comm.protocol.gcode.error
 - octoprint.comm.protocol.scripts
 - octoprint.comm.protocol.temperatures.received
 - octoprint.comm.transport.serial.additional_port_names
 - octoprint.comm.transport.serial.factory
 - octoprint.events.register_custom_events
 - octoprint.filemanager.analysis.factory
 - octoprint.filemanager.extension_tree
 - octoprint.filemanager.preprocessor
 - octoprint.plugin.backup.additional_excludes
 - octoprint.plugin.backup.before_backup
 - octoprint.plugin.backup.after_backup
 - octoprint.plugin.backup.before_restore
 - octoprint.plugin.backup.after_restore
 - octoprint.plugin.pluginmanager.reconnect_hooks
 - octoprint.plugin.softwareupdate.check_config
 - octoprint.printer.additional_state_data
 - octoprint.printer.factory
 - octoprint.printer.handle_connect
 - octoprint.printer.estimation.factory
 - octoprint.printer.sdcardupload
 - octoprint.server.api.after_request
 - octoprint.server.api.before_request
 - octoprint.server.http.access_validator
 - octoprint.server.http.bodysize
 - octoprint.server.http.routes
 - octoprint.server.sockjs.authed
 - octoprint.server.sockjs.register
 - octoprint.server.sockjs.emit
 - octoprint.system.additional_commands
 - octoprint.systeminfo.additional_bundle_files
 - octoprint.timelapse.extensions
 - octoprint.ui.web.templatetypes
 - octoprint.theming.<dialog>
 - octoprint.timelapse.capture.pre
 - octoprint.timelapse.capture.post
 
 
 - Helpers
 - Injected Properties
 - Viewmodels
 - Plugin Tutorial
- Saying hello: How to make the plugin actually do something
 - Growing up: How to make it distributable
 - Frontend fun: How to add functionality to OctoPrint’s web interface
 - Settings Galore: How to make parts of your plugin user adjustable
 - More frontend fun: Adding custom javascript to your frontend components
 - Style matters: Injecting custom CSS into the page
 - Where do we go from here?
 
 - Distributing your plugin
 - Migrating to Python 3