Identify garden & forest herbs from photos, extract their medicinal properties, and query clinical evidence — all running locally on your machine. No data leaves your device.
Three AI models chained together: photo identification, medical entity extraction, and evidence-based verification.
Six specialised models, each excelling at one task. All run locally on CPU — no GPU required.
janjibDEV/vit-plantnet300k
Identifies ~14,000 plant species from photos. Trained on PlantNet300K dataset with Vision Transformer architecture.
blaze999/Medical-NER
DeBERTa-v3 fine-tuned on PubMed for 41 medical entity types: medications, diseases, dosages, procedures, anatomy.
OpenMed/OpenMed-NER-ChemicalDetect-ModernMed-149M
ModernBERT for chemical entity recognition. Identifies compounds, active ingredients, and botanical chemicals.
microsoft/BioGPT-Large-PubMedQA
Microsoft’s generative biomedical LM. 78% accuracy on PubMedQA. Answers yes/no/maybe on clinical evidence questions.
d4data/biomedical-ner-all
DistilBERT trained on Maccrobat corpus. 107 biomedical entity types. Best for clinical text with pharmaceutical focus.
scripts/check_resources.py
The load-bearing rule. Every download and every model load passes through this gate. Returns green / yellow / red.
Garden and forest herbs in the knowledge base, with traditional uses and active compounds.
BPH/prostate support, allergies, arthritis, anaemia
Sleep aid, digestive upset, anxiety, skin inflammation
Liver support, diuretic, digestive bitter, blood sugar regulation
Cold and flu, immune support, sinus congestion
Insomnia, anxiety, muscle relaxation
Mild-moderate depression, nerve pain, wound healing
Wound healing, fever, digestive aid, menstrual cramps
Wound poultice, insect bites, cough, urinary tract
Heart health, blood pressure, anxiety, digestion
BPH/prostate health, urinary flow, hormonal balance
Two ways to use the pipeline: ask Claude naturally, or run the scripts directly.
Just ask naturally. The huggingface-expert skill triggers automatically:
# Identify a herb from a photo
"What plant is in this photo and what are its medicinal uses?"
# Look up a specific herb
"What are the medicinal properties of stinging nettle for prostate health?"
# Search for a model
"Find me a model that can classify medicinal plants"
# Run NER on clinical text
"Extract entities from: Patient taking saw palmetto 320mg daily"
The herb_pipeline.py script chains all three models:
PY=~/.claude/skills/huggingface-expert/.venv/bin/python3
# List all herbs in knowledge base
$PY scripts/herb_pipeline.py --list
# Look up a herb
$PY scripts/herb_pipeline.py --plant "chamomile"
# Look up a herb for a specific condition
$PY scripts/herb_pipeline.py \
--plant "stinging nettle" \
--condition "prostate enlargement"
# Identify from a photo + get remedies
$PY scripts/herb_pipeline.py \
--image ~/photos/garden_herb.jpg
# JSON output for scripting
$PY scripts/herb_pipeline.py \
--plant "elderberry" \
--condition "cold and flu" --json
The core skill scripts for the full HuggingFace pipeline:
PY=~/.claude/skills/huggingface-expert/.venv/bin/python3
# 1. Search HuggingFace Hub
$PY scripts/search.py \
--task token-classification \
--query "biomedical NER" --limit 5 --json
# 2. Inspect a model
$PY scripts/inspect.py \
--model blaze999/Medical-NER --json
# 3. Safety gate (MANDATORY)
$PY scripts/check_resources.py \
--model blaze999/Medical-NER --json
# 4. Download
$PY scripts/download.py \
--model blaze999/Medical-NER --json
# 5. Run inference
$PY scripts/run.py \
--model blaze999/Medical-NER \
--input "Patient taking green tea extract" --json
One-time setup. The skill bootstraps its own Python environment:
# Clone or extract the skill
cd ~/.claude/skills/huggingface-expert
# Bootstrap the venv (CPU-only PyTorch)
bash install.sh
# Smoke test (downloads a small model)
bash examples/medical_ner_demo.sh
# Check what's cached locally
ls ~/.cache/huggingface/hub/models--*
Every download and every model load is gated by check_resources.py.
This is the load-bearing rule of the skill. It compares projected RAM/VRAM/disk
usage against free resources and returns green,
yellow, or red.
On red, the pipeline refuses to proceed. Never bypass without explicit user authorization.