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 | $0.00085 | $0.01902 |
| Sonnet 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 10d 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.
- 10d 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 (484 stars, last pushed today), licensed BSD-2-Clause. It adds 170 tokens to every session and 3,803 once invoked, about $0.0009 per session on Opus 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-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-enrichment
Load when running bulk-style pathway enrichment (ORA / GSEA / GSEA-R / GSVA-R) on a per-group ranked DE / marker list against a gene-set library. Skip when computing per-cell pathway scores in-place (use sc-pathway-scoring); de-novo gene-program discovery (use sc-gene-programs).
sc-grn
Load when inferring TF → target gene regulatory networks on a normalised scRNA AnnData via pySCENIC (GRNBoost2 + cisTarget + AUCell) or correlation-based GRN fallback (when arboreto is unavailable, in --demo, or with --allow-simplified-grn). Skip when computing ligand-receptor cell-cell signalling (use…
sc-pathway-scoring
Load when computing per-cell pathway / gene-set scores on a normalised scRNA AnnData via AUCell (R or Python) or Scanpy scoregenes. Skip when running condition-vs-control bulk-style enrichment on top of a DE table (use sc-enrichment); de-novo gene-program discovery (use sc-gene-programs).
sc-pseudotime
Load when ordering cells along a developmental trajectory in a normalised scRNA AnnData via DPT, Palantir, VIA, CellRank, Slingshot (R), or Monocle3 (R). Skip when ranking marker genes per cluster (use sc-markers); RNA velocity vector fields (use sc-velocity).
sc-velocity-prep
Load when generating spliced / unspliced layers from Cell Ranger BAM, FASTQ, STARsolo output, or velocyto loom — the prerequisite for sc-velocity. Skip when AnnData already has spliced+unspliced layers (use sc-velocity); any non-velocity preprocessing (use sc-preprocessing).