Agent skill

Opentrons Integration

by davila7 in davila7/claude-code-templates

Lab automation platform for Flex/OT-2 robots. An agent skill from davila7/claude-code-templates.

MITAuto-check passed

Install Opentrons Integration

skills CLI
$ npx skills add davila7/claude-code-templates --skill opentrons-integration -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install davila7/claude-code-templates opentrons-integration --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/davila7/claude-code-templates.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-tool/components/skills/scientific/opentrons-integration .claude/skills/opentrons-integration && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
opentrons-integration
GitHub stars
33k
Used in
10 other repos
Token cost
~3.6k tokens
SKILL.md length
457 words
Files
5 (incl. scripts, references)
Skills in repo
479
Repo updated
First seen
Licence
MIT

At a glance

Lab automation platform for Flex/OT-2 robots. An agent skill from davila7/claude-code-templates.

  • Works in 9 steps: Protocol Structure and Metadata → Loading Hardware → Liquid Handling Operations → …
  • SKILL.md covers Overview, When to Use This Skill, Core Capabilities and Best Practices, plus 2 more sections
  • Runs Python scripts from its folder

What it does

Opentrons Integration is an agent skill from davila7/claude-code-templates. Lab automation platform for Flex/OT-2 robots. Write Protocol API v2 protocols, liquid handling, hardware modules (heater-shaker, thermocycler), labware management, for automated pipetting workflows.

Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and reference files (for example `references/api_reference.md`, `scripts/basic_protocol_template.py` and `scripts/pcr_setup_template.py`).

The repository describes itself as: CLI tool for configuring and monitoring Claude Code. The licence is MIT.

Example prompts

  • “/opentrons-integration”

Requirements

  • Python 3

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Protocol Structure and Metadata
  2. Loading Hardware
  3. Liquid Handling Operations
  4. Accessing Wells and Locations
  5. Hardware Module Control
  6. Liquid Tracking and Labeling
  7. Protocol Control and Utilities
  8. Multi-Channel and 8-Channel Pipetting
  9. Common Protocol Patterns

What it can do on your machine

Read from SKILL.md and the folder at commit c0ca7da. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 3 files in scripts/ (Python), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Opentrons Integration loads about 3.6k tokens when it runs, and up to ~6.9k if it reads all its reference files. Until then it costs about 55 tokens; SKILL.md has 457 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~55
When it runs · the whole SKILL.md, loaded when a task matches
~3.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from davila7/claude-code-templates at commit c0ca7da, republished under its MIT licence (© davila7). 457 words, ~3,637 tokens.

Download SKILL.mdSave it as .claude/skills/opentrons-integration/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
opentrons-integration
description
Lab automation platform for Flex/OT-2 robots. Write Protocol API v2 protocols, liquid handling, hardware modules (heater-shaker, thermocycler), labware management, for automated pipetting workflows.

Opentrons Integration

Overview

Opentrons is a Python-based lab automation platform for Flex and OT-2 robots. Write Protocol API v2 protocols for liquid handling, control hardware modules (heater-shaker, thermocycler), manage labware, for automated pipetting workflows.

When to Use This Skill

This skill should be used when:

  • Writing Opentrons Protocol API v2 protocols in Python
  • Automating liquid handling workflows on Flex or OT-2 robots
  • Controlling hardware modules (temperature, magnetic, heater-shaker, thermocycler)
  • Setting up labware configurations and deck layouts
  • Implementing complex pipetting operations (serial dilutions, plate replication, PCR setup)
  • Managing tip usage and optimizing protocol efficiency
  • Working with multi-channel pipettes for 96-well plate operations
  • Simulating and testing protocols before robot execution

Core Capabilities

1. Protocol Structure and Metadata

Every Opentrons protocol follows a standard structure:

python
from opentrons import protocol_api

# Metadata
metadata = {
    'protocolName': 'My Protocol',
    'author': 'Name <email@example.com>',
    'description': 'Protocol description',
    'apiLevel': '2.19'  # Use latest available API version
}

# Requirements (optional)
requirements = {
    'robotType': 'Flex',  # or 'OT-2'
    'apiLevel': '2.19'
}

# Run function
def run(protocol: protocol_api.ProtocolContext):
    # Protocol commands go here
    pass

Key elements:

  • Import protocol_api from opentrons
  • Define metadata dict with protocolName, author, description, apiLevel
  • Optional requirements dict for robot type and API version
  • Implement run() function receiving ProtocolContext as parameter
  • All protocol logic goes inside the run() function
2. Loading Hardware

Loading Instruments (Pipettes):

python
def run(protocol: protocol_api.ProtocolContext):
    # Load pipette on specific mount
    left_pipette = protocol.load_instrument(
        'p1000_single_flex',  # Instrument name
        'left',               # Mount: 'left' or 'right'
        tip_racks=[tip_rack]  # List of tip rack labware objects
    )

Common pipette names:

  • Flex: p50_single_flex, p1000_single_flex, p50_multi_flex, p1000_multi_flex
  • OT-2: p20_single_gen2, p300_single_gen2, p1000_single_gen2, p20_multi_gen2, p300_multi_gen2

Loading Labware:

python
# Load labware directly on deck
plate = protocol.load_labware(
    'corning_96_wellplate_360ul_flat',  # Labware API name
    'D1',                                # Deck slot (Flex: A1-D3, OT-2: 1-11)
    label='Sample Plate'                 # Optional display label
)

# Load tip rack
tip_rack = protocol.load_labware('opentrons_flex_96_tiprack_1000ul', 'C1')

# Load labware on adapter
adapter = protocol.load_adapter('opentrons_flex_96_tiprack_adapter', 'B1')
tips = adapter.load_labware('opentrons_flex_96_tiprack_200ul')

Loading Modules:

python
# Temperature module
temp_module = protocol.load_module('temperature module gen2', 'D3')
temp_plate = temp_module.load_labware('corning_96_wellplate_360ul_flat')

# Magnetic module
mag_module = protocol.load_module('magnetic module gen2', 'C2')
mag_plate = mag_module.load_labware('nest_96_wellplate_100ul_pcr_full_skirt')

# Heater-Shaker module
hs_module = protocol.load_module('heaterShakerModuleV1', 'D1')
hs_plate = hs_module.load_labware('corning_96_wellplate_360ul_flat')

# Thermocycler module (takes up specific slots automatically)
tc_module = protocol.load_module('thermocyclerModuleV2')
tc_plate = tc_module.load_labware('nest_96_wellplate_100ul_pcr_full_skirt')
3. Liquid Handling Operations

Basic Operations:

python
# Pick up tip
pipette.pick_up_tip()

# Aspirate (draw liquid in)
pipette.aspirate(
    volume=100,           # Volume in µL
    location=source['A1'] # Well or location object
)

# Dispense (expel liquid)
pipette.dispense(
    volume=100,
    location=dest['B1']
)

# Drop tip
pipette.drop_tip()

# Return tip to rack
pipette.return_tip()

Complex Operations:

python
# Transfer (combines pick_up, aspirate, dispense, drop_tip)
pipette.transfer(
    volume=100,
    source=source_plate['A1'],
    dest=dest_plate['B1'],
    new_tip='always'  # 'always', 'once', or 'never'
)

# Distribute (one source to multiple destinations)
pipette.distribute(
    volume=50,
    source=reservoir['A1'],
    dest=[plate['A1'], plate['A2'], plate['A3']],
    new_tip='once'
)

# Consolidate (multiple sources to one destination)
pipette.consolidate(
    volume=50,
    source=[plate['A1'], plate['A2'], plate['A3']],
    dest=reservoir['A1'],
    new_tip='once'
)

Advanced Techniques:

python
# Mix (aspirate and dispense in same location)
pipette.mix(
    repetitions=3,
    volume=50,
    location=plate['A1']
)

# Air gap (prevent dripping)
pipette.aspirate(100, source['A1'])
pipette.air_gap(20)  # 20µL air gap
pipette.dispense(120, dest['A1'])

# Blow out (expel remaining liquid)
pipette.blow_out(location=dest['A1'].top())

# Touch tip (remove droplets on tip exterior)
pipette.touch_tip(location=plate['A1'])

Flow Rate Control:

python
# Set flow rates (µL/s)
pipette.flow_rate.aspirate = 150
pipette.flow_rate.dispense = 300
pipette.flow_rate.blow_out = 400
4. Accessing Wells and Locations

Well Access Methods:

python
# By name
well_a1 = plate['A1']

# By index
first_well = plate.wells()[0]

# All wells
all_wells = plate.wells()  # Returns list

# By rows
rows = plate.rows()  # Returns list of lists
row_a = plate.rows()[0]  # All wells in row A

# By columns
columns = plate.columns()  # Returns list of lists
column_1 = plate.columns()[0]  # All wells in column 1

# Wells by name (dictionary)
wells_dict = plate.wells_by_name()  # {'A1': Well, 'A2': Well, ...}

Location Methods:

python
# Top of well (default: 1mm below top)
pipette.aspirate(100, well.top())
pipette.aspirate(100, well.top(z=5))  # 5mm above top

# Bottom of well (default: 1mm above bottom)
pipette.aspirate(100, well.bottom())
pipette.aspirate(100, well.bottom(z=2))  # 2mm above bottom

# Center of well
pipette.aspirate(100, well.center())
5. Hardware Module Control

Temperature Module:

python
# Set temperature
temp_module.set_temperature(celsius=4)

# Wait for temperature
temp_module.await_temperature(celsius=4)

# Deactivate
temp_module.deactivate()

# Check status
current_temp = temp_module.temperature  # Current temperature
target_temp = temp_module.target  # Target temperature

Magnetic Module:

python
# Engage (raise magnets)
mag_module.engage(height_from_base=10)  # mm from labware base

# Disengage (lower magnets)
mag_module.disengage()

# Check status
is_engaged = mag_module.status  # 'engaged' or 'disengaged'

Heater-Shaker Module:

python
# Set temperature
hs_module.set_target_temperature(celsius=37)

# Wait for temperature
hs_module.wait_for_temperature()

# Set shake speed
hs_module.set_and_wait_for_shake_speed(rpm=500)

# Close labware latch
hs_module.close_labware_latch()

# Open labware latch
hs_module.open_labware_latch()

# Deactivate heater
hs_module.deactivate_heater()

# Deactivate shaker
hs_module.deactivate_shaker()

Thermocycler Module:

python
# Open lid
tc_module.open_lid()

# Close lid
tc_module.close_lid()

# Set lid temperature
tc_module.set_lid_temperature(celsius=105)

# Set block temperature
tc_module.set_block_temperature(
    temperature=95,
    hold_time_seconds=30,
    hold_time_minutes=0.5,
    block_max_volume=50  # µL per well
)

# Execute profile (PCR cycling)
profile = [
    {'temperature': 95, 'hold_time_seconds': 30},
    {'temperature': 57, 'hold_time_seconds': 30},
    {'temperature': 72, 'hold_time_seconds': 60}
]
tc_module.execute_profile(
    steps=profile,
    repetitions=30,
    block_max_volume=50
)

# Deactivate
tc_module.deactivate_lid()
tc_module.deactivate_block()

Absorbance Plate Reader:

python
# Initialize and read
result = plate_reader.read(wavelengths=[450, 650])

# Access readings
absorbance_data = result  # Dict with wavelength keys
6. Liquid Tracking and Labeling

Define Liquids:

python
# Define liquid types
water = protocol.define_liquid(
    name='Water',
    description='Ultrapure water',
    display_color='#0000FF'  # Hex color code
)

sample = protocol.define_liquid(
    name='Sample',
    description='Cell lysate sample',
    display_color='#FF0000'
)

Load Liquids into Wells:

python
# Load liquid into specific wells
reservoir['A1'].load_liquid(liquid=water, volume=50000)  # µL
plate['A1'].load_liquid(liquid=sample, volume=100)

# Mark wells as empty
plate['B1'].load_empty()
7. Protocol Control and Utilities

Execution Control:

python
# Pause protocol
protocol.pause(msg='Replace tip box and resume')

# Delay
protocol.delay(seconds=60)
protocol.delay(minutes=5)

# Comment (appears in logs)
protocol.comment('Starting serial dilution')

# Home robot
protocol.home()

Conditional Logic:

python
# Check if simulating
if protocol.is_simulating():
    protocol.comment('Running in simulation mode')
else:
    protocol.comment('Running on actual robot')

Rail Lights (Flex only):

python
# Turn lights on
protocol.set_rail_lights(on=True)

# Turn lights off
protocol.set_rail_lights(on=False)
8. Multi-Channel and 8-Channel Pipetting

When using multi-channel pipettes:

python
# Load 8-channel pipette
multi_pipette = protocol.load_instrument(
    'p300_multi_gen2',
    'left',
    tip_racks=[tips]
)

# Access entire column with single well reference
multi_pipette.transfer(
    volume=100,
    source=source_plate['A1'],  # Accesses entire column 1
    dest=dest_plate['A1']       # Dispenses to entire column 1
)

# Use rows() for row-wise operations
for row in plate.rows():
    multi_pipette.transfer(100, reservoir['A1'], row[0])
9. Common Protocol Patterns

Serial Dilution:

python
def run(protocol: protocol_api.ProtocolContext):
    # Load labware
    tips = protocol.load_labware('opentrons_flex_96_tiprack_200ul', 'D1')
    reservoir = protocol.load_labware('nest_12_reservoir_15ml', 'D2')
    plate = protocol.load_labware('corning_96_wellplate_360ul_flat', 'D3')

    # Load pipette
    p300 = protocol.load_instrument('p300_single_flex', 'left', tip_racks=[tips])

    # Add diluent to all wells except first
    p300.transfer(100, reservoir['A1'], plate.rows()[0][1:])

    # Serial dilution across row
    p300.transfer(
        100,
        plate.rows()[0][:11],  # Source: wells 0-10
        plate.rows()[0][1:],   # Dest: wells 1-11
        mix_after=(3, 50),     # Mix 3x with 50µL after dispense
        new_tip='always'
    )

Plate Replication:

python
def run(protocol: protocol_api.ProtocolContext):
    # Load labware
    tips = protocol.load_labware('opentrons_flex_96_tiprack_1000ul', 'C1')
    source = protocol.load_labware('corning_96_wellplate_360ul_flat', 'D1')
    dest = protocol.load_labware('corning_96_wellplate_360ul_flat', 'D2')

    # Load pipette
    p1000 = protocol.load_instrument('p1000_single_flex', 'left', tip_racks=[tips])

    # Transfer from all wells in source to dest
    p1000.transfer(
        100,
        source.wells(),
        dest.wells(),
        new_tip='always'
    )

PCR Setup:

python
def run(protocol: protocol_api.ProtocolContext):
    # Load thermocycler
    tc_mod = protocol.load_module('thermocyclerModuleV2')
    tc_plate = tc_mod.load_labware('nest_96_wellplate_100ul_pcr_full_skirt')

    # Load tips and reagents
    tips = protocol.load_labware('opentrons_flex_96_tiprack_200ul', 'C1')
    reagents = protocol.load_labware('opentrons_24_tuberack_nest_1.5ml_snapcap', 'D1')

    # Load pipette
    p300 = protocol.load_instrument('p300_single_flex', 'left', tip_racks=[tips])

    # Open thermocycler lid
    tc_mod.open_lid()

    # Distribute master mix
    p300.distribute(
        20,
        reagents['A1'],
        tc_plate.wells(),
        new_tip='once'
    )

    # Add samples (example for first 8 wells)
    for i, well in enumerate(tc_plate.wells()[:8]):
        p300.transfer(5, reagents.wells()[i+1], well, new_tip='always')

    # Run PCR
    tc_mod.close_lid()
    tc_mod.set_lid_temperature(105)

    # PCR profile
    tc_mod.set_block_temperature(95, hold_time_seconds=180)

    profile = [
        {'temperature': 95, 'hold_time_seconds': 15},
        {'temperature': 60, 'hold_time_seconds': 30},
        {'temperature': 72, 'hold_time_seconds': 30}
    ]
    tc_mod.execute_profile(steps=profile, repetitions=35, block_max_volume=25)

    tc_mod.set_block_temperature(72, hold_time_minutes=5)
    tc_mod.set_block_temperature(4)

    tc_mod.deactivate_lid()
    tc_mod.open_lid()
Show full SKILL.md (192 more words)Show less

Best Practices

  1. Always specify API level: Use the latest stable API version in metadata
  2. Use meaningful labels: Label labware for easier identification in logs
  3. Check tip availability: Ensure sufficient tips for protocol completion
  4. Add comments: Use protocol.comment() for debugging and logging
  5. Simulate first: Always test protocols in simulation before running on robot
  6. Handle errors gracefully: Add pauses for manual intervention when needed
  7. Consider timing: Use delays when protocols require incubation periods
  8. Track liquids: Use liquid tracking for better setup validation
  9. Optimize tip usage: Use new_tip='once' when appropriate to save tips
  10. Control flow rates: Adjust flow rates for viscous or volatile liquids

Troubleshooting

Common Issues:

  • Out of tips: Verify tip rack capacity matches protocol requirements
  • Labware collisions: Check deck layout for spatial conflicts
  • Volume errors: Ensure volumes don't exceed well or pipette capacities
  • Module not responding: Verify module is properly connected and firmware is updated
  • Inaccurate volumes: Calibrate pipettes and check for air bubbles
  • Protocol fails in simulation: Check API version compatibility and labware definitions

Resources

For detailed API documentation, see references/api_reference.md in this skill directory.

For example protocol templates, see scripts/ directory.

© davila7, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts, references) in cli-tool/components/skills/scientific/opentrons-integration of davila7/claude-code-templates.

  • SKILL.md
  • references/api_reference.md
  • scripts/basic_protocol_template.py
  • scripts/pcr_setup_template.py
  • scripts/serial_dilution_template.py

Open the folder on GitHubat commit c0ca7da

Used in 10 other repositories

We found 14 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 10 other GitHub owners. This page covers the copy in davila7/claude-code-templates, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Opentrons Integration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Opentrons Integration compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Opentrons Integration this skilldavila7/claude-code-templates33k10 repos~3.6kAutomated safety check: PassMIT
Opentrons IntegrationK-Dense-AI/scientific-agent-skills48k1 repos~3.8kAutomated safety check: NotesMIT
Robots Meta Conflictthedaviddias/Front-End-Checklist74k—~555Automated safety check: PassMIT
Labhashgraph-online/awesome-codex-plugins1.3k—~2.9kAutomated safety check: PassApache-2.0
Robot Framework Skillsickn33/agentic-awesome-skills47k1 repos~1.4kAutomated safety check: PassMIT
Ginkgo Cloud LabK-Dense-AI/scientific-agent-skills48k1 repos~2.8kAutomated safety check: PassMIT

Similar skills

  • Opentrons Integration

    K-Dense-AI/scientific-agent-skills

    Authors, reviews, migrates, simulates, and troubleshoots official Opentrons Python Protocol API v2 protocols for Flex and OT-2 robots.

    48k GitHub starsUsed in 1 repo~3.8k tokens
    Research & ScienceAuto-check: notes
  • Robots Meta Conflict

    thedaviddias/Front-End-Checklist

    A skill your agent uses when applies to sites that use both robots.txt disallow rules and meta robots noindex tags.

    74k GitHub stars~555 tokensUpdated 4 days ago
    Marketing & SEOAuto-check passed
  • Lab

    hashgraph-online/awesome-codex-plugins

    Build a Game Lab for one mechanic of a studio's game (the jump, a hit, a dash, a drift, a landing) and iterate on how it FEELS with the creator, side by side.

    1.3k GitHub stars~2.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Robot Framework Skill

    sickn33/agentic-awesome-skills

    Generates Robot Framework tests in keyword-driven syntax with Python.

    47k GitHub starsUsed in 1 repo~1.4k tokens
    Testing & QAAuto-check passed
  • Ginkgo Cloud Lab

    K-Dense-AI/scientific-agent-skills

    Guides protocol selection, input preparation, pricing checks, and browser ordering on Ginkgo Bioworks Cloud Lab (cloud.ginkgo.bio).

    48k GitHub starsUsed in 1 repo~2.8k tokens
    Game DevelopmentAuto-check passed
  • Robots Meta

    thedaviddias/Front-End-Checklist

    A skill your agent uses when applies to all HTML pages. An agent skill from thedaviddias/Front-End-Checklist.

    74k GitHub stars~494 tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed

More from davila7/claude-code-templates

All 479 skills in this repo
  • Perplexity Web Search

    davila7/claude-code-templates

    Runs web-grounded searches through Perplexity's Sonar models over OpenRouter for current events, recent literature and cited facts beyond the model's training cutoff.

    33k GitHub starsUsed in 11 repos~3.5k tokens
    Auto-check: notes
  • Neuropixels Data Analysis

    davila7/claude-code-templates

    Analyzes Neuropixels recordings from SpikeGLX or Open Ephys through preprocessing, drift correction, Kilosort4 spike sorting, quality metrics and curation.

    33k GitHub starsUsed in 9 repos~2.8k tokens
    Auto-check passed
  • Scientific Venue Templates

    davila7/claude-code-templates

    Supplies LaTeX templates and formatting rules for journals, conferences, posters, and grant proposals, then can check a draft against them.

    33k GitHub starsUsed in 9 repos~5.1k tokens
    Auto-check: notes
  • Brand Voice Content Creator

    davila7/claude-code-templates

    Analyzes a brand's existing writing to lock in a consistent voice, then builds SEO blog posts and platform-specific social content around it.

    33k GitHub starsUsed in 3 repos~1.9k tokens
    Auto-check passed
  • CAPA Officer

    davila7/claude-code-templates

    Guides corrective and preventive action (CAPA) work in a quality management system, from initiation and root cause analysis through effectiveness verification.

    33k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Fda Consultant Specialist

    davila7/claude-code-templates

    Senior FDA consultant and specialist for medical device companies including HIPAA compliance and requirement management.

    33k GitHub starsUsed in 1 repo~2.7k tokens
    Auto-check passed

Questions about Opentrons Integration

What does Opentrons Integration do?

Lab automation platform for Flex/OT-2 robots. An agent skill from davila7/claude-code-templates. Opentrons Integration is an agent skill from davila7/claude-code-templates. Lab automation platform for Flex/OT-2 robots.

How do I install Opentrons Integration in Claude Code?

Run `npx skills add davila7/claude-code-templates --skill opentrons-integration -a claude-code`. Or copy the skill folder (cli-tool/components/skills/scientific/opentrons-integration in davila7/claude-code-templates) into .claude/skills/opentrons-integration in your project. Claude Code loads it when a task matches its description.

How do I install Opentrons Integration in Codex?

Run `npx skills add davila7/claude-code-templates --skill opentrons-integration -a codex`. Or copy the skill folder (cli-tool/components/skills/scientific/opentrons-integration in davila7/claude-code-templates) into .agents/skills/opentrons-integration in your project. Codex loads it when a task matches its description.

Can I use Opentrons Integration in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add davila7/claude-code-templates --skill opentrons-integration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/opentrons-integration, .gemini/skills/opentrons-integration, .github/skills/opentrons-integration and .opencode/skills/opentrons-integration in your project.

What does Opentrons Integration need to run?

Going by SKILL.md and its folder, Opentrons Integration needs Python for the scripts in its folder. Our summary lists: Python 3.

Does Opentrons Integration access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Opentrons Integration safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Opentrons Integration use?

Opentrons Integration is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Opentrons Integration use?

About 3.6k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.3k tokens, read only when the agent opens those files.

What are the alternatives to Opentrons Integration?

Skills that share tags, products or a category with Opentrons Integration: Opentrons Integration (K-Dense-AI/scientific-agent-skills, 48k stars), Robots Meta Conflict (thedaviddias/Front-End-Checklist, 74k stars), Lab (hashgraph-online/awesome-codex-plugins, 1.3k stars) and Robot Framework Skill (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Opentrons Integration?

davila7 (a GitHub user) maintains it in davila7/claude-code-templates, which has 32,512 GitHub stars. The repository holds 479 skills in this directory. The repository was last updated on October 10, 2026.

Source: davila7/claude-code-templates on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.