Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Laboratory automation toolkit for controlling liquid handlers, plate readers, pumps, heater shakers, incubators, centrifuges, and analytical equipment. Use this skill when automating laboratory workflows, programming liquid handling robots (Hamilton STAR, Opentrons OT-2, Tecan EVO), integrating lab equipment, managing deck layouts and resources (plates, tips, containers), reading plates, or creating reproducible laboratory protocols. Applicable for both simulated protocols and physical hardware
.claude/skills/pylabrobot/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | — | — |
| case-18 | ✗→✓ | ▲ Improved | — | — |
| case-01 | ✗→✓ | ▲ Improved | — | — |
| case-09 | ✗→✓ | ▲ Improved | — | — |
| case-13 | ✗→✓ | ▲ Improved | — | — |
PyLabRobot is a hardware-agnostic, pure Python Software Development Kit for automated and autonomous laboratories. Use this skill to control liquid handling robots, plate readers, pumps, heater shakers, incubators, centrifuges, and other laboratory automation equipment through a unified Python interface that works across platforms (Windows, macOS, Linux).
Use this skill when:
PyLabRobot provides comprehensive laboratory automation through six main capability areas, each detailed in the references/ directory:
references/liquid-handling.md)Control liquid handling robots for aspirating, dispensing, and transferring liquids. Key operations include:
references/resources.md)Manage laboratory resources in a hierarchical system:
references/hardware-backends.md)Connect to diverse laboratory equipment through backend abstraction:
references/analytical-equipment.md)Integrate plate readers and analytical instruments:
references/material-handling.md)Control environmental and material handling equipment:
references/visualization.md)Visualize and simulate laboratory protocols:
To get started with PyLabRobot, install the package and initialize a liquid handler:
python# Install PyLabRobot # uv pip install pylabrobot # Basic liquid handling setup from pylabrobot.liquid_handling import LiquidHandler from pylabrobot.liquid_handling.backends import STAR from pylabrobot.resources import STARLetDeck # Initialize liquid handler lh = LiquidHandler(backend=STAR(), deck=STARLetDeck()) await lh.setup() # Basic operations await lh.pick_up_tips(tip_rack["A1:H1"]) await lh.aspirate(plate["A1"], vols=100) await lh.dispense(plate["A2"], vols=100) await lh.drop_tips()
This skill organizes detailed information across multiple reference files. Load the relevant reference when:
All reference files can be found in the references/ directory and contain comprehensive examples, API usage patterns, and best practices.
When creating laboratory automation protocols with PyLabRobot:
python# Setup lh = LiquidHandler(backend=STAR(), deck=STARLetDeck()) await lh.setup() # Define resources tip_rack = TIP_CAR_480_A00(name="tip_rack") source_plate = Cos_96_DW_1mL(name="source") dest_plate = Cos_96_DW_1mL(name="dest") lh.deck.assign_child_resource(tip_rack, rails=1) lh.deck.assign_child_resource(source_plate, rails=10) lh.deck.assign_child_resource(dest_plate, rails=15) # Transfer protocol await lh.pick_up_tips(tip_rack["A1:H1"]) await lh.transfer(source_plate["A1:H12"], dest_plate["A1:H12"], vols=100) await lh.drop_tips()
python# Setup plate reader from pylabrobot.plate_reading import PlateReader from pylabrobot.plate_reading.clario_star_backend import CLARIOstarBackend pr = PlateReader(name="CLARIOstar", backend=CLARIOstarBackend()) await pr.setup() # Set temperature and read await pr.set_temperature(37) await pr.open() # (manually or robotically load plate) await pr.close() data = await pr.read_absorbance(wavelength=450)
For detailed usage of specific capabilities, refer to the corresponding reference file in the references/ directory.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +32 percentage points is the difference between those two pass rates over the 21 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.