Open-source project
Yuan1z0825/nature-skills avatar
Yuan1z0825/nature-skills

nature-skills installs skill files, and one script only reaches Codex

Nature Skills gives research agents reusable procedures for academic writing, literature work, scientific figures, and reproducible research outputs.

53,456 stars2,779 forksPythonApache-2.0

At a glance

What is it?
A collection of reusable research procedures packaged as SKILL.md directories and installed through the npx skills CLI, with a separate manual path for Claude Code because the update script only writes to the Codex skills directory. The packaging has sharp edges: a shared dependency you must request by name, and skill names that do not match their directory names.
Who is it for?
Install nature-skills per skill rather than with the catch-all flag, and always pull nature-shared alongside a skill that depends on it, since a clean install of nature-reader on its own is a broken install. Read the SKILL.md of the skill you want before installing the whole set, and remember that the CLI copies files while Python, R, browser and MCP dependencies stay yours to configure.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • Yuan1z0825/nature-skills53,456 ★ · +21,664
Star history
Repository2026-07-282026-11-13
Yuan1z0825/nature-skills31.8k53.5k

21,664 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

Each skills/ directory is an installable unit, and nature-shared is not in the index

The repository is organised around SKILL.md files rather than around a Python package. Every top-level directory under skills/ is one installable unit, most of them named with a nature- prefix.. One directory is deliberately outside the index. nature-shared is a shared support package that other skills read from, and it is not counted as an independently triggered skill. The consequence shows up in the first install you attempt: taking nature-reader, nature-paper2ppt, nature-polishing or nature-writing on its own leaves a skill pointing at support files that are not on disk, so the documentation pairs those installs with an explicit second selection:

bash
npx skills add Yuan1z0825/nature-skills --global --agent codex \
  --skill nature-reader --skill nature-shared --yes --copy

Install the single skill and you get a skill that cannot finish its own workflow.

The skill name is the frontmatter name, and nature-proposal-writer installs as researchwrite

The name you pass to the CLI is not the folder name. The selection parameter takes the frontmatter name that the list command displays, and the documentation gives the mismatch as its example: the directory nature-proposal-writer currently shows up as researchwrite. Read the directory listing and you will type a name the CLI does not know; read the list output and you get a name that does not appear anywhere in the file tree, which makes grepping the repository for it fail. Start from the list rather than the folder structure:

bash
npx skills add Yuan1z0825/nature-skills --list

The update commands take the same names, so a skill installed under one name and searched for under another is a support question you will have to resolve against the frontmatter, not the path. This is a small thing that costs an hour the first time and would have been a line in the directory listing.

npx skills copies files, and Python, R, browser and MCP stay yours

What the CLI manages is narrow on purpose. The documentation states plainly that npx skills manages the skill files, and that optional runtime dependencies including Python, R, a browser and MCP still have to be configured separately as described further down. Skills also carry references/, static/, manifest.yaml, scripts and assets directories, which the copy does bring along, so the split is between procedural content and the tools the procedure calls. The consequence is a failure mode that looks like a broken skill rather than a missing dependency. The files arrive, the frontmatter is correct, the agent loads the instructions, and the first step that shells out to R or opens a browser fails with a command not found. Check those run dependencies before you file an issue or blame the prompt.

update-codex-skills.sh only writes to ~/.codex/skills/, so Claude Code needs a clone

The repository ships a sync script, and the documentation is explicit that Claude Code cannot use it, because the script's job is limited to syncing into the Codex skills directory at ~/.codex/skills/. The recommended path for Claude Code is a stable local clone that subagents and slash commands point at, so the skill directory structure survives and references/, static/, manifest.yaml, scripts, assets and skills/nature-shared/ stay readable. That means a real clone on disk:

bash
mkdir -p ~/ai-skills
cd ~/ai-skills
git clone https://github.com/Yuan1z0825/nature-skills.git

and a wrapper file, either a subagent:

bash
mkdir -p ~/.claude/agents
cat > ~/.claude/agents/nature-reader.md <<'EOF'
---
name: nature-reader
description: Use for Chinese-English paper reading, figure-aware translation, and source-grounded paper notes.
---

When invoked, first read `~/ai-skills/nature-skills/skills/nature-reader/SKILL.md` and follow it as the governing workflow.
Read supporting files from `~/ai-skills/nature-skills/skills/nature-reader/` and `~/ai-skills/nature-skills/skills/nature-shared/` only when needed.
Do not replace this skill with a generic paper-reading response.
EOF

The last line of that wrapper is the interesting instruction, telling the agent not to fall back to a generic answer. Two install paths with two update paths is the price of not having one.

--all and --skill '*' install different scopes, and only one of them is selective

The four documented install shapes differ in scope, not in effort. A single skill for the current project omits --global, as in the install of nature-figure with --agent codex --skill nature-figure --yes --copy, which keeps the files local to one repository. The same command with --global makes it available across projects. The wildcard form installs the complete skill set, including nature-shared, and is also global:

bash
npx skills add Yuan1z0825/nature-skills --global --agent codex --skill '*' --yes --copy

The --all form is different again, because it targets every agent the CLI supports rather than one named agent. The practical question is how many agents you actually use. Maintenance follows the same shape: list and update are global and agent-scoped, a single skill updates by name, and a project-only update is a separate command. If you are unsure, install one skill for one project and grow the set when a task needs it.

The prompt table is the real interface, and the examples are written in Chinese

After installation the documented entry point is a prompt, and the documentation gives a table of eight tasks you can paste directly. They cover turning a PDF into a bilingual Chinese-English Markdown reader, building a Chinese group-meeting presentation that keeps key figures and source attribution, rewriting a Chinese passage into Nature-style English while holding the academic meaning, drafting an abstract and introduction from results and figures, simulating pre-submission review with three double-blind reviewer reports, answering a revision email point by point with a cover letter, collecting citation counts, strict citing counts, DOIs and a profile of who cites the work, and generating submission-ready scientific figures. You can also name a skill directly, writing that you want to use nature-reader or nature-response instead of describing the task. Everything in that table is in Chinese, and the front page of the repository is Chinese too, with README_EN.md as a separate file. An English-only user is therefore copying prompts they may be unable to read closely, which is exactly the case where knowing what the skill is supposed to do matters.

Three pr-body templates at the root define what a contribution is expected to touch

The repository root hints at contribution conventions through its filenames. The repository root carries pr-body-readme-mirror.md, pr-body-skill-index.md and pr-body-workflow.md, which read as templates for three parts of a pull request body: a mirror of the README changes, an update to the skill index, and a workflow description. Along with .agents/, .codex-plugin/, scripts/, skills/, tests/, assets/, docs/ and an index.html, that layout tells you a skill is not a single file. Adding one may also touch the index and the workflow documentation. The root also has a tests/ directory. Assume a human reviewer, and assume the three documents are part of what that reviewer reads.

The first two sections of the README are a recharge shop and a paid community

Before any technical content, the README spends two sections on the founder, a self-operated GPT and Claude recharge card shop with one-year Plus top-ups and Pro 5x and 20x plans, a Knowledge Planet community that people are invited to join in place of tipping, and a business contact address. A third block points at a hosted web version at natureskills.cn offering Nature Polishing and Nature Figure. Section 3 then states, in the author's own words, that Google DeepMind referenced the citation system, script approach and skill design philosophy and released something it calls Science Skills. No link to such a project is given in that section, so treat it as an assertion rather than as evidence. For someone evaluating the work, the consequence is practical: the first two screens of the repository are marketing, so the only way to judge a skill is to read its SKILL.md and the files it references.

Editorial conclusion

Install nature-skills per skill rather than with the catch-all flag, and always pull nature-shared alongside a skill that depends on it, since a clean install of nature-reader on its own is a broken install. Read the SKILL.md of the skill you want before installing the whole set, and remember that the CLI copies files while Python, R, browser and MCP dependencies stay yours to configure.

Frequently asked questions

What is nature-skills and what does the repository contain?

It is a set of reusable skills for research agents covering academic writing, literature work, scientific figures and reproducible outputs, organised around SKILL.md files. Each top-level directory under skills/ is one installable unit, and nature-shared is a shared support package that other skills read from rather than a skill you trigger on its own.

How do I install nature-skills with npx?

Install Node.js 18 or higher, then run npx skills add Yuan1z0825/nature-skills --list to see the installable names before choosing any. Individual skills install with --agent and --skill, for example --agent codex --skill nature-figure --yes --copy, and adding --global makes them available across projects.

Can I use nature-skills with Claude Code?

Yes, but not through the repository's sync script, which only targets the Codex skills directory at ~/.codex/skills/. The documented path is a stable local clone plus a subagent or slash command that points at the real skills/*/SKILL.md, with the CLI itself installed using npm install -g @anthropic-ai/claude-code.

What licence is nature-skills released under?

Apache 2.0, with a LICENSE file at the repository root of Yuan1z0825/nature-skills. The project also maintains README_EN.md alongside the Chinese README and publishes a hosted version at natureskills.cn.

Official sources

  1. Official README
  2. Project repository
  3. README
  4. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/yuan1z0825-nature-skills.svg)](https://hysenlabs.com/projects/yuan1z0825-nature-skills)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/yuan1z0825-nature-skills.svg)](https://hysenlabs.com/projects/yuan1z0825-nature-skills)

Was this useful?