Agent skill

Podpull

by xiaoleiy in xiaoleiy/podpull

A skill your agent uses when the user wants to download a podcast episode's audio file (mp3/m4a) to disk — from an Apple Podcasts show or episode link, a raw RSS feed, or a 小宇宙/xiaoyuzhou episode…

MITAuto-check passedMedia & Creative

Install Podpull

skills CLI
$ npx skills add xiaoleiy/podpull --skill podpull -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install xiaoleiy/podpull podpull --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/xiaoleiy/podpull.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/podpull/integrations .claude/skills/podpull && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
podpull
GitHub stars
146
Token cost
~962 tokens
SKILL.md length
331 words
Files
4
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when the user wants to download a podcast episode's audio file (mp3/m4a) to disk — from an Apple Podcasts show or episode link, a raw RSS feed, or a 小宇宙/xiaoyuzhou episode…

  • Works in 3 steps: Resolve the show: if you only have a… → Download with a selector — --match… → Report the saved path. The file path is…
  • The user wants to download a podcast episodes audio file (mp3/m4a) to disk — from an Apple Podcasts show
  • SKILL.md covers How it works (so you pick the…, Commands, Workflow and Important for agents…, plus 1 more section
  • Runs Python scripts from its folder; calls brew and pipx; reaches xiaoyuzhoufm.com; needs PODCASTINDEX_API_KEY and PODCASTINDEX_API_SECRET

What it does

Podpull is an agent skill from xiaoleiy/podpull. Use when the user wants to download a podcast episode's audio file (mp3/m4a) to disk — from an Apple Podcasts show or episode link, a raw RSS feed, or a 小宇宙/xiaoyuzhou episode link. Covers searching for a show, listing episodes, and downloading one or many. Keywords: download podcast, save episode audio, Apple Podcasts, RSS, xiaoyuzhou, 小宇宙, mp3, m4a, podpull, 下载播客.

Its SKILL.md is about 960 tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `__init__.py` and `opencode_command.md`).

It sits in Media & Creative, covering Podcasting. It works with Python. The repository describes itself as: Download any podcast episode straight to your shell — Apple Podcasts, RSS, or xiaoyuzhou. Interactive picker, live progress, resumable. The licence is MIT.

When your agent uses it

  • The user wants to download a podcast episodes audio file (mp3/m4a) to disk — from an Apple Podcasts show
  • A 小宇宙/xiaoyuzhou episode link

Example prompts

  • “/podpull”

Requirements

  • Python 3
  • A credential in PODCASTINDEX_API_KEY
  • A credential in PODCASTINDEX_API_SECRET

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Resolve the show: if you only have a name, podpull search ""; then podpull list to see episodes.
  2. Download with a selector — --match (title regex), --latest N, or --index 0,2.
  3. Report the saved path. The file path is printed to stdout; progress/UI go to stderr, so capture stdout when scripting.

What it can do on your machine

Read from SKILL.md and the folder at commit 7ba0674. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • brew
    • pipx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • xiaoyuzhoufm.com

    Also links to:

    • podpull.xiaolei.work

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • PODCASTINDEX_API_KEY
    • PODCASTINDEX_API_SECRET

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Podpull loads about 962 tokens when it runs. Until then it costs about 94 tokens; SKILL.md has 331 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~94
When it runs · the whole SKILL.md, loaded when a task matches
~962

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from xiaoleiy/podpull at commit 7ba0674, republished under its MIT licence (© xiaoleiy). 331 words, ~962 tokens.

Download SKILL.mdSave it as .claude/skills/podpull/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
podpull
description
Use when the user wants to download a podcast episode's audio file (mp3/m4a) to disk — from an Apple Podcasts show or episode link, a raw RSS feed, or a 小宇宙/xiaoyuzhou episode link. Covers searching for a show, listing episodes, and downloading one or many. Keywords: download podcast, save episode audio, Apple Podcasts, RSS, xiaoyuzhou, 小宇宙, mp3, m4a, podpull, 下载播客.

podpull — download podcast episode audio

Use the installed podpull command-line tool to download podcast audio. Repo: https://github.com/xiaoleiy/podpull

If it isn't installed: brew install xiaoleiy/tap/podpull (macOS/Linux) or pipx install git+https://github.com/xiaoleiy/podpull.

How it works (so you pick the right command)

Apple Podcasts holds no audio — it points at each show's RSS feed, where every episode has a direct <enclosure> URL. podpull resolves Apple show URLs/IDs, raw RSS feeds, and xiaoyuzhou links to that audio and downloads it.

Commands

podpull search "<keywords>"                  # find shows -> Apple ID, #episodes, name
podpull info  <src>                          # show metadata (title, author, feed, latest)
podpull list  <src> [--match RE] [--all]     # list episodes; index 0 = newest
podpull get   <src> --match RE | --latest N | --index 0,2[,..]   # download (alias: `pull`)
podpull get   <episode-url>                  # download a pasted Apple ?i= or xiaoyuzhou link
podpull get   <src> ... -q / --quiet         # suppress spinner/progress bar
podpull --json <cmd> …                       # one JSON document on stdout (flag before command)
podpull serve [--host] [--port]              # local UI: search / trending / browser download

Hosted web UI (same idea, no install): https://podpull.xiaolei.work/app

<src> = Apple show URL · bare Apple ID · RSS feed URL · Apple episode ?i= URL · xiaoyuzhou episode URL.

Workflow

  1. Resolve the show: if you only have a name, podpull search "<name>"; then podpull list <id> to see episodes.
  2. Download with a selector — --match (title regex), --latest N, or --index 0,2.
  3. Report the saved path. The file path is printed to stdout; progress/UI go to stderr, so capture stdout when scripting.

Important for agents (non-interactive)

  • Always pass a selector and --no-input. Running podpull get <show> with no selector opens an interactive keyboard picker — which can't be driven non-interactively and will instead error with a hint. Use e.g. podpull get 1532755821 --latest 1 --no-input.
  • Add -q/--quiet to suppress the spinner and live progress bar on stderr — recommended for agent transcripts, since neither renders meaningfully outside a live terminal. Saved file paths still print to stdout either way.
  • Prefer podpull --json … when you need structured data (search / info / list / get). The flag goes before the command. On success stdout is one JSON document; on failure check the exit code (human error on stderr, no JSON).
  • Downloads default to ./<show name>/ in the current working directory; pass --out DIR to change the parent (still creates the per-show folder).
  • Every show download creates a per-show sub-folder. Filenames are normalized to be cloud-storage-safe (emoji/illegal characters removed; CJK kept).
  • Optional: if PODCASTINDEX_API_KEY/PODCASTINDEX_API_SECRET are set, search also queries Podcast Index and feed resolution gains a fallback; ximalaya.com/album/<id> links work as a source.

Examples

podpull search "睡前故事"
podpull --json list 1532755821 --limit 5
podpull get 1532755821 --latest 1 --no-input --quiet
podpull --json get 1532755821 --latest 1 --no-input
podpull get 1532755821 --match "牛頭人" --no-input --out ~/Audio
podpull get "https://www.xiaoyuzhoufm.com/episode/<id>" --no-input

© xiaoleiy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files in src/podpull/integrations of xiaoleiy/podpull.

  • SKILL.md
  • __init__.py
  • cursor_rule.mdc
  • opencode_command.md

Open the folder on GitHubat commit 7ba0674

Compare with similar skills

Podpull next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Podpull compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Podpull this skillxiaoleiy/podpull146—~962Automated safety check: PassMIT
Azure Realtime Podcast Generationmicrosoft/skills3.1k1 repos~947Automated safety check: PassMIT
Podcast Episode Cover Artimpredicative/podgenai157—~372Automated safety check: PassLGPL-3.0
Event Signalsgooseworks-ai/goose-skills1.2k1 repos~3.9kAutomated safety check: NotesMIT
Video Podcast Makerdtsola/xiaoyaosearch1k1 repos~3.4kAutomated safety check: PassMIT
Podcast Generationbytedance/deer-flow83k2 repos~2.2kAutomated safety check: PassMIT

Similar skills

  • Official

    Builds podcast-style audio narration from text with Azure OpenAI's GPT Realtime Mini over WebSocket, from a Python FastAPI backend to a React player.

    3.1k GitHub starsUsed in 1 repo~947 tokens
    Media & CreativeAuto-check passed
  • Podcast Episode Cover Art

    impredicative/podgenai

    Produce a square cover art image for a given podcast episode title, with vibrant, creative artwork and no text or people by default.

    157 GitHub stars~372 tokensUpdated 3 days ago
    Media & CreativeAuto-check passed
  • Event Signals

    gooseworks-ai/goose-skills

    Extract leads from conferences, meetups, hackathons, and podcasts by analyzing speaker lists, sponsor lists, hackathon entries, and podcast guests.

    1.2k GitHub starsUsed in 1 repo~3.9k tokens
    Media & CreativeAuto-check: notes
  • Video Podcast Maker

    dtsola/xiaoyaosearch

    Turns a topic into a 4K horizontal video podcast through research, scripting, text-to-speech, Remotion rendering and background music, and can learn styles from references.

    1k GitHub starsUsed in 1 repo~3.4k tokens
    Media & CreativeAuto-check passed
  • Podcast Generation

    bytedance/deer-flow

    Turns written content into a two-host conversational podcast MP3 with a transcript, by drafting a JSON script and running a text-to-speech script.

    83k GitHub starsUsed in 2 repos~2.2k tokens
    Media & CreativeAuto-check passed
  • Videodb

    affaan-m/ECC

    Ingest, index, search, edit, and monitor video and audio with the VideoDB Python SDK — upload from files, URLs, or RTSP feeds, build spoken and scene indexes with timestamped search and playable…

    275k GitHub starsUsed in 3 repos~3.5k tokens
    Media & CreativeAuto-check: notes

Works with

Questions about Podpull

What does Podpull do?

A skill your agent uses when the user wants to download a podcast episode's audio file (mp3/m4a) to disk — from an Apple Podcasts show or episode link, a raw RSS feed, or a 小宇宙/xiaoyuzhou episode…. Podpull is an agent skill from xiaoleiy/podpull. Use when the user wants to download a podcast episode's audio file (mp3/m4a) to disk — from an Apple Podcasts show or episode link, a raw RSS feed, or a 小宇宙/xiaoyuzhou episode link.

When should I use Podpull?

Podpull fits situations like: the user wants to download a podcast episodes audio file (mp3/m4a) to disk — from an Apple Podcasts show; A 小宇宙/xiaoyuzhou episode link.

How do I install Podpull in Claude Code?

Run `npx skills add xiaoleiy/podpull --skill podpull -a claude-code`. Or copy the skill folder (src/podpull/integrations in xiaoleiy/podpull) into .claude/skills/podpull in your project. Claude Code loads it when a task matches its description.

How do I install Podpull in Codex?

Run `npx skills add xiaoleiy/podpull --skill podpull -a codex`. Or copy the skill folder (src/podpull/integrations in xiaoleiy/podpull) into .agents/skills/podpull in your project. Codex loads it when a task matches its description.

Can I use Podpull in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add xiaoleiy/podpull --skill podpull -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/podpull, .gemini/skills/podpull, .github/skills/podpull and .opencode/skills/podpull in your project.

What does Podpull need to run?

Going by SKILL.md and its folder, Podpull needs Python for the scripts in its folder, the command-line tools its instructions call (brew and pipx) and credentials named PODCASTINDEX_API_KEY and PODCASTINDEX_API_SECRET. Our summary lists: Python 3; A credential in PODCASTINDEX_API_KEY; A credential in PODCASTINDEX_API_SECRET.

Does Podpull access the network?

SKILL.md names 2 domains. In commands or code: xiaoyuzhoufm.com; the agent is likely to contact it when it follows the instructions. As links in the text: podpull.xiaolei.work. This is read from the text; nothing was executed.

Is Podpull safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Podpull use?

Podpull is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Podpull use?

About 962 tokens (SKILL.md is roughly 3.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Podpull?

Skills that share tags, products or a category with Podpull: Azure Realtime Podcast Generation (microsoft/skills, 3.1k stars), Podcast Episode Cover Art (impredicative/podgenai, 157 stars), Event Signals (gooseworks-ai/goose-skills, 1.2k stars) and Video Podcast Maker (dtsola/xiaoyaosearch, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Podpull?

xiaoleiy (a GitHub user) maintains it in xiaoleiy/podpull, which has 146 GitHub stars. The repository was last updated on September 5, 2026.

Source: xiaoleiy/podpull on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.