
Find binders. Validate. Get data back.
predict - validate - data in weeks
From protein sequence,
to validated binders,
to discovery, in weeks.
We screen hundreds of millions of molecules with Om library × library screening technology, then use LULA to score Om Accessible Space. Discovery always includes AS-MS. You get binder and non-binder data back in weeks.
Get started below
Just a protein sequence.
Paste 300–1500 amino acids. LULA scores Om Accessible Space and selects molecules predicted to bind only your protein.
Amino acid letters only. Sequences must be 300–1500 amino acids and start with M. Shift+Enter adds a new line.

enrichment results, verified
Top-ranked molecules carry the signal.
Across proteome-scale evaluation, LULA-1 recovered 267,324 known binders in the top 1,000 ranked molecules per target versus 4,877.6 expected under random ranking. Family AUROC remains strongest across the same druggable target families.
composition and performance · target-family AUROC
evaluated target-family coverage
Ligase/Synthase
0.829· 151
Oxidoreductase
0.811· 424
Transferase
0.808· 187
Ion channel
0.808· 147
Phosphatase
0.808· 134
Hydrolase
0.805· 351
Kinase
0.800· 707
Transporter/Pump
0.796· 191
Receptor/GPCR
0.793· 959
Protease
0.786· 316
Other
0.750· 1,528
Epigenetic/Chromatin
0.727· 207
Nucleic-acid enzyme
0.716· 137
EF@1000
54.8x
Aggregate enrichment in the top 1,000 ranked molecules per target.
Known binders recovered
267K
Recovered in top-ranked candidate sets across the benchmark.
Random baseline
4.9K
Expected known binders under random ranking.
The donut shows evaluated target-family coverage across 5,439 targets; slice size is target share and color tracks AUROC. The benchmark result is measured by known-binder recovery in the top-ranked candidate set.
Om Open Pipeline Challenges
Predict the binder. Om runs the wet lab.
Submit eligible Om molecules for real experimental validation. You keep your Result Data. Om pays the published amount for Qualified Binders selected within each protein’s current payout limit.

Current maximum payout
$25,000
$1,000 per Qualified Binder for up to 25 Qualified Binders, in paid-submission acceptance order.
Challenge terms
- 5,000 Wallet Credits per accepted molecule
- Submit up to 1,000 SMILES per batch — no participant limit
- You own your Result Data
- Om procures and experimentally tests every accepted molecule
- Payout priority follows paid-submission acceptance order
You keep ownership of every result and control its publication. A Qualified Binder outside the current payout limit is not paid or licensed unless Om later increases that limit.
enter from code
Scan om_50, rank with LULA, submit
The same SMILES-only contract runs through the Python SDK, the public API, and MCP. Use LULA or your own model to choose molecules — provenance is not part of eligibility.
Python
pip install omtx
from omtx import OmClient
client = OmClient() # reads OMTX_API_KEY
# 1. Scan Om's accessible space for om_50 molecules
space = client.molecules.accessible_space(tier=50, n=96, idempotency_key="scan-1")
candidates = client.molecules.smiles(space)
# 2. (optional) Rank them with LULA before you spend credits
client.lula1.score(protein_sequence=STAT6_SEQ, smiles=candidates,
idempotency_key="lula-1")
# 3. Submit your picks — 5,000 credits each, you own the results
client.discovery_challenges.submit(
challenge_id=CHALLENGE_ID, # from /discovery/challenges
smiles=candidates[:10],
accept_qualified_binder_data_license=True,
idempotency_key="stat6-submit-1",
)callable by agents
Add Om MCP to Claude and Codex.
Connect the hosted Om MCP in the Claude or Codex app, then use the CLI if you work in the terminal. Score proteins, start Discovery, and read Wallet Credits from the agent. No Python SDK required.
Claude
Claude app
Claude.ai and Claude Desktop
- 1Open Customize → Connectors (claude.ai/settings/connectors).
- 2Add a custom connector named Om.
- 3Paste https://agents.omtx.ai/mcp, then Add and Connect.
- 4Finish Om OAuth in the browser and enable Om in the chat + menu.
Claude Code
OAuth remote MCP
Register the remote HTTP MCP server, then authenticate from /mcp.
Setup
claude mcp add --transport http omtx https://agents.omtx.ai/mcpRestart Claude Code, run /mcp, complete OAuth in the browser, then ask for om_status.
Codex
Codex app
Developer mode, then an unpublished plugin
- 1In ChatGPT, open Settings → Security and login and turn on Developer mode.
- 2Open Plugins, choose +, name the plugin Om, and paste https://agents.omtx.ai/mcp.
- 3Finish Om OAuth. Permission is email only. There is no OpenID checkbox or path to select.
- 4Start a new chat, enable Om from Developer mode, then ask for om_status.
Codex CLI
OAuth remote MCP
Add the hosted Om MCP endpoint, then complete the OAuth login.
Setup
codex mcp add omtx --url https://agents.omtx.ai/mcp
codex mcp login --scopes email omtxRestart Codex, then ask for om_status or pricing_get to confirm the server is attached.
how we do it
FAQ
Use LULA to predict molecular binders, validate with AS-MS, and get binder and non-binder data back in weeks. Here is how Om runs the wet lab.
We screen hundreds of millions of molecules with Om library × library screening technology, then use LULA models to score Om Accessible Space and select molecules predicted to bind only your protein. Discovery always includes AS-MS validation. You get binder and non-binder data back in weeks. If you want the molecules themselves, order them later through Om MCP.
score → select → order, in one Wallet Credits flow
From a target sequence to a molecule order.
Bring a protein sequence. LULA-2 scores a fixed-price slice of Om Accessible Space and returns ranked, orderable rows. Pick the hits you want to test, spend Wallet Credits, and Om ships the molecules.
Create an API key, fund Wallet Credits, then run the SDK flow.
Real SDK flow
Define target + client
from pathlib import Path
from uuid import uuid4
import polars as pl
from omtx import OmClient
JAK2_V617F_SEQUENCE = "YOUR_JAK2_V617F_PROTEIN_SEQUENCE"
client = OmClient(api_key="YOUR_API_KEY")Launch LULA-2 scoring
job = client.lula2.score(
protein_sequence=JAK2_V617F_SEQUENCE,
source="om",
tier=50,
n=50_000,
top_k=10_000,
idempotency_key="jak2-v617f-lula2-r1",
)Collect ranked hits
artifact_paths = []
result_dir = Path("outputs/jak2-v617f-lula2-r1")
for job_id in job["job_ids"]:
client.jobs.wait(job_id, poll_interval=5, timeout=3600)
artifact_paths.extend(
client.jobs.download_all_artifacts(
job_id,
output_dir=result_dir / job_id,
overwrite=True,
)
)
score_tables = [
pl.read_parquet(path)
for path in artifact_paths
if path.suffix == ".parquet"
]
score_rows = pl.concat(score_tables).sort("score", descending=True)
selected_hits = score_rows.head(100).to_dicts()Order with Wallet Credits
addresses = client.molecules.shipping_addresses()
order = client.molecules.order(
items=selected_hits,
shipping_address_id=addresses["default_shipping_address_id"],
idempotency_key=f"jak2-v617f-round-1-{uuid4()}",
)
print(order["order_number"])50K
Om molecules
100
selected hits
Om
orderable rows
1 order
Wallet Credits
01Define the target
JAK2 V617FBring the protein sequence for a real target like JAK2 V617F.
02Score Om space
50K moleculesRun LULA-2 against an Om Accessible Space tier and get ranked molecules back.
03Select molecules
top 100Pick the highest-confidence rows you want moved onto the bench.
04Order with credits
Wallet CreditsSpend Wallet Credits on the selected hits. Om ships you molecules. That's it.
bring your hits, order molecules
Use LULA scores, generated molecules, docking, Boltz, or internal ML. Pick the molecules you want to test; Om turns selected orderable hits into a Wallet Credits-funded order.
early molecule partner
Latest Articles

Find a STAT6 binder. Om runs the wet lab—and pays.
The STAT6 Open Pipeline Challenge lets you submit om_50 molecules for AS-MS validation, own every Result Data record, and earn $1,000 for each payout-selected Qualified Binder, initially up to 25.
August 17, 2026 · 4 min read
Read More
LULA-1 is now open-weight on Hugging Face
LULA-1 scores protein-ligand pairs from sequence and SMILES, with local weights for non-commercial research and hosted scoring for commercial workflows.
July 31, 2026 · 6 min read
Read More
Vibe Discovery Is Coming
Om MCP brings Diligence, Data Access, Artifacts, Jobs, and Hub workflows into Codex, Claude Code, and OAuth-capable MCP harnesses.
April 8, 2026 · 12 min read
Read MoreWhile you're vibin'...
Watch the discovery playlist.

A little birdy said to ask Om MCP to make a vibe video for your discovery efforts. Want to ask for your favorite vibe video style?