file-download

file-download is a skill for Claude Code from billy-enrizky/openbrowser-ai. It costs 60 tokens per session (1,691 once invoked), scanned C, original, MIT.

A browser-based download guide for saving files from websites and reading downloaded content. It supports files such as PDFs, CSVs, and images, including downloads that require an existing login session.

In plain words
What is it for?
Use it to download reports, PDFs, spreadsheets, images, or other files from web pages and read their contents.
Why use it?
It avoids manually finding and saving files while preserving the browser session needed for restricted downloads. It also helps inspect the downloaded material afterward.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

Part of the openbrowser plugin — 7 skills shipped together

Good fit Use it to download reports, PDFs, spreadsheets, images, or other files from web pages and read their contents.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/billy-enrizky/openbrowser-ai/file-download
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 billy-enrizky/openbrowser-ai --skill file-download
Clone the repo
git clone --depth 1 https://github.com/billy-enrizky/openbrowser-ai

Made for: Claude Code.

Or install openbrowser, the plugin that ships this one along with the rest of its 7 skills.

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 file-download

README.md
[![agentmods](https://agentmods.dev/badge/skills/billy-enrizky/openbrowser-ai/file-download/github.svg)](https://agentmods.dev/skills/billy-enrizky/openbrowser-ai/file-download)
Your own site
<a href="https://agentmods.dev/skills/billy-enrizky/openbrowser-ai/file-download"><img src="https://agentmods.dev/badge/skills/billy-enrizky/openbrowser-ai/file-download/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 file-download

Your own site · 80×15
<a href="https://agentmods.dev/skills/billy-enrizky/openbrowser-ai/file-download"><img src="https://agentmods.dev/badge/skills/billy-enrizky/openbrowser-ai/file-download.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 60 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,691 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 2 findings. A grade says what 26 rules found in the file — not that it is safe.
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.00060 $0.01691
Opus 5 $0.00030 $0.00846
Sonnet 5 $0.00012 $0.00338
Haiku 4.5 $0.00006 $0.00169

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

Security

Grade C, and why

file-download scanned grade C with 2 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 11d 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.

Downloads and executes remote codehighSupply chain

curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.

curl -fsSL https://raw.githubusercontent.com/billy-enrizky/openbrowser-ai/main/install.sh | sh

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

allowed-tools: Bash(openbrowser-ai:*) Bash(curl:*) Bash(uv:*) Bash(irm:*) Read Write
plugin/skills/file-download/SKILL.md · 229 lines

How it starts

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

File Download

Download files from websites using the browser's authenticated session. Handles PDFs, CSVs, images, and any downloadable content. Preserves cookies and login sessions for authenticated downloads.

All code runs via openbrowser-ai -c. The daemon starts automatically and persists variables across calls. All browser functions are async -- use await.

The CLI daemon also persists cookies and login state in ~/.config/openbrowser/profiles/daemon/storage_state.json, so authenticated sessions can be reused across later runs.

Setup

Before running, verify openbrowser-ai is installed:

openbrowser-ai --help

If not found, install:

# macOS/Linux
curl -fsSL https://raw.githubusercontent.com/billy-enrizky/openbrowser-ai/main/install.sh | sh

# Windows (PowerShell)
irm https://raw.githubusercontent.com/billy-enrizky/openbrowser-ai/main/install.ps1 | iex

Workflow

Step 1 -- Navigate and find download links

openbrowser-ai -c - <<'EOF'
await navigate("https://example.com/reports")

# Get browser state to find clickable download links
state = await browser.get_browser_state_summary()
for idx, el in state.dom_state.selector_map.items():
    text = el.get_all_children_text(max_depth=1)
    if "download" in text.lower() or "pdf" in text.lower() or "export" in text.lower():
        print(f"[{idx}] {el.tag_name}: {text}")
EOF

Step 2 -- Download a file by URL

Use download_file() to download directly. This uses the browser's JavaScript fetch internally, preserving cookies and authentication:

openbrowser-ai -c - <<'EOF'
path = await download_file("https://example.com/reports/annual-report.pdf")
print(f"Saved to: {path}")
EOF

With a custom filename:

openbrowser-ai -c - <<'EOF'
path = await download_file(
    "https://example.com/api/export?format=csv",
    filename="sales-data.csv"
)
print(f"Saved to: {path}")
EOF

Step 3 -- Extract a download URL from the page

When the download URL is not directly visible, extract it from a link or button:

Read the full file on GitHub · 229 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. 11d ago First seen · 229 lines · 60 tokens per session scan C b9499688a9b8

Subscribe to this mod's changes

file-download is a skill published in the GitHub repository billy-enrizky/openbrowser-ai (241 stars, last pushed 2mo ago), licensed MIT. It adds 60 tokens to every session and 1,691 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it C with 2 findings (downloads and executes remote code, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

url-to-pdf

URL to PDF and HTML to PDF. Convert any web page URL, or a raw HTML string, into a clean PDF file. Save an invoice or a receipt, archive an article, or print an HTML report to PDF. The page renders in a real hosted browser with JavaScript on, so the PDF matches the live page, and you set paper size, margins…

toolshedlabs-hash/web-access-skills · 138 tokens

wowerpoint

Turn one document into a kawaii NotebookLM slide-deck PDF. Use for "wowerpoint this", "make a deck about ", "turn this report into slides", or any request to render a single document as shareable narrative slides.

thedotmack/claude-mem · 55 tokens

pandoc

Convert documents between formats (Markdown, DOCX, HTML, PDF, RST, EPUB, LaTeX) via the pandoc CLI. Use to transform a document from one format to another.

AtomicBot-ai/atomic-agent · 45 tokens

pdf

Manipulate PDF files — merge, split, extract pages/text, PDF↔images, OCR, info — via the qpdf / poppler / ocrmypdf CLIs. Use to combine, slice, convert, or OCR PDFs.

AtomicBot-ai/atomic-agent · 56 tokens

km-content-extraction

Content extraction routing for KM - local documents (HWP/HWPX/PDF/DOCX/XLSX), web, and vault sources. Use when input is a local file or when km-workflow reaches Phase 2 with a non-URL input.

treylom/knowledge-manager · 57 tokens

thumbnail-of-pptx

Capture a thumbnail image of a slide from a OneDrive/Office presentation link. Opens the PowerPoint web viewer in a headless browser and screenshots the slide canvas, producing a clean 16:9 image with no viewer chrome. Works even when the PPTX is not downloadable (e.g. personal OneDrive shares), since it screenshots…

pamelafox/presentation-skills · 111 tokens