start_print
Starts printing an uploaded file after automatic pre-flight safety checks, blocking the job when a check fails so the agent can diagnose and fix the issue.
Instructions
Start printing a file already uploaded to the printer (file must exist on printer).
``version_id`` / ``design_id`` / ``branch_id`` name the kept design the
file came from, when there is one, so the print's record lands on that
version's history; a file that is not a Kiln design passes none.
Use ``upload_file`` first, or use ``slice_and_print`` / ``run_quick_print``
to slice + upload + print in one step. Automatically runs pre-flight safety
checks before starting. If any check fails the print is blocked and the
check results are returned so the agent can diagnose and fix the issue.
Args:
file_name: Name or path of the file as shown by ``printer_files()``.
use_ams: AMS filament feeding mode (Bambu only). Tri-state:
- ``"auto"`` (default): auto-detect AMS by probing the printer.
If an AMS is connected with loaded trays, enables AMS
automatically and selects the first loaded slot if no
``ams_mapping`` is provided. Falls back to external spool
if no AMS is detected.
- ``"true"``: Force AMS on. Use when you know AMS is
connected.
- ``"false"``: Force AMS off. Use external spool.
ams_mapping: The tray each extruder feeds from (Bambu only), by
the printer's own tray id: ``unit * 4 + slot`` on a chained
unit (unit B's first slot is 4), the unit id itself on an AMS
HT (HT-A is 128). ``ams_status()`` lists each tray's
``tray_id`` and its Studio name (``B1``, ``HT-A``). Defaults to
``[0]`` when AMS feeding is on and ``[]`` (external spool) when
it is off. Use ``-1`` for unused positions.
timelapse: Record a timelapse video (Bambu only). Default ``False``.
bed_leveling: Run automatic bed leveling before print (Bambu only).
Default ``True``. Set ``False`` to skip for reprints (~2 min saved).
flow_cali: Run flow calibration (Bambu only). Default ``True``.
vibration_cali: Run vibration/resonance calibration (Bambu only).
Default ``True``.
layer_inspect: Enable first-layer lidar inspection pause (Bambu only).
Default ``False``.
nozzle_clog_detect: Enable nozzle clumping / blob detection by
probing (Bambu only). Default ``True``. Set ``False`` to
bypass HMS 0300-8014 errors on models that trigger false
positives (thin first-layer geometry, certain grip/case models).
Disables the A1/A1-mini eddy-current clump probe (first after
the layer-3 walls, then once per ~8 g of filament; A1 series only).
Kiln never turns the probe ON: with the default nothing is sent
and the printer's own screen switch governs -- ``printer_status``
and ``preflight_check`` read that switch and, when it is on,
repeat the printer's own warning that the probe leaks onto the
model unless the slice carries a purge tower. ``False`` is not
a per-print override: it turns the printer's own switch OFF --
so Kiln reads the switch first and, when it
found it ON, turns it back on when the print ends (or at once if
the print never starts). Never forced on for a printer whose
switch was off or could not be read.
restore_nozzle_detection: With ``nozzle_clog_detect=False``, put the
printer's own switch back on when the print ends (default
``True``). ``False`` leaves it off on purpose, for a batch that
wants the probe off across several prints.
bed_type: Bed surface type (Bambu only): ``"auto"`` (default),
``"textured_plate"``, ``"hot_plate"`` (smooth PEI),
``"cool_plate"``, ``"eng_plate"`` or ``"supertack_plate"``.
plate_number: Plate index in multi-plate 3MF files (Bambu only).
Default ``1``.
resume_from_paused: When ``True``, the pre-flight ``printer_idle``
check accepts ``paused`` as a valid state. Use this when
starting a resume-mode 3MF (mid-print decoration swap):
the printer is paused, you upload the resume 3MF, and then
``start_print`` it with this flag. The file is treated as
a fresh print from the firmware's POV — the resume gcode
carries its own preamble (heat → safety lift → home X/Y →
travel → descend to resume Z). Default ``False``.
Auto-detected for files whose name contains ``_resume_``
(case-insensitive) or starts with ``transformed_resume`` /
``original_resume`` — these are the conventional names
produced by ``decorate_during_print`` and ``get_print_before_edit``.
skip_preheat_reassert: When the file is a resume-mode 3MF, the
tool re-asserts the printer's pre-start hotend + bed targets
immediately after the MQTT start command, because Bambu's
resume 3MFs strip the M140/M190 pre-heat block (the original
print already heated the bed) and the firmware's
cool-on-new-job policy will otherwise drop the bed to 0
before the resume preamble executes. Set ``True`` to
disable this safety net. Default ``False``.
printer_name: Which printer to start the job on. Omit for the
default printer. Everything the start decides — the pre-flight
verdict, the preview token's printer, the emergency latch,
the nozzle-wear consult, the watchdog that will be watching —
follows the named machine, so upload the file to that same
printer first (``upload_file(..., printer_name=...)``).
preview_token: Token from ``issue_preview_token`` proving this file
was shown to the person before printing. Required beside their
go-ahead: a print is shown to its owner before it starts; a resume
of a paused print is exempt.
version_id: The kept design version this file came from, so the
print's record lands on that version's history. A file that is
not a Kiln design passes none.
design_id: The design that version belongs to; passed with
``version_id``.
branch_id: The branch that version is on; passed with ``version_id``.
Branch on ``print_start`` — one field, three values:
- ``"started"``: the printer, asked after the command, is printing.
- ``"accepted"``: the command was sent and not refused, and the machine
has not confirmed it is running. Normal during the start-up transient
(homing, AMS load, calibration). Call ``printer_status()`` to watch.
- ``"failed"``: the printer, asked after the command, is idle or errored
— it did not take the job.
``success`` is ``False`` only for ``"failed"``.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"file_name": "<file_name>"
},
"name": "start_print"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| use_ams | No | AMS filament feeding mode (Bambu only). Tri-state: - ``"auto"`` (default): auto-detect AMS by probing the printer. If an AMS is connected with loaded trays, enables AMS automatically and selects the first loaded slot if no ``ams_mapping`` is provided. Falls back to external spool if no AMS is detected. - ``"true"``: Force AMS on. Use when you know AMS is connected. - ``"false"``: Force AMS off. Use external spool. Default: "auto". | |
| bed_type | No | Bed surface type (Bambu only): ``"auto"`` (default), ``"textured_plate"``, ``"hot_plate"`` (smooth PEI), ``"cool_plate"``, ``"eng_plate"`` or ``"supertack_plate"``. Default: "auto". | |
| branch_id | No | The branch that version is on; passed with ``version_id``. | |
| design_id | No | The design that version belongs to; passed with ``version_id``. | |
| file_name | Yes | Name or path of the file as shown by ``printer_files()``. | |
| flow_cali | No | Run flow calibration (Bambu only). Default ``True``. Default: true. | |
| timelapse | No | Record a timelapse video (Bambu only). Default ``False``. Default: false. | |
| version_id | No | The kept design version this file came from, so the print's record lands on that version's history. A file that is not a Kiln design passes none. | |
| ams_mapping | No | The tray each extruder feeds from (Bambu only), by the printer's own tray id: ``unit * 4 + slot`` on a chained unit (unit B's first slot is 4), the unit id itself on an AMS HT (HT-A is 128). ``ams_status()`` lists each tray's ``tray_id`` and its Studio name (``B1``, ``HT-A``). Defaults to ``[0]`` when AMS feeding is on and ``[]`` (external spool) when it is off. Use ``-1`` for unused positions. | |
| bed_leveling | No | Run automatic bed leveling before print (Bambu only). Default ``True``. Set ``False`` to skip for reprints (~2 min saved). Default: true. | |
| plate_number | No | Plate index in multi-plate 3MF files (Bambu only). Default ``1``. Default: 1. | |
| printer_name | No | Which printer to start the job on. Omit for the default printer. Everything the start decides — the pre-flight verdict, the preview token's printer, the emergency latch, the nozzle-wear consult, the watchdog that will be watching — follows the named machine, so upload the file to that same printer first (``upload_file(..., printer_name=...)``). | |
| layer_inspect | No | Enable first-layer lidar inspection pause (Bambu only). Default ``False``. Default: false. | |
| preview_token | No | Token from ``issue_preview_token`` proving this file was shown to the person before printing. Required beside their go-ahead: a print is shown to its owner before it starts; a resume of a paused print is exempt. | |
| vibration_cali | No | Run vibration/resonance calibration (Bambu only). Default ``True``. Default: true. | |
| nozzle_clog_detect | No | Enable nozzle clumping / blob detection by probing (Bambu only). Default ``True``. Set ``False`` to bypass HMS 0300-8014 errors on models that trigger false positives (thin first-layer geometry, certain grip/case models). Disables the A1/A1-mini eddy-current clump probe (first after the layer-3 walls, then once per ~8 g of filament; A1 series only). Kiln never turns the probe ON: with the default nothing is sent and the printer's own screen switch governs -- ``printer_status`` and ``preflight_check`` read that switch and, when it is on, repeat the printer's own warning that the probe leaks onto the model unless the slice carries a purge tower. ``False`` is not a per-print override: it turns the printer's own switch OFF -- so Kiln reads the switch first and, when it found it ON, turns it back on when the print ends (or at once if the print never starts). Never forced on for a printer whose switch was off or could not be read. Default: true. | |
| resume_from_paused | No | When ``True``, the pre-flight ``printer_idle`` check accepts ``paused`` as a valid state. Use this when starting a resume-mode 3MF (mid-print decoration swap): the printer is paused, you upload the resume 3MF, and then ``start_print`` it with this flag. The file is treated as a fresh print from the firmware's POV — the resume gcode carries its own preamble (heat → safety lift → home X/Y → travel → descend to resume Z). Default ``False``. Auto-detected for files whose name contains ``_resume_`` (case-insensitive) or starts with ``transformed_resume`` / ``original_resume`` — these are the conventional names produced by ``decorate_during_print`` and ``get_print_before_edit``. Default: false. | |
| skip_preheat_reassert | No | When the file is a resume-mode 3MF, the tool re-asserts the printer's pre-start hotend + bed targets immediately after the MQTT start command, because Bambu's resume 3MFs strip the M140/M190 pre-heat block (the original print already heated the bed) and the firmware's cool-on-new-job policy will otherwise drop the bed to 0 before the resume preamble executes. Set ``True`` to disable this safety net. Default ``False``. Default: false. | |
| restore_nozzle_detection | No | With ``nozzle_clog_detect=False``, put the printer's own switch back on when the print ends (default ``True``). ``False`` leaves it off on purpose, for a batch that wants the probe off across several prints. Default: true. |