AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Pdf Reading

skill-xushuwenn-redact-pdf-reading · by XuShuwenn

Extract text, tables, and structured information from PDF documents using pdfplumber, PyPDF2, or pdftotext command-line tools.

No reviews yet
0 installs
14 views
0.0% view→install

Install

$ agentstack add skill-xushuwenn-redact-pdf-reading

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access Used
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-xushuwenn-redact-pdf-reading)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Pdf Reading? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

PDF Reading Skill

This skill helps agents extract information from PDF documents.

Tools Available

The environment has these PDF tools pre-installed:

  • pdfplumber - Python library for precise text/table extraction
  • PyPDF2 - Python library for PDF manipulation
  • pdftotext - Command-line tool from poppler-utils

Quick Extraction

Command Line (Fast)

# Extract all text from a PDF
pdftotext /root/artifacts/paper.pdf -

# Extract specific pages
pdftotext -f 1 -l 3 /root/artifacts/paper.pdf -

# Extract to a file
pdftotext /root/artifacts/paper.pdf /tmp/paper.txt

Python (More Control)

import pdfplumber
from pathlib import Path

def extract_pdf_text(pdf_path: str) -> str:
    """Extract all text from a PDF file."""
    text_parts = []
    with pdfplumber.open(pdf_path) as pdf:
        for page in pdf.pages:
            text = page.extract_text()
            if text:
                text_parts.append(text)
    return "\n\n".join(text_parts)

# Usage
text = extract_pdf_text("/root/artifacts/paper.pdf")
print(text)

Extracting Specific Information

Find Commands in Text

import re

def find_commands(text: str) -> list:
    """Extract shell commands from text."""
    # Look for common command patterns
    patterns = [
        r'docker run[^\n]+',
        r'\$[^\n]+',
        r'--package=[^\s]+\s+--version=[^\s]+',
    ]
    commands = []
    for pattern in patterns:
        commands.extend(re.findall(pattern, text))
    return commands

text = extract_pdf_text("/root/artifacts/paper.pdf")
commands = find_commands(text)

Extract Tables

import pdfplumber

def extract_tables(pdf_path: str) -> list:
    """Extract all tables from a PDF."""
    tables = []
    with pdfplumber.open(pdf_path) as pdf:
        for i, page in enumerate(pdf.pages):
            page_tables = page.extract_tables()
            for table in page_tables:
                tables.append({
                    "page": i + 1,
                    "data": table
                })
    return tables

Find Package Information

import re

def find_package_info(text: str) -> list:
    """Find npm package references (name@version)."""
    # Match patterns like node-rsync@1.0.3
    pattern = r'([a-z0-9-]+)@(\d+\.\d+\.\d+)'
    matches = re.findall(pattern, text.lower())
    return [{"name": m[0], "version": m[1]} for m in matches]

Tips

  1. Check available PDFs first:

``bash ls -la /root/artifacts/ ``

  1. Preview before full extraction:

``bash pdftotext /root/artifacts/paper.pdf - | head -100 ``

  1. Handle multi-column layouts: pdfplumber handles them better than pdftotext
  1. For structured data: Look for JSON blocks in the text:

```python import json import re

jsonblocks = re.findall(r'\{[^{}]*\}', text) for block in jsonblocks: try: data = json.loads(block) print(data) except json.JSONDecodeError: pass ```

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.