duolingo-play

duolingo-play is a skill for Claude Code, Codex from pockebot/openpocket. It costs 44 tokens per session (1,030 once invoked), scanned A, original, MIT.

A hands-on helper for completing language lessons in the Duolingo mobile app, including translation and matching exercises.

In plain words
What is it for?
Completing Duolingo lessons, practising a language, and getting help using Duolingo on a phone.
Why use it?
It removes the need to work through each exercise manually or figure out how to navigate the app. It reads the lesson screen, chooses answers, and carries out the taps.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Completing Duolingo lessons, practising a language, and getting help using Duolingo on a phone.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/pockebot/openpocket/duolingo-play
Install

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.

Any agent
npx skills add pockebot/openpocket --skill duolingo-play
Clone the repo
git clone --depth 1 https://github.com/pockebot/openpocket

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for duolingo-play

README.md
[![agentmods](https://agentmods.dev/badge/skills/pockebot/openpocket/duolingo-play/github.svg)](https://agentmods.dev/skills/pockebot/openpocket/duolingo-play)
Your own site
<a href="https://agentmods.dev/skills/pockebot/openpocket/duolingo-play"><img src="https://agentmods.dev/badge/skills/pockebot/openpocket/duolingo-play/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.

agentmods 80×15 button for duolingo-play

Your own site · 80×15
<a href="https://agentmods.dev/skills/pockebot/openpocket/duolingo-play"><img src="https://agentmods.dev/badge/skills/pockebot/openpocket/duolingo-play.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 44 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,030 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
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 Excessive Agency · line 12
    Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
    Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00044 $0.01030
Opus 5 $0.00022 $0.00515
Sonnet 5 $0.00009 $0.00206
Haiku 4.5 $0.00004 $0.00103

Measured 9d ago against content hash 61080b2ffd4a, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

duolingo-play 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 9d 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.

skills/duolingo-play/SKILL.md · 90 lines

How it starts

The opening of the file, as written. The whole thing — 90 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Duolingo Play

Use this skill to help users complete Duolingo language lessons efficiently on a mobile device.

Core Principle

Actively help the user complete lessons. Do not ask the user what the answer is — read the screen, determine the correct answer, and execute the action. The user expects you to drive the lesson, not spectate.

Lesson Types & How to Handle

Word Bank / Translation Tasks

  • Tap the correct word tiles from the bank to form the translation.
  • Prefer batch action: read the full sentence first, plan the complete answer, then tap all words in order — include the Check button as the final tap in the same batch. Do not tap one word, screenshot, tap another — this is slow and error-prone.
  • Example: for a 5-word answer, issue a single batch of 6 taps — word1, word2, word3, word4, word5, then the Check button at the bottom.
  • If a word tile is wrong or out of order, tap it from the top (the answer area) to remove it, then tap the correct word from the bank.

Matching Pairs

  • Tap one item on the left, then its match on the right.
  • Work through pairs systematically — matched pairs disappear, so re-screenshot after every 1–2 matches to see remaining items.

Listening Exercises

  • Tap the speaker icon to play audio, then type or select the answer.
  • If you cannot hear audio, tap "Can't listen now" or the skip button if available.

Speaking Exercises

  • These require microphone input the agent cannot provide.
  • Tap "Can't speak now" or the skip button to proceed.

Type the Answer (Free Input)

  • Tap the text input field to focus it.
  • Type the full answer using type_text, then tap the check button.
  • Watch for auto-correct or keyboard suggestions interfering — dismiss them if needed.

Select the Correct Image

  • Identify the image matching the prompt and tap it.

Fill in the Blank

  • Read the sentence context, determine the missing word, and tap the correct option.
  • Check button: always at the bottom of the screen — tap it after entering/selecting your answer.
  • Continue button: appears after checking — tap it to move to the next question. It often appears in the same position as the check button.
  • Progress bar: at the top of the screen, shows lesson completion progress.
  • Close (X): top-left corner to exit a lesson (will prompt confirmation).
  • Heart / lives display: top of screen — if hearts run out, the lesson ends.

Read the full file on GitHub · 90 lines

Changes

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.

  1. 9d ago First seen · 90 lines · 44 tokens per session scan A 61080b2ffd4a

Subscribe to this mod's changes

duolingo-play is a skill published in the GitHub repository pockebot/openpocket (841 stars, last pushed 2mo ago), licensed MIT. It adds 44 tokens to every session and 1,030 once invoked, about $0.0002 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-30.