Natural language AI agents for lab robot control β no coding required.
"I had 30 scientists waiting for methods while I was the only automation engineer. OpenLabAI is what I built so that never happens again." β Ainur Nygmet, ZenoVistaAI Inc.
OpenLabAI lets a wet lab scientist describe an experiment in plain English and get a ready-to-run liquid handling protocol in under 5 minutes β without writing a single line of code.
You type:
Plan an NGS library cleanup: bind 40 Β΅L AMPure beads, 3x 80 Β΅L ethanol wash, elute 20 Β΅L
The agent plans it, shows you a Gantt timeline, and generates the protocol file for your robot.
In most biotech labs today, there is one automation engineer for every 20β30 scientists. Every time a scientist needs a new liquid handling method, they wait. Days. Sometimes weeks.
PyLabRobot (Wierenga et al., 2023) and Pioneer Labs (Mancuso et al., 2026) solved the programmer bottleneck β they replaced proprietary vendor software with Python. That is a huge step.
OpenLabAI solves the next bottleneck: the scientist still needs to know Python.
We add a conversational AI layer on top of PyLabRobot so that the scientist talks to the robot directly β in the language of science, not code.
| Traditional | PyLabRobot / Pioneer Labs | OpenLabAI | |
|---|---|---|---|
| Who can write protocols | Automation engineer only | Python programmers | Any scientist |
| Interface | Proprietary GUI | Jupyter notebooks | Plain English chat |
| Time to new protocol | Daysβweeks | Hours | Minutes |
| Hardware support | One vendor | Hamilton, Tecan, OT-2 | + Cellario + Biomek FXP |
| AI integration | None | Code assist | Full conversational agent |
| Cost | $50k+ software | Free | Free |
| Instrument | Tier | Connection | Status |
|---|---|---|---|
| Opentrons OT-2 | Tier 1 β Full live control | HTTP API | β Production |
| Hamilton STAR/STARLet | Tier 2 β COM automation | PyLabRobot USB | β Production |
| Cellario workcells | Tier 2 β COM automation | COM interface | β Beta |
| Beckman Biomek FXP | Tier 3 β File-based | .mth XML files | β Production |
| Tecan Freedom EVO | Tier 2 β COM automation | PyLabRobot | π§ In progress |
Download BiomekAgent.html, open it in Chrome, paste your Claude API key, and start talking to your robot. No Python, no terminal, no installation.
Requirements: Python 3.13+, pip
# 1. Clone the repo
git clone https://github.com/nygmeta/OpenLabAI.git
cd OpenLabAI
# 2. Install dependencies
pip install -r requirements.txt
# 3. Run the MCP server for your instrument
python mcp_servers/ot2_server.py # Opentrons OT-2
python mcp_servers/biomek_server.py # Beckman Biomek FXP
python mcp_servers/cellario_server.py # Cellario workcells (Windows only)4. Add to your Claude Desktop config (%APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"openlab": {
"command": "python",
"args": ["C:/path/to/OpenLabAI/mcp_servers/ot2_server.py"]
}
}
}5. Open Claude Desktop and start talking:
Read my OT-2 deck and tell me what is loaded
Create a 50 Β΅L transfer from well A1 to B1 across all 96 wells, new tips each row
Plan an AMPure bead cleanup: 1.8x beads, 2x 80% ethanol wash, elute in 20 Β΅L EB
OpenLabAI/
βββ gui/
β βββ BiomekAgent.html # Standalone web GUI β open in Chrome, no install
βββ mcp_servers/
β βββ ot2_server.py # Opentrons OT-2 MCP server (HTTP API)
β βββ biomek_server.py # Beckman Biomek FXP MCP server (file-based)
β βββ cellario_server.py # Cellario workcell MCP server (Windows COM)
βββ evals/
β βββ protocol_evals.py # Acceptance criteria and validation framework
β βββ run_logger.py # Audit trail and run logging for regulated environments
βββ protocols/
β βββ ngs_cleanup.py # AMPure bead cleanup (OT-2, PyLabRobot)
β βββ normalization.py # DNA/library normalization
β βββ serial_dilution.py # Serial dilution template
βββ resources/
β βββ custom_labware.py # Custom labware definitions for PyLabRobot
βββ examples/
β βββ ngs_cleanup_example.md # Step-by-step walkthrough
β βββ slas_boston_case_study.md # SLAS Boston 2025 live demo case study
βββ docs/
β βββ INSTRUMENT_GUIDE.md # How to connect each instrument type
β βββ SCIENTIST_GUIDE.md # For scientists with no coding background
βββ requirements.txt
βββ LICENSE
βββ README.md
You: Plan an NGS library cleanup. I have 50 Β΅L of PCR product in slot 1.
Use 1.8x AMPure beads, 2x 80% ethanol wash, elute in 20 Β΅L EB.
Agent: Here is your NGS cleanup protocol β 11 steps, ~28 minutes:
Step 1: Pick up tips
Step 2: Aspirate 90 Β΅L AMPure beads from reservoir
Step 3: Dispense beads to sample plate
Step 4: Mix 10x at 80 Β΅L to bind DNA
Step 5: Incubate 5 min on magnet
Step 6: Remove supernatant
Step 7: Ethanol wash 1 β 150 Β΅L
Step 8: Ethanol wash 2 β 150 Β΅L
Step 9: Air dry 2 min
Step 10: Add 20 Β΅L EB buffer
Step 11: Transfer eluate to destination plate
You: Normalize my library plate to 4 nM. Source concentrations are in this CSV.
Agent: I will calculate transfer volumes from your concentration data
and generate a normalization worklist for the OT-2.
Scientist (plain English)
β
Claude Agent (protocol planning + SFS tree search)
β
MCP Server (tool calls: read_deck, aspirate, create_protocol)
β
PyLabRobot / HTTP API / COM / File
β
Physical Robot
OpenLabAI uses Scattered Forest Search (Light et al., 2024) to generate and validate multiple protocol candidates before committing. This increases first-attempt protocol validity from 54% (single-shot generation) to 87% (SFS).
The evals/ folder contains a production-grade validation framework for AI-generated protocols:
- Acceptance criteria per protocol type (NGS cleanup, normalization, serial dilution)
- Deck constraint checker β validates volumes, positions, tip availability per instrument
- Run logger β full audit trail with operator, timestamp, step status, and protocol hash
- Designed for GxP-adjacent environments requiring traceability
from evals.protocol_evals import evaluate_protocol
result = evaluate_protocol(protocol, protocol_type="ngs_cleanup", instrument="OT-2")
print(result.overall_score) # 0.87
print(result.passed) # True
print(result.protocol_hash) # abc123...If you use OpenLabAI in your research, please cite:
@article{nygmet2026openlabai,
title={Natural Language Agents for Laboratory Automation: An MCP-Based Framework
for Scientist-Directed Robot Control Without Coding},
author={Nygmet, Ainur},
journal={bioRxiv},
year={2026},
institution={ZenoVistaAI Inc.}
}This work builds on:
- PyLabRobot β Wierenga et al., 2023
- Scattered Forest Search β Light et al., 2024
- Pioneer Labs NGS Library Prep β Mancuso et al., 2026
We welcome contributions β especially from wet lab scientists who can tell us what is missing.
- Found a bug? Open a GitHub Issue
- New instrument backend? Open a PR with your MCP server
- New labware definitions? Add to
resources/custom_labware.py - Protocol templates? Add to
protocols/
Built by Ainur Nygmet at ZenoVistaAI Inc.
Background: 6+ years as a lab automation engineer at Guardant Health, Personalis, and Hexagon Bio. Developed 50+ Hamilton methods, trained 40+ scientists on lab automation, certified Cellario operator. Demonstrated live AI-driven workcell orchestration at SLAS Boston 2025.
This project exists because I was the bottleneck. I do not want anyone else to be.
Contact: nygmetainur@gmail.com LinkedIn: Ainur Nygmet GitHub: nygmeta
MIT License β free to use, modify, and share. See LICENSE for details.