# Send Paperless-ngx Document Manager to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "paperless-docs",
    "name": "Paperless-ngx Document Manager",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/madmantim/paperless-docs",
    "canonicalUrl": "https://clawhub.ai/madmantim/paperless-docs",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/paperless-docs",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=paperless-docs",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "references/api.md",
      "scripts/correspondents.mjs",
      "scripts/download.mjs",
      "scripts/get.mjs",
      "scripts/list.mjs"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "paperless-docs",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T20:23:23.756Z",
      "expiresAt": "2026-05-07T20:23:23.756Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=paperless-docs",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=paperless-docs",
        "contentDisposition": "attachment; filename=\"paperless-docs-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "paperless-docs"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/paperless-docs"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/paperless-docs",
    "downloadUrl": "https://openagent3.xyz/downloads/paperless-docs",
    "agentUrl": "https://openagent3.xyz/skills/paperless-docs/agent",
    "manifestUrl": "https://openagent3.xyz/skills/paperless-docs/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/paperless-docs/agent.md"
  }
}
```
## Documentation

### Paperless-ngx

Document management via Paperless-ngx REST API.

### Configuration

Set environment variables in ~/.clawdbot/clawdbot.json:

{
  "env": {
    "PAPERLESS_URL": "http://your-paperless-host:8000",
    "PAPERLESS_TOKEN": "your-api-token"
  }
}

Or configure via the skills entry (allows using apiKey shorthand):

{
  "skills": {
    "entries": {
      "paperless-ngx": {
        "env": { "PAPERLESS_URL": "http://your-paperless-host:8000" },
        "apiKey": "your-api-token"
      }
    }
  }
}

Get your API token from Paperless web UI: Settings → Users & Groups → [user] → Generate Token.

### Quick Reference

TaskCommandSearch documentsnode {baseDir}/scripts/search.mjs "query"List recentnode {baseDir}/scripts/list.mjs [--limit N]Get documentnode {baseDir}/scripts/get.mjs <id> [--content]Upload documentnode {baseDir}/scripts/upload.mjs <file> [--title "..."] [--tags "a,b"]Download PDFnode {baseDir}/scripts/download.mjs <id> [--output path]List tagsnode {baseDir}/scripts/tags.mjsList typesnode {baseDir}/scripts/types.mjsList correspondentsnode {baseDir}/scripts/correspondents.mjs

All scripts are in {baseDir}/scripts/.

### Find a document

# Full-text search
node {baseDir}/scripts/search.mjs "electricity bill december"

# Filter by tag
node {baseDir}/scripts/search.mjs --tag "tax-deductible"

# Filter by document type
node {baseDir}/scripts/search.mjs --type "Invoice"

# Filter by correspondent
node {baseDir}/scripts/search.mjs --correspondent "AGL"

# Combine filters
node {baseDir}/scripts/search.mjs "2025" --tag "unpaid" --type "Invoice"

### Get document details

# Metadata only
node {baseDir}/scripts/get.mjs 28

# Include OCR text content
node {baseDir}/scripts/get.mjs 28 --content

# Full content (no truncation)
node {baseDir}/scripts/get.mjs 28 --content --full

### Upload a document

# Basic upload (title auto-detected)
node {baseDir}/scripts/upload.mjs /path/to/invoice.pdf

# With metadata
node {baseDir}/scripts/upload.mjs /path/to/invoice.pdf \\
  --title "AGL Electricity Jan 2026" \\
  --tags "unpaid,utility" \\
  --type "Invoice" \\
  --correspondent "AGL" \\
  --created "2026-01-15"

### Download a document

# Download to current directory
node {baseDir}/scripts/download.mjs 28

# Specify output path
node {baseDir}/scripts/download.mjs 28 --output ~/Downloads/document.pdf

# Get original (not archived/OCR'd version)
node {baseDir}/scripts/download.mjs 28 --original

### Manage metadata

# List all tags
node {baseDir}/scripts/tags.mjs

# List document types
node {baseDir}/scripts/types.mjs

# List correspondents
node {baseDir}/scripts/correspondents.mjs

# Create new tag
node {baseDir}/scripts/tags.mjs --create "new-tag-name"

# Create new correspondent
node {baseDir}/scripts/correspondents.mjs --create "New Company Name"

### Output Format

All scripts output JSON for easy parsing. Use jq for formatting:

node {baseDir}/scripts/search.mjs "invoice" | jq '.results[] | {id, title, created}'

### Advanced Usage

For complex queries or bulk operations, see references/api.md for direct API access patterns.

### Troubleshooting

"PAPERLESS_URL not set" — Add to ~/.clawdbot/clawdbot.json env section or export in shell.

"401 Unauthorized" — Check PAPERLESS_TOKEN is valid. Regenerate in Paperless UI if needed.

"Connection refused" — Verify Paperless is running and URL is correct (include port).

Upload fails silently — Check Paperless logs; file may be duplicate or unsupported format.
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: madmantim
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-04-30T20:23:23.756Z
- Expires at: 2026-05-07T20:23:23.756Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/paperless-docs)
- [Send to Agent page](https://openagent3.xyz/skills/paperless-docs/agent)
- [JSON manifest](https://openagent3.xyz/skills/paperless-docs/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/paperless-docs/agent.md)
- [Download page](https://openagent3.xyz/downloads/paperless-docs)