SKILL.md
Installation
bunx skills add https://github.com/openbio-ai/skills --skill openbio
Authentication
Required: OPENBIOAPIKEY 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.
export OPENBIO_API_KEY=your_key_here
Base URL: https://api.openbio.tech/api/v1
Version Check (Do This First)
Before using the API, verify your skill is up to date:
curl -s "https://api.openbio.tech/api/v1/tools/skill-version"
This returns {"skill": "openbio", "version": "X.Y.Z", ...}. Compare against the version field at the top of this file (currently 1.0.4). If the API returns a newer version:
bunx skills update
If that fails, remove and re-install:
bunx skills remove openbio --global -y
bunx skills add openbio-ai/skills --skill openbio --global --agent '*' -y
Quick Start
# Health check (no auth required)
curl -X GET "https://api.openbio.tech/api/v1/tools/health"
# List available tools
curl -X GET "https://api.openbio.tech/api/v1/tools" \
-H "X-API-Key: $OPENBIO_API_KEY"
# Get tool schema (always do this first!)
curl -X GET "https://api.openbio.tech/api/v1/tools/{tool_name}" \
-H "X-API-Key: $OPENBIO_API_KEY"
# Validate parameters before invoking (optional)
curl -X POST "https://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 "https://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
│
├─ Sequence similarity search (BLAST)?
│ └─ Read rules/blast.md
│ → submit_blast, check_blast_status, get_blast_results
│
├─ Small molecule analysis?
│ └─ Read rules/cheminformatics.md
│ → RDKit, PubChem, ChEMBL
│
├─ Cloning/PCR/assembly?
│ └─ Read rules/molecular-biology.md
│ → Primers, restriction, Gibson, Golden Gate
│
├─ Plasmid analysis/editing?
│ └─ Read rules/plasmid.md
│ → parse_plasmid_file, edit_plasmid
│
├─ Structure prediction/design?
│ └─ Read rules/structure-prediction.md
│ → Boltz, Chai, ProteinMPNN, LigandMPNN
│
├─ Pathway analysis?
│ └─ Read rules/pathway-analysis.md
│ → KEGG, Reactome, STRING, g:Profiler (GO enrichment)
│
└─ Clinical/drug data?
└─ Read rules/clinical-data.md
→ ClinicalTrials, ClinVar, FDA, Open Targets
Critical Rules
1. Always Check Tool Schema First
# Before invoking ANY tool:
curl -X GET "https://api.openbio.tech/api/v1/tools/{tool_name}" \
-H "X-API-Key: $OPENBIO_API_KEY"
Parameter names vary (e.g., pdbids not pdbid). Check schema to avoid errors.
2. Long-Running Jobs (submit_* tools)
Prediction tools return a job_id. Poll for completion:
# Check status
curl -X GET "https://api.openbio.tech/api/v1/jobs/{job_id}/status" \
-H "X-API-Key: $OPENBIO_API_KEY"
# Get results with download URLs
curl -X GET "https://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](rules/api.md) | Core endpoints, authentication, job management |
Data Access Tools
| File | Tools Covered |
|---|---|
| [rules/protein-structure.md](rules/protein-structure.md) | PDB, PDBe, AlphaFold, UniProt |
| [rules/literature.md](rules/literature.md) | PubMed, arXiv, bioRxiv, OpenAlex |
| [rules/genomics.md](rules/genomics.md) | Ensembl, ENA, Gene, GWAS, GEO |
| [rules/blast.md](rules/blast.md) | NCBI BLAST sequence similarity search |
| [rules/cheminformatics.md](rules/cheminformatics.md) | RDKit, PubChem, ChEMBL |
| [rules/molecular-biology.md](rules/molecular-biology.md) | Primers, PCR, restriction, assembly |
| [rules/plasmid.md](rules/plasmid.md) | parseplasmidfile, edit_plasmid |
| [rules/pathway-analysis.md](rules/pathway-analysis.md) | KEGG, Reactome, STRING, g:Profiler |
| [rules/clinical-data.md](rules/clinical-data.md) | ClinicalTrials, ClinVar, FDA |
ML Prediction Tools (Detailed)
| File | Tool | Use Case |
|---|---|---|
| [rules/structure-prediction.md](rules/structure-prediction.md) | Index | Decision tree for all prediction tools |
| [rules/boltz.md](rules/boltz.md) | Boltz-2 | Structure + binding affinity |
| [rules/chai.md](rules/chai.md) | Chai-1 | Multi-modal (protein+ligand+RNA+glycan) |
| [rules/simplefold.md](rules/simplefold.md) | SimpleFold | Quick single-protein folding |
| [rules/proteinmpnn.md](rules/proteinmpnn.md) | ProteinMPNN | Fixed-backbone sequence design |
| [rules/ligandmpnn.md](rules/ligandmpnn.md) | LigandMPNN | Ligand-aware sequence design |
| [rules/thermompnn.md](rules/thermompnn.md) | ThermoMPNN | Stability (ΔΔG) prediction |
| [rules/geodock.md](rules/geodock.md) | GeoDock | Protein-protein docking |
| [rules/pinal.md](rules/pinal.md) | Pinal | De novo design from text |
| [rules/boltzgen.md](rules/boltzgen.md) | BoltzGen | End-to-end binder design |
Tool Categories Summary
| Category | Count | Examples |
|---|---|---|
| Protein structure | 23 | fetchpdbmetadata, getalphafoldprediction |
| Literature | 14 | searchpubmed, arxivsearch, biorxivsearchkeywords |
| Genomics | 27 | lookupgene, veppredict, gwassearchassociationsbytrait |
| Sequence similarity | 3 | submitblast, checkblaststatus, getblast_results |
| Cheminformatics | 20+ | calculatemolecularproperties, chemblsimilaritysearch |
| Molecular biology | 15 | designprimers, restrictiondigest, assemble_gibson |
| Plasmid | 2 | parseplasmidfile, edit_plasmid |
| Structure prediction | 15+ | submitboltzprediction, submitproteinmpnnprediction |
| Pathway analysis | 26 | analyzegenelist, getstringnetwork, goenrichment, convertgene_ids |
| Clinical data | 22 | searchclinicaltrials, 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/validateto 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