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 agentmods add skills/leventilo/mobius/paper-parsernpx skills add leventilo/mobius --skill paper-parsergit clone --depth 1 https://github.com/leventilo/mobiusWhat 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 | $0.00068 | $0.03952 |
| Opus 5 | $0.00034 | $0.01976 |
| Sonnet 5 | $0.00014 | $0.00790 |
| Haiku 4.5 | $0.00007 | $0.00395 |
Grade A, and why
paper-parser scanned grade A with 0 findings 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 2d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 285 lines — stays where its author put it; the contents beside it link to each section on GitHub.
paper-parser
1. Purpose and scope
paper-parser is the entry node of the Mobius DAG. It reads a single PDF (arXiv preprint, journal article, or technical report) and produces the paper sub-tree of the canonical SimSpec — equations as LaTeX and sympy, figures as PNGs with captions and sub-panel structure, and numerical claims with verbatim source quotes and UCUM-normalized units.
The skill does NOT:
- reason about physics (that is
physics-interpreter's job — governing equations get tagged here, classified there) - compose simulation specifications (that is
simspec-author) - verify claims against simulation output (that is
science-integrity/paper-diff) - generate visualizations (that is
viz-mapper) - emit Python primitives or simulator code (that is
primitive-generator)
Everything downstream of paper-parser assumes that the JSON returned here is correct, lossless within the limits documented below, and reproducible across re-runs given the same PDF bytes.
2. Input
Required:
pdf_path: str— absolute path to a readable PDF file. Multi-column arXiv layout is the assumed common case.
Optional:
page_range: tuple[int, int] | None— inclusive (start, end) page hint. Default scans the entire document. Useful when the orchestrator wants to skip references or supplementary material on a known-structured paper.focus_sections: list[str] | None— section title hints (e.g.["Methods", "Results"]). Treated as a soft prior on which pages matter for claim extraction; never used to drop pages outright.
The PDF is opened read-only. Nothing is written next to the input. All artefacts go to /tmp/mobius_figures/ and /tmp/mobius_parser_cache/.
3. Output
A JSON object matching the paper sub-tree of the SimSpec schema:
{
"doi": "10.xxxx/...",
"arxivId": "2501.12345",
"title": "...",
"authors": ["..."],
"abstract": "...",
"equations": [
{
"id": "eq-1",
"latex": "\\nabla \\cdot \\vec{E} = \\rho/\\epsilon_0",
"sympy_repr": "Eq(Derivative(E, x) + ..., rho/epsilon_0)",
"variables": ["E", "rho", "epsilon_0"],
"page": 3,
"bbox": [120.5, 410.0, 480.2, 442.7],
"surrounding_context": "...prose ±200 chars around the equation...",
"confidence": "high"
}
],
"figures": [
{
"id": "fig-1",
"png_path": "/tmp/mobius_figures/<sha256>/fig-1.png",
"caption": "Verbatim caption text...",
"subpanels": [
{"label": "a", "bbox_in_figure": [0.0, 0.0, 0.5, 1.0], "png_path": "..."}
],
"inline_numerical_claims": [
{"value": 532.0, "unit": "nm", "location_hint": "panel (a) wavelength"}
],
"page": 5,
"confidence": 0.86
}
],
"numerical_claims": [
{
"id": "claim-1",
"value": 1.4e-3,
"unit_ucum": "kg.m-3",
"value_uncertainty": 0.05e-3,
"section": "Results",
"source_quote": "the measured density was 1.4 x 10^-3 kg/m^3 +/- 0.05 x 10^-3",
"claim_type": "measurement",
"confidence": 0.92
}
]
}
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 2d ago First seen · 285 lines · 68 tokens per session scan A 0169a18e4271
paper-parser is a skill published in the GitHub repository leventilo/mobius (9 stars, last pushed 4mo ago), licensed MIT. It adds 68 tokens to every session and 3,952 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
experimental-design
Design experiments and studies BEFORE data is collected — choosing a design, randomizing, blocking, and laying out treatment combinations so results are interpretable. Use whenever someone is planning a study, asks how to assign subjects/samples to groups, mentions randomization, blocking, stratification, controls…
arboreto
Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for…
flux-analyzer
Analyse FBA flux distributions to extract biological insights. Covers gene essentiality, phenotypic phase planes, flux sampling, pathway-level aggregation, secretion product prediction, and production of publication- quality figures.
ligandmpnn
Inverse-fold a backbone with ligand, nucleic-acid, and metal context using LigandMPNN (Dauparas et al. 2023, github.com/dauparas/LigandMPNN). Reach for this skill to redesign the residues lining a binding pocket around a bound small molecule or cofactor, to design metal-coordinating sites where the geometry must be…
happiness-skill
当用户问「怎么才能更幸福/为什么得到了还不满足/怎么减少焦虑」时调用。 核心理念: 幸福是缺憾感清空的默认状态, 是可训练的技能; 欲望是与自己的契约(得到前不快乐), 同时只留一个重大欲望; 活在当下。 不适用于: 临床抑郁等需要专业治疗的场景(本书方法不能替代医疗)。 Triggers: 幸福/不快乐/欲望/焦虑/知足/活在当下/happiness/desire/anxiety.
evo2
Score, embed, and generate DNA sequences with Evo 2, a long-context genomic foundation model. Use this skill when: (1) Computing per-nucleotide or per-sequence likelihoods for variant effect scoring, (2) Embedding genomic windows for downstream classification, (3) Generating DNA conditioned on a prefix, (4) Scoring…