DrugClaw is an AI Research Assistant for Accelerated Drug Discovery, implemented as a Rust multi-channel agent runtime. One agent core serves chat channels, the local Web UI, hooks, scheduled tasks, and domain skills without splitting the product into separate bots.
- DrugClaw is a multi-channel AI runtime focused on drug-discovery research workflows.
- It combines tool use, memory, skills, scheduler, hooks, and Web UI in one agent core.
- You can run it locally with
drugclaw setup,drugclaw doctor, anddrugclaw start. - Treat docking/QSAR/ADMET outputs as prioritization signals, not experimental proof.
- What DrugClaw Is
- Current Scope
- Capability Boundary
- Prerequisites
- Demo Examples
- Install
- Quick Start
- Minimal Config
- Core Concepts
- Web UI And Hooks
- Science Skills
- Configuration Model
- CLI
- Shell Scripts
- Development
- Architecture
- Documentation Map
This project is built on top of microclaw.
DrugClaw combines drug-discovery research workflows with a general-purpose agent runtime:
- a channel-agnostic agent loop with tool use and session resume
- a provider-agnostic LLM layer with Anthropic and OpenAI-compatible backends
- persistent SQLite storage for chats, memory, auth, and observability
- a local Web UI and HTTP hook surface for operations and automation
- a skills system for reproducible workflows, including bioinformatics, chemistry, and docking
Current channel adapters include:
- Telegram
- Discord
- Slack
- Feishu / Lark
- Matrix
- WhatsApp Cloud API
- IRC
- iMessage
- Nostr
- Signal
- DingTalk
- Web
DrugClaw is already useful as:
- a tool-using chat agent for code and file operations
- a multi-chat automation runtime with hooks and scheduled tasks
- a memory-backed assistant with file memory plus structured SQLite memory
- a local operator console through the Web UI
- a research assistant for literature review, public database triage, molecular property analysis, DrugBank retrieval, QSAR, and docking workflows
The runtime is generic enough to automate other workflows, but the product direction is explicitly drug-discovery research acceleration.
DrugClaw is strong at:
- literature and public-database lookup
- structured note-taking over biological and chemical artifacts
- reproducible scripting for bioinformatics and computational chemistry
- heuristic prioritization through docking, ADMET triage, QSAR, and structure-aware scoring
- moving from chat intent to saved artifacts, reports, and follow-up analyses
DrugClaw is not:
- a wet-lab automation system
- a substitute for medicinal chemistry or structural biology judgment
- a clinically validated ADMET or affinity oracle
- a regulatory, diagnostic, or treatment decision system
- proof that a compound works in vitro, in vivo, or in humans
When DrugClaw reports docking scores, QSAR predictions, ADMET heuristics, or affinity estimates, those outputs should be treated as prioritization signals only.
- macOS or Linux
- Docker Desktop
- Anthropic API key
Below are live demonstrations of DrugClaw handling real tasks via Telegram.
Show Demo Examples
- Protein Structure Rendering
Fetch a PDB structure, render it in rainbow coloring with PyMOL, and send the image.
- PubMed Literature Search
Search PubMed for recent high-impact papers and provide structured summaries.
- Hydrogen Bond Analysis
Visualize hydrogen bonds between a ligand and protein in PDB 3BIK.
- Target Intelligence Dossier
Build a concise target dossier by combining UniProt, OpenTargets, Reactome, STRING, ClinVar, and known-drug evidence into one brief.
- Compound Database Triage
Query PubChem, ChEMBL, and BindingDB for a compound or target, normalize the returned activity records, and send back a ranked summary table.
- Docking Workflow Summary
Generate the search box, run docking, and return the top poses with a compact report.
curl -fsSL https://drugclaw.com/install.sh | bashWhen Docker is installed and the daemon is reachable, the installer also tries
to build the default science sandbox image drugclaw-drug-sandbox:latest.
iwr https://drugclaw.com/install.ps1 -UseBasicParsing | iexgit clone https://github.com/DrugClaw/DrugClaw.git
cd drugclaw
cargo build
npm --prefix web install
npm --prefix web run build./uninstall.shcp drugclaw.config.example.yaml drugclaw.config.yamldrugclaw setup
drugclaw doctorIf the default sandbox image is already present locally, drugclaw setup
defaults the bash sandbox to enabled.
drugclaw startBy default the UI listens on http://127.0.0.1:10961.
A smallest practical config is usually Web-first, then add channels as needed.
llm_provider: "anthropic"
api_key: "replace-me"
model: ""
data_dir: "./drugclaw.data"
working_dir: "./tmp"
working_dir_isolation: "chat"
channels:
web:
enabled: true
telegram:
enabled: false
web_host: "127.0.0.1"
web_port: 10961Recommended next steps:
- enable one chat channel under
channels: - set
soul_pathor addSOUL.md - enable sandboxing for code execution when you need stronger isolation
- use
drugclaw web password-generatefor Web operator access
The runtime does one thing consistently across channels:
- load chat state and memory
- build the system prompt plus skills catalog
- call the selected model with tool schemas
- execute tools when requested
- persist the updated session and artifacts
The shared loop lives in src/agent_engine.rs. Channels are ingress and egress adapters, not separate agent implementations.
DrugClaw has two memory layers:
- file memory:
AGENTS.mdplus chat-scoped files underruntime/groups/ - structured memory: SQLite-backed facts, confidence, supersession, and observability
This lets the runtime keep durable context without forcing every instruction into a single prompt.
Show Skills Overview
Bundled skills currently include:
bio-toolsbio-db-toolsbayesian-optimization-toolsomics-toolsgrn-toolstarget-intelligence-toolsvariant-analysis-toolspharma-db-toolschem-toolspharma-ml-toolsliterature-review-toolsmedical-data-toolsclinical-research-toolsmedical-qms-toolsstat-modeling-toolssurvival-analysis-toolsscientific-visualization-toolsscientific-workflow-toolsdocking-tools- document, spreadsheet, PDF, GitHub, weather, and macOS utility skills
Bundled domain skills now cover:
- sequence analysis and general bioinformatics workflows
- public biology database lookup across UniProt, PDB, AlphaFold, ClinVar, dbSNP, gnomAD, Ensembl, GEO, InterPro, KEGG, OpenTargets, Reactome, and STRING
- AnnData, single-cell, BAM or CRAM, and mzML dataset triage
- Arboreto-based gene regulatory network inference with GRNBoost2 or GENIE3
- local VCF, SNV, indel, and SV summarization plus target-intelligence dossiers
- public drug-discovery database lookup across PubChem, ChEMBL, BindingDB, openFDA, ClinicalTrials.gov, and OpenAlex
- datamol, molfeat, PyTDC, and medchem-backed pharma ML preparation
- DeepChem, RDKit, PySCF, assay normalization, QSAR, virtual screening, and DrugBank lookup
- hypothesis tests, statsmodels regression, Kaplan-Meier, Cox modeling, and reusable scientific figures
- citation cleanup, evidence matrices, hypothesis framing, and reproducibility checklists
- Bayesian optimization for bounded experiment suggestion and parameter tuning
- DICOM metadata inspection, biosignal analysis, and cohort-table profiling for medical research datasets
- clinical-research design, reporting-guideline selection, and study-planning support
- Vina-based docking plus downstream chemistry post-processing
See docs/operations/science-runtime.md for runtime requirements.
Hooks let you gate or modify LLM and tool traffic at runtime.
Supported events:
BeforeLLMCallBeforeToolCallAfterToolCall
Supported outcomes:
allowblockmodify
See docs/hooks/HOOK.md.
ClawHub is the registry layer for discovering and installing skills.
Use:
drugclaw skill search <query>
drugclaw skill install <slug>
drugclaw skill listReference: docs/clawhub/overview.md
The local Web surface is not an afterthought. It exposes:
- session and history browsing across channels
- auth and API key management
- metrics and memory observability
- config self-check and runtime operations
- HTTP hook endpoints for automation ingress
Important endpoints:
POST /hooks/agentPOST /api/hooks/agentPOST /hooks/wakePOST /api/hooks/wake
Reference: docs/operations/http-hook-trigger.md
DrugClaw now ships a non-trivial scientific workflow layer.
Show Science Skills Details
Use for:
- FASTA / FASTQ / BAM / BED workflows
- BLAST, alignment, QC, plotting, structure rendering
- literature search and general bioinformatics scripting
Use for API-backed lookup of:
- UniProt
- RCSB PDB
- AlphaFold DB
- ClinVar
- dbSNP
- gnomAD
- Ensembl
- GEO
- InterPro
- KEGG
- OpenTargets
- Reactome
- STRING
Bundled template:
skills/science/bio-db-tools/templates/bio_db_lookup.py
Use for:
h5adand AnnData triage before Scanpy or scvi workflows- BAM or CRAM region inspection with pysam
- mzML experiment inventory before pyOpenMS workflows
Bundled templates:
skills/science/omics-tools/templates/single_cell_profile.pyskills/science/omics-tools/templates/pysam_region_profile.pyskills/science/omics-tools/templates/mzml_summary.py
Use for:
- GRNBoost2 or GENIE3 regulatory-edge inference
- transcription factor to target ranking from bulk or single-cell expression matrices
- TF-whitelist constrained GRN runs with Arboreto
Bundled template:
skills/genomics/grn-tools/templates/arboreto_grn.py
Use for:
- local VCF or BCF summarization
- VAF, depth, PASS, and consequence filtering
- SNV, indel, and SV mutation-class counts before downstream annotation
Bundled template:
skills/genomics/variant-analysis-tools/templates/variant_report.py
Use for:
- one-file target briefs spanning identifiers, disease evidence, known drugs, pathways, and interaction partners
- compact target-validation snapshots before screening or docking
- integrating UniProt, OpenTargets, STRING, Reactome, ClinVar, and gnomAD signals into one dossier
Bundled template:
skills/research/target-intelligence-tools/templates/target_dossier.py
Use for API-backed lookup of:
- PubChem
- ChEMBL
- BindingDB measured affinities
- openFDA drug labels, events, NDC, recalls, approvals, and shortages
- ClinicalTrials.gov
- OpenAlex
Bundled template:
skills/pharma/pharma-db-tools/templates/pharma_db_lookup.py
Use for:
- DeepChem featurization
- RDKit descriptors
- heuristic ADMET screening
- DrugBank local or online lookup
- assay-table normalization
- QSAR and bioactivity prediction
- ligand-only and structure-aware affinity prediction
- virtual screening reranking
Use for:
- datamol-backed library profiling and scaffold summaries
- molfeat feature generation for QSAR or ranking workflows
- PyTDC benchmark dataset fetch and split export
- medchem rule and alert screening before prioritization
Bundled templates:
skills/pharma/pharma-ml-tools/templates/datamol_library_profile.pyskills/pharma/pharma-ml-tools/templates/molfeat_featurize.pyskills/pharma/pharma-ml-tools/templates/pytdc_dataset_fetch.pyskills/pharma/pharma-ml-tools/templates/medchem_screen.py
Use for:
- citation-table normalization and deduplication
- lightweight BibTeX export from local metadata tables
- evidence-matrix assembly for review writing or gap mapping
Bundled templates:
skills/science/literature-review-tools/templates/citation_table_normalize.pyskills/science/literature-review-tools/templates/evidence_matrix.py
Use for:
- DICOM metadata inspection and basic de-identification
- ECG, PPG, EDA, RSP, or EMG analysis with NeuroKit2
- cohort-table profiling for clinical research datasets
Bundled templates:
skills/medical/medical-data-tools/templates/dicom_inspect.pyskills/medical/medical-data-tools/templates/neuro_signal_analyze.pyskills/medical/medical-data-tools/templates/clinical_cohort_profile.py
Use for:
- study design and endpoint planning
- reporting-guideline routing such as CONSORT, STROBE, PRISMA, STARD, TRIPOD, SPIRIT, and ICH E3
- protocol, SAP, and evidence-synthesis support
- bias, confounding, and sample-size review
Use for:
- ISO 13485 or FDA QMSR documentation planning
- gap assessment for QMS procedures and records
- CAPA, complaint, audit, supplier, and design-control documentation review
Use for:
- statistical hypothesis tests with explicit result export
- OLS, logistic, and Poisson regression with statsmodels
- coefficient tables, confidence intervals, and model-fit summaries
Bundled templates:
skills/science/stat-modeling-tools/templates/stat_test_report.pyskills/science/stat-modeling-tools/templates/statsmodels_regression.py
Use for:
- Kaplan-Meier summaries and plots
- log-rank comparisons between groups
- Cox proportional hazards baselines with hazard-ratio export
Bundled template:
skills/science/survival-analysis-tools/templates/survival_analysis.py
Use for:
- static publication-style figures with seaborn or matplotlib
- interactive Plotly HTML charts for exploratory research review
- reusable plotting scripts parameterized by column names
Bundled templates:
skills/science/scientific-visualization-tools/templates/publication_plot.pyskills/science/scientific-visualization-tools/templates/interactive_plot.py
Use for:
- hypothesis framing from observations
- peer-review style critique for rigor and claim scope
- reproducibility checklist generation
- research-method planning and scientific-writing structure
Bundled template:
skills/science/scientific-workflow-tools/templates/reproducibility_checklist.py
Use for:
- proposing the next experiment from bounded numeric parameters
- balancing exploration and exploitation over expensive assay or reaction runs
- tuning conditions or hyperparameters with Gaussian-process surrogates
Bundled template:
skills/research/bayesian-optimization-tools/templates/bayesian_optimize.py
Use for:
- receptor / ligand preparation
- AutoDock Vina workflows
- box generation
- PyMOL rendering
- docking reports and chemistry post-processing
Bundled templates:
skills/pharma/docking-tools/templates/docking_workflow.pyskills/pharma/docking-tools/templates/docking_manifest.example.json
Build the bundled runtime image when you need the full scientific and docking toolchain:
docker build -f docker/drug-sandbox.Dockerfile -t drugclaw-drug-sandbox:latest .Those Dockerfiles read version-constrained requirements from docker/requirements-*.txt so the science stack does not drift on every rebuild.
Design choice:
drug-sandboxis the canonical shared runtime for bio, omics, chemistry, literature, medical-research, and docking skills- the legacy
drug-sandbox-dockingtag is retained only as a compatibility alias for older configs and scripts - dedicated
med-sandboxorchem-sandboximages are not provided because the current dependency overlap is high and the operator complexity is not worth it
Reference: docs/operations/science-runtime.md
The main config file is drugclaw.config.yaml.
Important fields:
llm_provider,api_key,modeldata_dir,working_dir,working_dir_isolationchannels.*sandbox.*soul_path,souls_dirplugins.*clawhub_*voice_provider,voice_transcription_commandweb_host,web_port
Useful facts:
channels:is the preferred configuration surface for modern channel setup.SOUL.mdcan be global, channel-level, or account-level.- built-in skills are installed under
<data_dir>/skillsunlessskills_diroverrides that path. - runtime env overrides still use
MICROCLAW_*prefixes for compatibility, includingMICROCLAW_CONFIGandMICROCLAW_SKILLS_DIR.
Start from drugclaw.config.example.yaml.
Main commands:
drugclaw start
drugclaw acp
drugclaw setup
drugclaw doctor
drugclaw gateway
drugclaw skill
drugclaw hooks
drugclaw web
drugclaw reembed
drugclaw upgrade
drugclaw version
Examples:
drugclaw web password-generate
drugclaw hooks list
drugclaw gateway status
drugclaw skill search dockingDrugClaw can run as an Agent Client Protocol (ACP) server over stdio:
drugclaw acpUse this mode when another local tool needs a sessioned DrugClaw runtime over stdio instead of Telegram/Discord/Web ingress.
The repository keeps operator scripts aligned with the runtime:
install.sh: install the latest release binary on macOS or Linuxuninstall.sh: remove the installed binarystart.sh: build the Web UI and run the local runtime from sourcecheck.sh: run the standard local validation setdeploy.sh: run release automation and optional nixpkgs follow-upscripts/test_http_hooks.sh: smoke-test Web hook endpointsscripts/matrix-smoke-test.sh: end-to-end Matrix ingestion smoke testscripts/update-nixpkgs.sh: update thedrugclawpackage innixpkgs
These scripts are repository workflow glue, not a second control plane.
cargo build
npm --prefix web run build
npm --prefix website run buildcargo test
./check.shnode scripts/generate_docs_artifacts.mjs --checkKey files:
- src/main.rs: CLI entrypoint
- src/runtime.rs: application wiring
- src/agent_engine.rs: shared agent loop
- src/llm.rs: provider abstraction
- src/web.rs: Web router and APIs
- src/scheduler.rs: scheduled tasks and reflector loop
- src/skills.rs: skill discovery and activation
- src/mcp.rs: MCP integration
- src/hooks.rs: runtime hook system
Supporting crates:
drugclaw-coredrugclaw-storagedrugclaw-toolsdrugclaw-channelsdrugclaw-app
Start here for deeper docs:
- docs/generated/tools.md
- docs/generated/config-defaults.md
- docs/generated/provider-matrix.md
- docs/a2a.md
- docs/operations/acp-stdio.md
- docs/operations/runbook.md
- docs/operations/science-runtime.md
- docs/releases/pr-release-checklist.md
- docs/security/execution-model.md
Apache License 2.0. See LICENSE.