Generated banner for Boltz Small Molecule Adme
Generated logo for Boltz Small Molecule Adme

Boltz Small Molecule Adme

OpenAIOfficialCreated by BoltzDistributed by OpenAI

  • Skill
  • Tool integration
  • Science and research
  • MIT
  • No issues found

From the author

Predict Tier-1 ADME/ADMET for small molecules with Boltz from bare SMILES — no target, no docking. Use when the user wants solubility, permeability, or lipophilicity/logD for a molecule or list of molecules. Not for ranking molecules against a protein target (use boltz-small-molecule-screen, which already returns ADME free).
— the description by Boltz

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The boltz-small-molecule-adme skill provides a streamlined interface for predicting essential ADME (Absorption, Distribution, Metabolism, and Excretion) properties for small molecules. By accepting raw SMILES strings, it generates estimates for solubility, permeability, and lipophilicity (LogD). This tool is designed for standalone triage and ranking of chemical libraries without the need for protein targets or docking simulations. It operates synchronously, handles batch processing up to 128 molecules per request, and provides clear status reporting for each molecule, including error handling for invalid inputs.

What it does

  • Predicts solubility, permeability, and lipophilicity for small molecules.
  • Processes input from raw SMILES, CSV, .smi, or .txt files.
  • Supports batch processing with a hard limit of 128 molecules per request.
  • Provides cost estimation before execution.
  • Returns structured results including external IDs for easy mapping.
  • Handles per-molecule failure reporting without invalidating the entire batch.

When to use it

  • When you need to perform rapid ADME triage on a set of small molecules.
  • When you have a list of SMILES strings and require property estimates.
  • When you need to filter or rank molecules based on their physical properties.
  • When you are not performing protein-target docking (use boltz-small-molecule-screen instead).

Advantages

  • Fast, synchronous execution for immediate results.
  • Structure-free analysis requiring no target or docking.
  • Simple, predictable pricing model at $0.01 per molecule.
  • Clear, per-molecule status and error reporting.

Usage examples

“Estimate the ADME properties for the following SMILES: CC(=O)Oc1ccccc1C(=O)O.”
The agent will prepare a payload, run the cost estimation, and upon confirmation, execute the prediction to return the solubility, permeability, and lipophilicity scores.
“Run an ADME analysis on my library of 200 molecules in molecules.csv.”
The agent will split the library into two batches of 100, run each through the API, and merge the results into a single report.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/openai/boltz-small-molecule-adme/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip boltz-small-molecule-adme.zip -d .agents/skills

Documentation by Boltz

Workflow

If boltz-api is missing from PATH, use boltz-cli-setup for install/update guidance before retrying. If a command reports missing or expired authentication, use boltz-cli-setup to start boltz-api auth login --device-code before retrying; do not ask permission first. If the agent host sandbox blocks boltz-api install/auth/API calls, use boltz-cli-setup to request the host sandbox bypass/escalation needed for user-wide CLI install, browser login, credential storage, temp files, or API access before retrying.

Use this skill for standalone ADME triage on SMILES the user already has. No protein target is involved. If the user is also screening or docking those molecules against a target, prefer boltz-small-molecule-screen — it returns the same ADME block free as part of the screen.

  1. Normalize the molecules from raw SMILES, a CSV (auto-detect the SMILES column), .smi, or .txt into the molecules list. Each entry is {smiles, id?}; the optional id is echoed back as external_id on each result so you can map results to inputs.

  2. Hard cap: 128 molecules per request. If the list exceeds 128, split into batches of ≤128 and submit one request per batch (suffix the run name, for example -b1, -b2), then merge results. Never send more than 128 in one call — the API rejects it with VALIDATION_ERROR: input.molecules must contain at most 128 items.

  3. Author the payload YAML or JSON, run estimate-cost, show the USD cost, wait for explicit confirmation. ADME is priced at $0.01 per molecule (size-independent); estimate-cost returns the authoritative total — always quote it.

  4. run to submit and wait — ADME finishes in seconds, so it is synchronous and needs no background polling. run persists results locally under --root-dir/<run-name>/.

  5. Report from <output-root>/<run-name>/run.json → output.molecules[]. For each molecule show external_id (or smiles), solubility, permeability, and lipophilicity. The three values live under each molecule's adme object. Call out any molecule with status: failed and its error (an object {code, message}, e.g. code adme_enumeration_failed, message Invalid SMILES) — adme is null there; one bad SMILES fails only that molecule, not the batch. Read references/results.md for the output layout and references/api.md for the payload and batching details.

ADME values are approximate estimates for triage and ranking, not absolute measurements.

Command Pattern

# Replace placeholders with concrete absolute paths before running.
# Use a short descriptive run name, for example: adme-<library>-v1

boltz-api predictions:adme estimate-cost \
  --model adme-v1 --input @yaml:///absolute/path/payload.yaml

# `run` is synchronous (submit + wait + persist) and finishes in seconds — no background mode needed.
# Claude Code: run as a normal Bash command. Codex: run as a foreground shell command; if Codex
# returns a session_id because it is still running, poll it. Do not append "&" or use nohup in Codex.
boltz-api predictions:adme run \
  --model adme-v1 \
  --idempotency-key "<run-name>" \
  --input @yaml:///absolute/path/payload.yaml \
  --name "<run-name>" \
  --root-dir "/absolute/path/boltz-experiments" \
  --poll-interval-seconds 5
# -> /absolute/path/boltz-experiments/<run-name>/run.json  (output.molecules[].adme)

Payload is just a molecules list — the API body field name, not the direct CLI flag. --model adme-v1 is required.

Always Do This

  • Keep payload field names exactly as the API body names shown in references/api.md (molecules, each {smiles, id?}).

  • Pass --model adme-v1 on every estimate-cost, run, and start.

  • Enforce the 128-molecule-per-request cap. Chunk larger libraries into ≤128 batches and submit each as its own run; merge the per-batch run.json outputs when reporting.

  • Use absolute paths for the output root and payload files. Do not cd into the run directory; pass the same --root-dir and use absolute paths so later relative paths do not drift.

  • Prefer one merged top-level payload via --input @yaml:///absolute/path/payload.yaml or @json:///absolute/path/payload.json. Keep --model, --idempotency-key, and --workspace-id top-level. Never use @file:// or @./.

  • Run estimate-cost and show the USD total before submitting. ADME is $0.01/molecule (size-independent); estimate-cost returns the authoritative total — always use it.

  • Use the same slug as both --idempotency-key and --name so re-runs resume via .boltz-run.json.

  • In permission-gated agents such as Claude Code, keep each Boltz call as a top-level command that starts with boltz-api. Prefer concrete arguments over sh -c, inline environment assignments, aliases, wrapper scripts, loops, or pipelines unless the user already allowed that exact command form.

  • ADME run is synchronous and finishes in seconds, so unlike the screen/design endpoints it needs no background/non-blocking mode. In Claude Code, run it as a normal Bash call. In Codex, run it as a foreground shell command; if Codex returns a session_id because the command is still running, poll it. Do not append & or use nohup in Codex.

  • Do not require or accept a protein target — ADME is structure-free. If the user wants ADME and binding against a target, redirect to boltz-small-molecule-screen.

Escape Hatch

Read references/api.md for the molecules payload shape, the per-molecule output fields, the 128-molecule cap, and error handling.

Outputs

Read <output-root>/<run-name>/run.json and report output.molecules[]. There are no structure files — ADME returns scalar/categorical values only. Read references/results.md for the local layout and per-molecule output fields; references/api.md has the full request/response schema.

Files

Requirements and compatibility

Written for: OpenAI Codex

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Boltz
Publisher
OpenAI (Official)
Distributed by
OpenAI
Source
openai/plugins · plugins/boltz-api-cli/skills/boltz-small-molecule-adme · commit d420d13
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from plugins/boltz-api-cli/LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Boltz or OpenAI.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download boltz-small-molecule-adme.zip