Chemistry agent skill for PubChem API queries (compound info/properties, structures/SMILES/images, synthesis routes/references) + RDKit cheminformatics (SMIL...
Security Analysis
high confidenceThe skill's code, instructions, and requested resources are coherent with a PubChem + RDKit chemistry toolkit; nothing indicates intentional misdirection or hidden exfiltration, though there are a few minor engineering issues to review before use.
The name/description match the included scripts: PubChem/ChEMBL/PubMed access, RDKit processing, visualization, retrosynthesis, and reaction templates. Minor mismatch: SKILL.md lists required python packages but omits the commonly used 'requests' package which several scripts (query_pubchem.py, chembl_query.py, pubmed_search.py) import — the environment will need requests installed. Otherwise declared dependencies (rdkit, gradio, pandas, Pillow, optional Java) align with the code.
Runtime instructions call the bundled Python scripts and public chemistry APIs only. Input sanitization is present in many places (SMILES length/null-byte checks, path sanitization, shell-metacharacter filtering). The opsin helper auto-downloads a JAR and runs it when IUPAC→SMILES is requested — that download is explicitly handled and checksum-verified in code. Scripts write outputs to local subdirectories (viz/, scripts/opsin.jar). No instructions read unrelated system files or attempt to access secrets.
The skill has no install spec (instruction-only for the platform) so nothing is automatically installed by the registry. The only non-code download behavior is the OPSIN JAR fetched from a GitHub release by scripts/opsin_name_to_smiles.py; the code performs a SHA-256 verification. This is a reasonable pattern, but it does write a ~13MB JAR into the skill's scripts directory on first use.
The skill requires no environment variables or credentials and only uses public APIs (PubChem, ChEMBL, NCBI). That is proportionate to the stated functionality. No hidden credential access or unrelated config paths are requested.
The skill is not forced-always and does not request elevated system presence. It will create local files (viz images, the OPSIN JAR) within the skill tree when used, which is normal for this functionality. It does not modify other skills or global agent configurations.
Guidance
This skill appears to do what it claims, but review these points before installing: - Dependency gap: The code imports 'requests' but SKILL.md's dependency list does not include it — ensure your environment has requests installed along with RDKit (RDKit is non-trivial to install). Also confirm Python >=3.10. - OPSIN JAR: On first IUPAC→SMILES use the skill will download an opsin JAR from GitHub and save it under the skill's scripts/ directory; the script performs SHA-256 verification. If you disallow outbound network or automatic downloads in your environment, be aware this will fail or will create a local file. - Local writes: The skill writes visualization files under viz/ and may save the opsin.jar in scripts/. If you run it in a shared or locked environment, review file locations and permissions. - Network usage: The skill makes outbound requests to public APIs (PubChem, ChEMBL, NCBI PubMed). If you must control network access, restrict accordingly. - Dual-use content: The templates.json and reaction code include named reactions, reagents, and conditions — that is expected for synthesis planning but is dual-use. If operating in a policy-constrained or regulated environment, review and possibly redact hazardous reaction conditions or templates before deployment. - Running the UI: chem_ui.py launches a Gradio UI (local web server) if executed; ensure you understand exposure (it runs with share=False by default, but local access is possible). Recommendation: If you want to proceed, install the missing Python packages (including requests), test in a sandboxed environment, and review templates.json and opsin download behavior to match your security policy.
Latest Release
v2.0.0
Full release: PubChem + RDKit + retrosynthesis + multi-step synth planning
More by @Cheminem
Published by @Cheminem on ClawHub