Read and write .tlslibrary bit library files for Makera Studio
(CAM software for the Makera CNC machines), so you can generate tool
libraries from a spreadsheet or database instead of typing them in.
- SPEC.md — the reverse-engineered file format, field by field
- tlslib.py — reference parser/writer, pure Python 3, no dependencies
- samples/ — a stock export to use as a base (you need its material IDs)
- examples/ — CSV →
.tlslibraryscript
import tlslib
lib = tlslib.parse('samples/stock-default-tools.tlslibrary') # gets the material IDs
lib['name'] = 'My Toolcrib' # becomes the group name in Makera Studio
lib['tools'] = []
tlslib.new_tool(lib, '1/4" 2FL upcut', 'flatend', tool_number=1,
DS_handle_dia=6.35, LS_shoulder_len=25, LC_flute_len=19, DC_diameter=6.35,
feeds={'Hardwood': dict(spindle_rpm=18000, feed_mm_min=1500, plunge_mm_min=500,
step_over_pct=40, step_down_mm=2, coolant=1),
'Acrylic': dict(spindle_rpm=16000, feed_mm_min=1200, plunge_mm_min=400,
step_over_pct=30, step_down_mm=1.5, coolant=0)})
tlslib.write(lib, 'my-toolcrib.tlslibrary')Import the file in Makera Studio's tool library; it appears as a new group under Custom Tools.
Dump any .tlslibrary as JSON:
python3 tlslib.py some-export.tlslibrary
Tool types: ballnose flatend vbit engraving bullnose drill thread taperedballnose
Geometry keywords (mm / degrees): DS_handle_dia LS_shoulder_len LC_flute_len DC_diameter D1_tip_dia CR_corner_radius TI_angle AN_half_angle thread_spec PI_pitch TA_thread_angle thread_drill_dia. Unspecified ones get Makera's defaults.
Material names must match the app's exactly: Hardwood, Softwood, Acrylic, ABS, Polycarbonate, Delrin, 6061 Aluminum, 7075 Aluminum, Brass, Copper, PCB, Bakelite, Carbon Fiber, Synthetic Stone, Epoxy Tooling.
coolant: 0 = none, 1 = air. metal=0 selects the Non-Metal radio.
Verified against Makera Studio exports and imports in September 2026 (library format version 1). A few bytes are still unexplained — see the open questions at the end of the spec. If you can settle one, open an issue with a probe export and what you changed.
python3 examples/csv_to_tlslibrary.py examples/tools.csv samples/stock-default-tools.tlslibrary out.tlslibrary "My Bits"
See examples/tools.csv for the expected columns.
WTFPL — see LICENSE.