Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add aristoteleo/PantheonOS --skill virtualembryogit clone --depth 1 https://github.com/aristoteleo/PantheonOSWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/aristoteleo/pantheonos/virtualembryo)<a href="https://agentmods.dev/skills/aristoteleo/pantheonos/virtualembryo"><img src="https://agentmods.dev/badge/skills/aristoteleo/pantheonos/virtualembryo/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/aristoteleo/pantheonos/virtualembryo"><img src="https://agentmods.dev/badge/skills/aristoteleo/pantheonos/virtualembryo.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Data Exfiltration · line 74 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00170 | $0.03803 |
| Opus 5.5 | $0.00068 | $0.01521 |
| Sonnet 5.5 | $0.00034 | $0.00761 |
| Haiku 4.5 | $0.00017 | $0.00380 |
Grade A, and why
Virtual Embryo — atlas data + knowledge graph scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
Quick health check: `curl https://kg.virtualembryo.ai/healthz` → `{"ok":true}`. How it starts
The opening of the file, as written. The whole thing — 256 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Virtual Embryo — atlas data + knowledge graph
Virtual Embryo is an AI-augmented, multi-modal atlas of mouse (and human) embryonic development built in the Xiaojie Qiu lab. It unifies, under one anatomical reference frame: a knowledge graph (genes · anatomy · developmental stages · expression · disease · drugs · papers, ~1.8M facts in Neo4j) and a 3D data atlas (eMouseAtlas OPT/histology reference volumes + anatomy meshes, and 3D spatial-transcriptomics reconstructions).
This skill lets you answer developmental-biology questions from the KG and
pull atlas datasets and render them in 3D with the volume3d / spatial3d
desktop viewer apps.
The public interfaces (read-only, no key)
| What | URL | Use |
|---|---|---|
| KG API | https://kg.virtualembryo.ai/kg/* |
query genes / anatomy / expression / papers (server-side HTTP) |
| Catalog | https://kg.virtualembryo.ai/index.json |
list samples (volumes) + spatial datasets |
| Data | https://tiles.virtualembryo.org/<path> |
the actual zarr / OME-NGFF stores (read server-side; see "Visualise") |
All reads are open (no auth). The four write endpoints (/kg/cypher_write,
/kg/submit_extraction, …) need an admin key and are not for general use.
Quick health check: curl https://kg.virtualembryo.ai/healthz → {"ok":true}.
1. Knowledge graph — query the developmental KG
Hit the endpoints with plain HTTP (requests). All return JSON.
import requests
KG = "https://kg.virtualembryo.ai/kg"
# Resolve a name → canonical entity (gene / anatomy / stage / disease …)
hits = requests.get(f"{KG}/search", params={"q": "Sox2", "limit": 5}).json()
# → {"results":[{"iri":"http://identifiers.org/mgi/MGI:98364","label":"Sox2",
# "type":".../Gene","match_kind":"exact"}]}
iri = hits["results"][0]["iri"]
# One-hop details (type, synonyms, direct relations)
requests.get(f"{KG}/entity", params={"iri": iri}).json()
# Where is a gene expressed? (curated anatomy × stage, from paper extractions)
requests.get(f"{KG}/expression", params={"gene": "Sox2", "stage": "TS17"}).json()
# → {"expressions":[{"anatomy_label":"neural tube","stage":"TS17",
# "intensity":...,"paper_doi":...,"confidence":...}], ...}
# Neighbours of an entity, optionally one relation type
requests.get(f"{KG}/expand", params={"iri": iri, "rel": "EXPRESSED_IN"}).json()
# A subgraph for reasoning / a graph view (anchor on a stage or seed entity)
requests.get(f"{KG}/subgraph", params={"stage": "TS17", "limit": 200}).json()
requests.get(f"{KG}/subgraph", params={"seed": iri, "limit": 100}).json()
# Read-only Cypher escape hatch (write keywords are blocked server-side)
requests.post(f"{KG}/cypher", json={
"cypher": "MATCH (g:Gene)-[:EXPRESSED_IN]->(a:Anatomy {name:'neural tube'}) "
"RETURN DISTINCT g.name LIMIT 50"}).json()
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 256 lines · 170 tokens per session scan A c3df95c58226
Virtual Embryo — atlas data + knowledge graph is a skill published in the GitHub repository aristoteleo/PantheonOS (490 stars, last pushed 4d ago), licensed BSD-2-Clause. It adds 170 tokens to every session and 3,803 once invoked, about $0.0007 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
sc-cell-annotation
Load when assigning cell-type labels to a clustered scRNA AnnData via marker dictionaries, CellTypist, PopV, KNNPredict, SingleR, scmap, SCSA, or a manual cluster-to-label map. Skip when ranking marker genes per cluster (use sc-markers); condition-vs-control DE (use sc-de).
sc-cell-communication
Load when computing cell-cell ligand-receptor communication on an annotated scRNA AnnData via builtin scorer, LIANA, CellPhoneDB, CellChat (R), or NicheNet (R). Skip when assigning cell-type labels (use sc-cell-annotation); transcription factor → target regulatory networks (use sc-grn).
sc-preprocessing
Load when normalising QC'd scRNA into a PCA-ready AnnData via scanpy / Seurat / SCTransform / Pearson residuals. Skip when QC thresholds are still undecided (use sc-qc); batch correction across samples (use sc-batch-integration).
scatac-preprocessing
Load when preprocessing a single-cell ATAC peak × cell AnnData via Signac-style TF-IDF + LSI + Leiden, producing a clustered UMAP-ready object. Skip when input is fragments; BAM (peak calling not implemented here); scRNA preprocessing (use sc-preprocessing).
sc-ambient-removal
Load when removing ambient RNA contamination from droplet-based scRNA-seq using a simple subtraction path, CellBender, or SoupX. Skip when the contamination is multiplet barcodes (use sc-doublet-detection); before counts exist (use sc-count).
sc-batch-integration
Load when integrating multi-sample scRNA-seq with Harmony, scVI, scANVI, BBKNN, Scanorama, SIMBA, or supported R-backed methods to remove batch effects. Skip when the data is one sample (no batch effect to integrate); upstream merging only (use sc-multi-count).