From paperless
Set up Paperless-ngx credentials — save the instance URL, username, and password. Use when the user wants to configure Paperless-ngx, asks to connect to an instance, asks "how do I set this up," or wants to check current connection status.
npx claudepluginhub cameri/claude-skills --plugin paperlessThis skill is limited to using the following tools:
<objective>
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Generates or updates index.md listing all files and subdirectories in a target folder with 3-10 word descriptions from file contents. Use for indexing documentation directories.
<quick_start>
Save credentials: /paperless:access url=<URL> username=<USER> password=<PASS>
Check status: /paperless:access (no args)
Guided setup: /paperless:access setup
</quick_start>
<credential_format>
~/.claude/channels/paperless/.env:
PAPERLESS_URL='http://paperless-ngx:8000'
PAPERLESS_USERNAME='myuser'
PAPERLESS_PASSWORD='mypassword'
All three keys are required. Single-quote values to prevent shell expansion of special characters ($, #, @, etc.). chmod 600 after writing.
</credential_format>
Read ~/.claude/channels/paperless/.env (missing = not configured) and show:
PAPERLESS_URL: show the value, or "not set".PAPERLESS_USERNAME: show the value, or "not set".PAPERLESS_PASSWORD: show set/not-set only, never expose the value.http --ignore-stdin -b POST "${PAPERLESS_URL%/}/api/token/" \
username="$PAPERLESS_USERNAME" \
password="$PAPERLESS_PASSWORD"
token): show "✓ Connection OK"/paperless:access again after correcting the credential that failed."/paperless:upload-document and /paperless:search-documents."setup — guided setup:
Walk the user through configuring credentials interactively:
http://paperless-ngx:8000 or https://paperless.example.com)./paperless:access url=<URL> username=<USER> password=<PASS>
url=<URL> username=<USER> password=<PASS> — explicit save:
Parse $ARGUMENTS for key=value pairs (space-separated). Accept both forms:
url=https://... and PAPERLESS_URL=https://... (strip the PAPERLESS_ prefix if present, case-insensitive).Required keys: url, username, password. If any key is missing, tell the user which are absent and stop.
mkdir -p ~/.claude/channels/paperless.env if present; update/add only the provided keys, preserve any other keys already in the file.KEY='value' (single-quoted).chmod 600 ~/.claude/channels/paperless/.envPAPERLESS_URL value before writing.http call as in the status check above).clear — remove all credentials:
Delete ~/.claude/channels/paperless/.env. Confirm before proceeding: "This will remove all Paperless-ngx credentials. Are you sure?" Only proceed if they confirm.
clear <key> — remove a single credential:
Remove only the named key line from the .env file. Valid keys: url, username, password.
</workflow>
<security_checklist>
PAPERLESS_PASSWORD — show set/not-set only.env to safely handle passwords containing $, #, @, or other shell-special characterschmod 600 the .env file after writingPAPERLESS_URL to avoid 404s--ignore-stdin to http to prevent hanging on stdinhttps:// vs http:// and certificate validity.env file = not configured, not an error — do not create empty files
</security_checklist><success_criteria>
~/.claude/channels/paperless/.env with chmod 600token field)