nopua
nopua is a skill in wuji-labs/nopua, last changed 14 Mar 2026. It can name web addresses. Our pattern check flagged nothing at commit 44010e0 on 27 Oct 2026.
Pattern check: nothing flagged · commit 44010e0 · 27 Oct 2026
InstallThe anti-PUA. Drives AI with wisdom, trust, and inner motivation instead of fear and threats. Activates on: task failed 2+ times, about to give up, suggesting user do it manually, blaming environment unverified, stuck in loops, passive behavior, or user frustration ('try harder', 'figure it out', '换个方法', '为什么还不行'). ALL task types. Not for first failures.
- Licence
- MIT
- Repo stars
- 1.4k
- Folder last changed
- 14 Mar 2026 (opens in a new tab)
- Publisher
- wuji-labs
- Files
- 1 file
- Checked
- 44010e0 (opens in a new tab) · 27 Oct 2026
Install
Each tab says whether it installs commit 44010e0, the one we checked, or the latest version.
No tab for your agent? Use Any agent for OpenCode, Goose, Windsurf (Devin Desktop), Zed, Roo Code, Factory Droid, Junie, Amp and Antigravity, and Claude Code for Cline. Kiro needs the folder copied by hand.
Pinned to commit 44010e0, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/wuji-labs/nopua.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
git -C "$tmp" sparse-checkout set -- codex/nopua &&
git -C "$tmp" checkout -q 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
mkdir -p .claude/skills &&
mkdir .claude/skills/nopua &&
cp -R "$tmp"/codex/nopua/. .claude/skills/nopua/ &&
rm -rf "$tmp"If Claude Code was already running and this created the skills folder, run /reload-skills.
Pinned to commit 44010e0, the one we checked.
Skills in the Claude apps belong to your account rather than to a project.
Make nopua.zip, with the skill folder at the top level:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/wuji-labs/nopua.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
git -C "$tmp" sparse-checkout set -- codex/nopua &&
git -C "$tmp" checkout -q 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
out="$(mktemp -d)" &&
cp -R "$tmp"/codex/nopua "$out"/nopua &&
(cd "$out" && zip -qr - nopua) > nopua.zip &&
rm -rf "$tmp" "$out"In Claude, open Customize > Skills, select +, then + Create skill > Upload a skill, and choose nopua.zip.
On Free, Pro and Max plans, turn on Code execution and file creation (Create and edit files in newer settings) under Settings > Capabilities.
Pinned to commit 44010e0, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/wuji-labs/nopua.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
git -C "$tmp" sparse-checkout set -- codex/nopua &&
git -C "$tmp" checkout -q 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
mkdir -p .agents/skills &&
mkdir .agents/skills/nopua &&
cp -R "$tmp"/codex/nopua/. .agents/skills/nopua/ &&
rm -rf "$tmp"Codex picks up new skills on its own; restart it if this one does not appear.
Pinned to commit 44010e0, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/wuji-labs/nopua.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
git -C "$tmp" sparse-checkout set -- codex/nopua &&
git -C "$tmp" checkout -q 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
mkdir -p .cursor/skills &&
mkdir .cursor/skills/nopua &&
cp -R "$tmp"/codex/nopua/. .cursor/skills/nopua/ &&
rm -rf "$tmp"Pinned to commit 44010e0, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/wuji-labs/nopua.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
git -C "$tmp" sparse-checkout set -- codex/nopua &&
git -C "$tmp" checkout -q 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
mkdir -p .github/skills &&
mkdir .github/skills/nopua &&
cp -R "$tmp"/codex/nopua/. .github/skills/nopua/ &&
rm -rf "$tmp"In a running Copilot CLI session, run /skills reload.
Or install it with gh skill, which also installs the commit we checked. Needs GitHub CLI 2.90 or later.
gh skill install wuji-labs/nopua codex/nopua/SKILL.md@44010e045b7dd72b16d760ceefd7a8d408dabf37 --agent github-copilot --scope projectPinned to commit 44010e0, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/wuji-labs/nopua.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
git -C "$tmp" sparse-checkout set -- codex/nopua &&
git -C "$tmp" checkout -q 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
mkdir -p .gemini/skills &&
mkdir .gemini/skills/nopua &&
cp -R "$tmp"/codex/nopua/. .gemini/skills/nopua/ &&
rm -rf "$tmp"In a running session, run /skills reload.
Or use Gemini CLI’s own installer. Installs the latest version, not the one we checked.
gemini skills install https://github.com/wuji-labs/nopua.git --path codex/nopua --scope workspacePinned to commit 44010e0, the one we checked.
Codex, Cursor, Copilot, VS Code, Gemini CLI, OpenCode, Goose, Amp and Zed all read .agents/skills; Claude Code and Kiro list only their own folders.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/wuji-labs/nopua.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
git -C "$tmp" sparse-checkout set -- codex/nopua &&
git -C "$tmp" checkout -q 44010e045b7dd72b16d760ceefd7a8d408dabf37 &&
mkdir -p .agents/skills &&
mkdir .agents/skills/nopua &&
cp -R "$tmp"/codex/nopua/. .agents/skills/nopua/ &&
rm -rf "$tmp"Or use the skills CLI from skills.sh. Installs the latest version, not the one we checked. The skills CLI reports installs to skills.sh unless you set DISABLE_TELEMETRY=1.
npx skills@1.7.4 add wuji-labs/nopua --skill nopuaWhat it can touch
From the files and frontmatter at commit 44010e0. This is how much a skill can do, not whether it is risky.
What it can touch: Scripts or outside hosts
Names web addresses
It mentions outside web addresses the agent may visit. We list them but don't follow them.
Pattern check
Pattern check: nothing flagged · commit 44010e0 · 27 Oct 2026
We checked every text file in this skill, at commit 44010e0 on 27 Oct 2026, against 45 published patterns such as download-and-run commands, hidden text and credential access. We don't run the skill, we don't read the web pages it points to, and we can't judge everything its instructions might lead an agent to do. In published tests, pattern checks like this one missed most malicious skills. Read the skill before you install it — especially anything it asks you to download or run.
How the check worksReport an incorrect finding
Outside links we did not follow
- https://github.com/wuji-labs/nopua
Format check
Each agent reads SKILL.md a little differently. We check the file against each one's published rules; we don't run the skill in any agent.
Agent Skills specPasses with warnings
The open format from agentskills.io, held to what the strictest agents enforce, so one folder loads everywhere.
- Warning
Fields outside the spec: version, author and homepage. Uploads to the Claude apps and API, and the spec's validator, reject the file; most agents ignore these fields. O1
Fix: Delete them for a portable skill, or keep them if you only target the agents that read them.
- Warning
The body is about 7,047 tokens (approx.); the spec suggests under 5,000. B2
Fix: Move detail into reference files that the agent reads only when needed.
- Note
The description doesn't say when to use the skill. D6
Fix: Add a sentence such as "Use when …" naming the requests or files that should trigger it.
- Warning
Claude CodePasses
Claude Code reads its own extra fields, ignores unknown ones, and still loads a skill whose frontmatter is broken, without its fields.
- Note
Claude Code ignores fields it doesn't know: version, author and homepage. O1
Fix: Check the spelling against Claude Code's field list, or delete them.
- Note
The body is about 7,047 tokens (approx.); the spec suggests under 5,000. After compaction Claude Code keeps only the first 5,000 tokens of a skill. B2
Fix: Move detail into reference files that the agent reads only when needed.
- Note
Claude apps & API uploadFails
Uploading to claude.ai or the Claude API, or packaging with Anthropic's script, accepts only the six spec fields and stops on anything else.
- Error
Upload and packaging fail on fields outside the spec: version, author and homepage. O1
Fix: Delete them, and keep your own data under metadata as text values.
- Note
The description is 356 characters. The claude.ai Help Center says 200 at most, though Anthropic's API docs and validator allow 1,024. D4
Fix: If the claude.ai upload refuses it, trim the description to 200 characters.
- Note
The body is about 7,047 tokens (approx.); the spec suggests under 5,000. Anthropic's guidance says the same. B2
Fix: Move detail into reference files that the agent reads only when needed.
- Error
OpenAI (Codex & API)Passes with warnings
Codex finds SKILL.md by its exact name and needs a description; OpenAI's Skills API checks the frontmatter against the spec and caps uploads.
- Warning
Fields outside the spec: version, author and homepage. Codex ignores them; OpenAI doesn't say whether its upload accepts them. O1
Fix: Delete them, or move your own data under metadata as text values.
- Warning
VS Code & CopilotPasses
VS Code reads skills one folder below .github/skills, .claude/skills or .agents/skills and falls back to the folder name when the name is missing or differs; GitHub's Copilot docs require the exact name SKILL.md.
- Note
VS Code ignores fields it doesn't support: version, author and homepage. O1
Fix: Delete them unless another agent you target reads them.
- Note
SKILL.md
Files
1 file
| Path | Size |
|---|---|
| SKILL.md (opens in a new tab) | 28.4 KB |
Copies
These share its SKILL.md or its name and description but not all its files, so we list them separately.
More from wuji-labs/nopua
nopua
wuji-labs/nopua
The anti-PUA. Drives AI with wisdom, trust, and inner motivation instead of fear and threats. Activates on: task failed 2+ times, about to give up, suggesting user do it manually, blaming environment unverified, stuck in loops, passive behavior, or user frustration ('try harder', 'figure it out', '换个方法', '为什么还不行'). ALL task types. Not for first failures.
- Touches credentials
- Changes agent settings
- +5 more
Pattern check: 2 items to reviewMIT · 1.4k repo stars · Updated 13 Jun 2026
nopua
wuji-labs/nopua
The anti-PUA. Drives AI with wisdom, trust, and inner motivation instead of fear and threats. Activates on: task failed 2+ times, about to give up, suggesting user do it manually, blaming environment unverified, stuck in loops, passive behavior, or user frustration ('try harder', 'figure it out', '换个方法', '为什么还不行'). ALL task types. Not for first failures.
- Names web addresses
Pattern check: 1 item to reviewMIT · 1.4k repo stars · Updated 13 Jun 2026
nopua-lite
wuji-labs/nopua
NoPUA Lite — core wisdom in ~1.5k tokens. Drives AI with trust and inner motivation instead of fear. Same Daoist philosophy, minimal footprint. For personal use and small-context models.
- Names web addresses
Pattern check: Nothing flaggedMIT · 1.4k repo stars · Updated 13 Jun 2026
nopua-zh
wuji-labs/nopua
The anti-PUA. Drives AI with wisdom, trust, and inner motivation instead of fear and threats. Activates on: task failed 2+ times, about to give up, suggesting user do it manually, blaming environment unverified, stuck in loops, passive behavior, or user frustration ('try harder', 'figure it out', '换个方法', '为什么还不行'). ALL task types. Not for first failures.
- Names web addresses
Pattern check: Nothing flaggedMIT · 1.4k repo stars · Updated 13 Jun 2026