Pullmd
AeternaLabsHQ/pullmd
Read any web page, document, or YouTube video as clean Markdown using PullMD.
Extract text content from external sources — URLs, PDFs, documents, YouTube videos, Reddit posts, and audio/video files.
$ npx skills add lfnovo/content-core --skill content-core -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install lfnovo/content-core content-core --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/lfnovo/content-core.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/content-core .claude/skills/content-core && rm -rf skills-srcUse ~/.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/
Install the "content-core" agent skill from https://github.com/lfnovo/content-core/tree/main/skills/content-core into .claude/skills/content-core/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-core", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/lfnovo/content-core/tree/main/skills/content-coreType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add lfnovo/content-core --skill content-core -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install lfnovo/content-core content-core --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lfnovo/content-core.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/content-core .agents/skills/content-core && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "content-core" agent skill from https://github.com/lfnovo/content-core/tree/main/skills/content-core into .agents/skills/content-core/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-core", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lfnovo/content-core --skill content-core -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install lfnovo/content-core content-core --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lfnovo/content-core.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/content-core .cursor/skills/content-core && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "content-core" agent skill from https://github.com/lfnovo/content-core/tree/main/skills/content-core into .cursor/skills/content-core/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-core", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/lfnovo/content-core.git --path skills/content-core--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add lfnovo/content-core --skill content-core -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install lfnovo/content-core content-core --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lfnovo/content-core.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/content-core .gemini/skills/content-core && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "content-core" agent skill from https://github.com/lfnovo/content-core/tree/main/skills/content-core into .gemini/skills/content-core/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-core", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install lfnovo/content-core content-coreInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add lfnovo/content-core --skill content-core -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/lfnovo/content-core.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/content-core .github/skills/content-core && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "content-core" agent skill from https://github.com/lfnovo/content-core/tree/main/skills/content-core into .github/skills/content-core/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-core", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lfnovo/content-core --skill content-core -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install lfnovo/content-core content-core --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lfnovo/content-core.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/content-core .opencode/skills/content-core && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "content-core" agent skill from https://github.com/lfnovo/content-core/tree/main/skills/content-core into .opencode/skills/content-core/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-core", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
content-coreExtract text content from external sources — URLs, PDFs, documents, YouTube videos, Reddit posts, and audio/video files.
Content Core is an agent skill from lfnovo/content-core. Extract text content from external sources — URLs, PDFs, documents, YouTube videos, Reddit posts, and audio/video files. Use when you need to read, analyze, or summarize content from a URL, file, or media source.
Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Documents & Office. It works with Reddit, YouTube and Model Context Protocol. The repository describes itself as: Extract what matters from any media source. The licence is MIT.
Read from SKILL.md and the folder at commit c4725c0. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
uvxuvcurlshbrewpipFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
astral.shyoutube.comreddit.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
OPENAI_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Content Core loads about 1.5k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 512 words of instructions outside code blocks.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
- **macOS/Linux**: `curl -LsSf https://astral.sh/uv/install.sh | sh``powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"`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.
The full file from lfnovo/content-core at commit c4725c0, republished under its MIT licence (© lfnovo). 512 words, ~1,532 tokens.
.claude/skills/content-core/SKILL.md (or your agent's skills folder).Content Core extracts text from external sources so you can read, analyze, or summarize them. Use it whenever you need content from a URL, PDF, document, YouTube video, Reddit post, or audio/video file.
Most extraction works without API keys. Only audio/video transcription and summarization require an LLM API key (e.g., OPENAI_API_KEY).
Content Core runs via uvx (zero-install) which requires uv to be available.
uv --versionIf uv is not found, help the user install it:
curl -LsSf https://astral.sh/uv/install.sh | shpowershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"brew install uvpip install uvAfter installation, the user may need to restart their shell or run source ~/.bashrc / source ~/.zshrc for uv to be available on PATH.
| Source | Examples | API Key Needed |
|---|---|---|
| Web pages | Any URL | No |
| YouTube | Video transcript (watch, live, shorts URLs) | No |
| Post + comments via public JSON | No | |
| Documents | PDF, DOCX, PPTX, XLSX, EPUB, Markdown | No |
| Audio | MP3, WAV, M4A, FLAC, OGG | Yes (STT) |
| Video | MP4, AVI, MOV, MKV | Yes (STT) |
| Plain text / HTML | Raw text, auto-detects HTML | No |
All commands use uvx content-core which runs without installation.
# Check the installed version
uvx content-core --version# From a URL
uvx content-core extract "https://example.com"
# From a file
uvx content-core extract document.pdf
# From a YouTube video (watch, live, and shorts URLs all work)
uvx content-core extract "https://www.youtube.com/watch?v=VIDEO_ID"
# From a Reddit post
uvx content-core extract "https://www.reddit.com/r/sub/comments/POST_ID/title/"
# JSON output (includes title, content, metadata)
uvx content-core extract --format json "https://example.com"
# With a specific extraction engine
uvx content-core extract --engine firecrawl "https://example.com"
uvx content-core extract --engine docling document.pdf# Enable formula extraction (LaTeX)
uvx content-core extract --engine docling --formulas paper.pdf
# Enable image descriptions and chart data extraction
uvx content-core extract --engine docling --pictures paper.pdf
# Disable OCR (faster, for PDFs with embedded text)
uvx content-core extract --engine docling --no-ocr paper.pdfRequires an LLM API key (OPENAI_API_KEY or another provider).
# Summarize text
uvx content-core summarize "Long text here..."
# With context to guide the summary
uvx content-core summarize --context "bullet points" "Long text..."
# Pipe extraction into summarization
uvx content-core extract "https://example.com" | uvx content-core summarize --context "key takeaways"# View current config
uvx content-core config list
# Set persistent defaults
uvx content-core config set llm_provider anthropic
uvx content-core config set llm_model claude-sonnet-5
uvx content-core config set url_engine firecrawl
# Delete a config value
uvx content-core config delete llm_provider
# See all available config keys
uvx content-core config --helpContent Core can also run as an MCP server. It may or may not be available in your current environment.
Look for content-core in the list of available MCP servers. If available, you will have access to these tools:
Extracts text from a URL or file. No API key needed for most sources.
extract_content(url="https://example.com")
extract_content(file_path="/path/to/document.pdf")
extract_content(url="https://youtube.com/watch?v=ID")
# With engine override (firecrawl, jina, crawl4ai, simple, docling)
extract_content(file_path="paper.pdf", engine="docling")
# With Docling enrichment
extract_content(file_path="paper.pdf", engine="docling", formulas=true, pictures=true)Summarizes text using an LLM. Requires an API key.
summarize_content(content="Long text...", context="bullet points")If summarization fails with an API key error, fall back to extract_content and return the raw content instead.
uvx content-core extract "URL" > output.md). This avoids flooding the agent's context window with large payloads. Read only the relevant sections from the file as needed.uvx content-coreOPENAI_API_KEY (or another STT provider key)--format json when you need structured metadata (title, source type, identified type)--engine docling with --formulas or --picturesuvx is not found: help the user install uv (see Prerequisites above)uvx content-coreextract_content instead and summarize the content yourself--engine to use the auto-detection fallback chain© lfnovo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/content-core of lfnovo/content-core.
Open the folder on GitHubat commit c4725c0
Content Core 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Content Core this skilllfnovo/content-core | 174 | — | ~1.5k | Automated safety check: Notes | MIT | |
| PullmdAeternaLabsHQ/pullmd | 486 | — | ~2.6k | Automated safety check: Pass | AGPL-3.0 | |
| Influencer Discoverytigerless-labs/influencer-discovery | 211 | — | ~2.5k | Automated safety check: Notes | None | |
| Videodevourdatawhalechina/video-devour | 156 | — | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Social PostHao0321/claude-skill-social-post | 727 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Content Trend Researcheralirezarezvani/claude-code-skill-factory | 880 | 2 repos | ~2.1k | Automated safety check: Pass | MIT |
AeternaLabsHQ/pullmd
Read any web page, document, or YouTube video as clean Markdown using PullMD.
tigerless-labs/influencer-discovery
Find the bloggers/creators who can help promote your work, capture their contact info, and append them to the target sheet in Google Sheets.
datawhalechina/video-devour
使用 VideoDevour 把视频(B站/YouTube/抖音/X 链接、微信视频号分享链接或本地文件)处理成中文图文报告。当用户要求"处理这个视频"、"视频转笔记/报告/图文大纲"、"下载并总结B站/YouTube/抖音/X/视频号视频"时使用。支持搜索视频、查询链接信息、一键生成带关键帧的图文报告(精简/详细),改写成量子速读/公众号文章/小红书笔记、导出…
Hao0321/claude-skill-social-post
依使用者真實貼文與成效寫 Facebook/Instagram/YouTube/Threads/X 文案,包含 ChatGPT Chat 的「寫文」「Mode C」「用我的格式/口氣」「黑底白字」;本機工作台、規劃、確認後發布、留言回覆及成效學習。使用者說「發文」「文案」「Social Post 介面」「回覆留言」「查流量」「把數據訓練進去」「比較貼文」「優化 pattern」時使用。
alirezarezvani/claude-code-skill-factory
Advanced content and topic research skill that analyzes trends across Google Analytics, Google Trends, Substack, Medium, Reddit, LinkedIn, X, blogs, podcasts, and YouTube to generate data-driven…
Hao0321/claude-skill-social-post
在 ChatGPT 聊天中規劃、撰寫與修改 Facebook、Instagram、Threads、YouTube、X 貼文;處理 Mode C、黑底白字、作者語氣、版型與成效證據。使用者說「發文」「寫文」「文案」「用我的口氣/格式」「Mode C」「黑底白字」「分析貼文」時啟用。
Works with
Categories
Extract text content from external sources — URLs, PDFs, documents, YouTube videos, Reddit posts, and audio/video files. Content Core is an agent skill from lfnovo/content-core. Extract text content from external sources — URLs, PDFs, documents, YouTube videos, Reddit posts, and audio/video files.
Content Core fits situations like: you need to read; summarize content from a URL.
Run `npx skills add lfnovo/content-core --skill content-core -a claude-code`. Or copy the skill folder (skills/content-core in lfnovo/content-core) into .claude/skills/content-core in your project. Claude Code loads it when a task matches its description.
Run `npx skills add lfnovo/content-core --skill content-core -a codex`. Or copy the skill folder (skills/content-core in lfnovo/content-core) into .agents/skills/content-core in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add lfnovo/content-core --skill content-core -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/content-core, .gemini/skills/content-core, .github/skills/content-core and .opencode/skills/content-core in your project.
Going by SKILL.md and its folder, Content Core needs the command-line tools its instructions call (uvx, uv, curl, sh, brew and pip) and credentials named OPENAI_API_KEY. Our summary lists: Python 3; A credential in OPENAI_API_KEY.
SKILL.md names 3 domains. In commands or code: astral.sh, youtube.com and reddit.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pipes a well-known installer script into a shell), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Content Core is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.5k tokens (SKILL.md is roughly 6.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Content Core: Pullmd (AeternaLabsHQ/pullmd, 486 stars), Influencer Discovery (tigerless-labs/influencer-discovery, 211 stars), Videodevour (datawhalechina/video-devour, 156 stars) and Social Post (Hao0321/claude-skill-social-post, 727 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
lfnovo (a GitHub user) maintains it in lfnovo/content-core, which has 174 GitHub stars. The repository was last updated on October 3, 2026.
Source: lfnovo/content-core on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.