Installation
bash
bunx skills add https://github.com/openbio-ai/skills --skill openbio
Authentication
Required:
environment variable.
Tell the user to create their API key at:
http://openbio.tech/profile#apikeys and securely store it in their environment variables.
If the user has not signed in to OpenBio, tell them to sign in to OpenBio (
https://openbio.tech/auth) and create their account first and then create their API key.
bash
export OPENBIO_API_KEY=your_key_here
Version Check (Do This First)
Before using the API, verify your skill is up to date:
bash
curl -s "http://api.openbio.tech/api/v1/tools/skill-version"
This returns
{"skill": "openbio", "version": "X.Y.Z", ...}
. Compare against the
field at the top of this file (currently
1.0.0). If the API returns a newer version:
If that fails, remove and re-install:
bash
bunx skills remove openbio --global -y
bunx skills add openbio-ai/skills --skill openbio --global --agent '*' -y
Quick Start
bash
# Health check (no auth required)
curl -X GET "http://api.openbio.tech/api/v1/tools/health"
# List available tools
curl -X GET "http://api.openbio.tech/api/v1/tools" \
-H "X-API-Key: $OPENBIO_API_KEY"
# Get tool schema (always do this first!)
curl -X GET "http://api.openbio.tech/api/v1/tools/{tool_name}" \
-H "X-API-Key: $OPENBIO_API_KEY"
# Validate parameters before invoking (optional)
curl -X POST "http://api.openbio.tech/api/v1/tools/validate" \
-H "X-API-Key: $OPENBIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"tool_name": "search_pubmed", "params": {"query": "CRISPR", "max_results": 5}}'
# Invoke tool
curl -X POST "http://api.openbio.tech/api/v1/tools" \
-H "X-API-Key: $OPENBIO_API_KEY" \
-F "tool_name=search_pubmed" \
-F 'params={"query": "CRISPR", "max_results": 5}'
Decision Tree: Which Tools to Use
What do you need?
│
├─ Protein/structure data?
│ └─ Read rules/protein-structure.md
│ → PDB, AlphaFold, UniProt tools
│
├─ Literature search?
│ └─ Read rules/literature.md
│ → PubMed, arXiv, bioRxiv, OpenAlex
│
├─ Genomics/variants?
│ └─ Read rules/genomics.md
│ → Ensembl, GWAS, VEP, GEO
│
├─ Small molecule analysis?
│ └─ Read rules/cheminformatics.md
│ → RDKit, PubChem, ChEMBL
│
├─ Cloning/PCR/assembly?
│ └─ Read rules/molecular-biology.md
│ → Primers, restriction, Gibson, Golden Gate
│
├─ Structure prediction/design?
│ └─ Read rules/structure-prediction.md
│ → Boltz, Chai, ProteinMPNN, LigandMPNN
│
├─ Pathway analysis?
│ └─ Read rules/pathway-analysis.md
│ → KEGG, Reactome, STRING
│
└─ Clinical/drug data?
└─ Read rules/clinical-data.md
→ ClinicalTrials, ClinVar, FDA, Open Targets
Critical Rules
1. Always Check Tool Schema First
bash
# Before invoking ANY tool:
curl -X GET "http://api.openbio.tech/api/v1/tools/{tool_name}" \
-H "X-API-Key: $OPENBIO_API_KEY"
Parameter names vary (e.g.,
not
). Check schema to avoid errors.
2. Long-Running Jobs (submit_* tools)
Prediction tools return a
. Poll for completion:
bash
# Check status
curl -X GET "http://api.openbio.tech/api/v1/jobs/{job_id}/status" \
-H "X-API-Key: $OPENBIO_API_KEY"
# Get results with download URLs
curl -X GET "http://api.openbio.tech/api/v1/jobs/{job_id}" \
-H "X-API-Key: $OPENBIO_API_KEY"
3. Quality Thresholds
Don't just retrieve data—interpret it:
AlphaFold pLDDT: > 70 = confident, < 50 = disordered
Experimental resolution: < 2.5 Å for binding sites
GWAS p-value: < 5×10⁻⁸ = genome-wide significant
Tanimoto similarity: > 0.7 = similar compounds
See individual rule files for detailed thresholds.
Rule Files
Read these for domain-specific knowledge:
Core API
| File | Description |
|---|
| rules/api.md | Core endpoints, authentication, job management |
Data Access Tools
| File | Tools Covered |
|---|
| rules/protein-structure.md | PDB, PDBe, AlphaFold, UniProt |
| rules/literature.md | PubMed, arXiv, bioRxiv, OpenAlex |
| rules/genomics.md | Ensembl, ENA, Gene, GWAS, GEO |
| rules/cheminformatics.md | RDKit, PubChem, ChEMBL |
| rules/molecular-biology.md | Primers, PCR, restriction, assembly |
| rules/pathway-analysis.md | KEGG, Reactome, STRING |
| rules/clinical-data.md | ClinicalTrials, ClinVar, FDA |
ML Prediction Tools (Detailed)
| File | Tool | Use Case |
|---|
| rules/structure-prediction.md | Index | Decision tree for all prediction tools |
| rules/boltz.md | Boltz-2 | Structure + binding affinity |
| rules/chai.md | Chai-1 | Multi-modal (protein+ligand+RNA+glycan) |
| rules/simplefold.md | SimpleFold | Quick single-protein folding |
| rules/proteinmpnn.md | ProteinMPNN | Fixed-backbone sequence design |
| rules/ligandmpnn.md | LigandMPNN | Ligand-aware sequence design |
| rules/thermompnn.md | ThermoMPNN | Stability (ΔΔG) prediction |
| rules/geodock.md | GeoDock | Protein-protein docking |
| rules/pinal.md | Pinal | De novo design from text |
| rules/boltzgen.md | BoltzGen | End-to-end binder design |
Tool Categories Summary
| Category | Count | Examples |
|---|
| Protein structure | 23 | fetch_pdb_metadata, get_alphafold_prediction |
| Literature | 14 | search_pubmed, arxiv_search, biorxiv_search_keywords |
| Genomics | 27 | lookup_gene, vep_predict, gwas_search_associations_by_trait |
| Cheminformatics | 20+ | calculate_molecular_properties, chembl_similarity_search |
| Molecular biology | 15 | design_primers, restriction_digest, assemble_gibson |
| Structure prediction | 15+ | submit_boltz_prediction, submit_proteinmpnn_prediction |
| Pathway analysis | 24 | analyze_gene_list, get_string_network |
| Clinical data | 22 | search_clinical_trials, clinvar_search |
Troubleshooting: Updating the Skill
If the API returns a newer version than the one in this file (see Version Check above), update your skill. See the Version Check section at the top for commands.
Common Mistakes
- Not checking schemas → Parameter errors. Use
POST /api/v1/tools/validate
to pre-check params.
- Ignoring quality metrics → Using unreliable data
- Wrong tool for task → Check decision trees in rule files
- Not polling jobs → Missing prediction results
- Wrong tool name → 404 responses include "Did you mean?" suggestions with similar tool names
Tip: When in doubt, search for tools:
GET /api/v1/tools/search?q=your_query