{"id":"579cb553-7a74-42d4-b170-88b054b5f8ae","shortId":"Xn6NhR","kind":"skill","title":"nudocs","tagline":"Upload, edit, and export documents via Nudocs.ai. Use when creating shareable document links for collaborative editing, uploading markdown/docs to Nudocs for rich editing, or pulling back edited content. Triggers on \"send to nudocs\", \"upload to nudocs\", \"edit in nudocs\", \"pull fr","description":"# Nudocs\n\nUpload documents to Nudocs.ai for rich editing, get shareable links, and pull back the results.\n\n## Setup\n\n1. Install the CLI using the repo's declared install metadata or your preferred package manager before first use.\n\n2. Get your API key from https://nudocs.ai (click \"Integration\" after signing in)\n\n3. Configure the key:\n```bash\n# Option 1: Environment variable\nexport NUDOCS_API_KEY=\"nudocs_your_key_here\"\n\n# Option 2: Config file\nmkdir -p ~/.config/nudocs\necho \"nudocs_your_key_here\" > ~/.config/nudocs/api_key\n```\n\n## Commands\n\n```bash\nnudocs upload <file>              # Upload and get edit link\nnudocs list                       # List all documents\nnudocs link [ulid]                # Get edit link (last upload if no ULID)\nnudocs pull [ulid] [--format fmt] # Download document (default: docx)\nnudocs delete <ulid>              # Delete a document\nnudocs config                     # Show configuration\n```\n\n## Workflow\n\n### Upload Flow\n1. Create/write document content\n2. Save as markdown (or other supported format)\n3. Run: `nudocs upload <file>`\n4. Share the returned edit link with user\n\n### Pull Flow\n1. User requests document back\n2. Run: `nudocs pull [ulid] --format <fmt>`\n3. Read and present the downloaded file\n\n### Format Selection\n\n| Scenario | Recommended Format |\n|----------|-------------------|\n| User edited with rich formatting | `docx` (default) |\n| Simple text/code content | `md` |\n| Final delivery/sharing | `pdf` |\n\nSee `formats.md` in this skill's `references` folder for full format support.\n\n## Natural Language Triggers\n\nRecognize these user intents:\n\n**Upload/Send:**\n- \"send to nudocs\"\n- \"upload to nudocs\"  \n- \"open in nudocs\"\n- \"edit this in nudocs\"\n- \"let me edit this in nudocs\"\n- \"put this in nudocs\"\n\n**Pull/Fetch:**\n- \"pull it back\"\n- \"pull from nudocs\"\n- \"get that doc\"\n- \"fetch from nudocs\"\n- \"download from nudocs\"\n- \"grab the updated version\"\n- \"what did I change\"\n- \"get my edits\"\n\n**Link:**\n- \"get the nudocs link\"\n- \"share link\"\n- \"where's that doc\"\n- \"nudocs url\"\n\n**List:**\n- \"show my nudocs\"\n- \"list my documents\"\n- \"what docs do I have\"\n- \"my nudocs documents\"\n\n## Document Best Practices\n\nBefore uploading, ensure good structure:\n- Clear heading hierarchy (H1 → H2 → H3)\n- Consistent spacing\n- Appropriate list formatting\n- Concise paragraphs (3-5 sentences)\n\nSee `document-design.md` in this skill's `references` folder for templates and guidelines.\n\n## Example Session\n\n```\nUser: Write me a blog post about remote work and send it to Nudocs\n\nAgent:\n1. Writes blog-remote-work.md with proper structure\n2. Runs: nudocs upload blog-remote-work.md\n3. Returns: \"Here's your Nudocs link: https://nudocs.ai/file/01ABC...\"\n\nUser: *edits in Nudocs, adds formatting, images*\nUser: Pull that back\n\nAgent:\n1. Runs: nudocs pull --format docx\n2. Reads the downloaded file\n3. Returns: \"Got your updated document! Here's what changed...\"\n```\n\n## Error Handling\n\n| Error | Cause | Solution |\n|-------|-------|----------|\n| \"No API key found\" | Missing credentials | Set NUDOCS_API_KEY or create config file |\n| \"DOCUMENT_LIMIT_REACHED\" | Free tier limit (10 docs) | Delete old docs or upgrade to Pro |\n| \"Unauthorized\" | Invalid API key | Regenerate key in Nudocs settings |\n| \"No ULID provided\" | Missing document ID | Specify ULID or upload a doc first |\n\n## Links\n\n- CLI: https://github.com/PSPDFKit/nudocs-cli (`@nutrient-sdk/nudocs-cli` on npm)\n- MCP integration repo: https://github.com/PSPDFKit/nudocs-mcp-server\n- Nudocs: https://nudocs.ai\n\n## Safety Boundaries\n\n- Do not upload sensitive documents unless the user confirmed that third-party processing is acceptable.\n- Do not print API keys, edit links meant to stay private, or document contents the user did not ask to expose.\n- Do not delete documents from Nudocs without explicit confirmation.\n- Do not assume the default download format is correct; confirm the output format when it matters.","tags":["nudocs","agent","skills","jdrhyne","agent-skills","agentic-ai","ai-agents","automation","claude-code","clawdbot","codex","cursor"],"capabilities":["skill","source-jdrhyne","skill-nudocs","topic-agent-skills","topic-agentic-ai","topic-ai-agents","topic-automation","topic-claude-code","topic-clawdbot","topic-codex","topic-cursor","topic-developer-tools","topic-gemini-cli","topic-github-copilot","topic-llm-agents"],"categories":["agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/jdrhyne/agent-skills/nudocs","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add jdrhyne/agent-skills","source_repo":"https://github.com/jdrhyne/agent-skills","install_from":"skills.sh"}},"qualityScore":"0.565","qualityRationale":"deterministic score 0.56 from registry signals: · indexed on github topic:agent-skills · 230 github stars · SKILL.md body (3,910 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:54:19.541Z","embedding":null,"createdAt":"2026-04-18T22:05:01.439Z","updatedAt":"2026-04-22T00:54:19.541Z","lastSeenAt":"2026-04-22T00:54:19.541Z","tsv":"'-5':350 '/.config/nudocs':114 '/.config/nudocs/api_key':120 '/file/01abc...':401 '/nudocs-cli':499 '/pspdfkit/nudocs-cli':495 '/pspdfkit/nudocs-mcp-server':507 '1':60,97,167,193,381,414 '10':460 '2':79,109,171,198,387,420 '3':91,179,204,349,392,425 '4':183 'accept':527 'add':406 'agent':380,413 'api':82,102,441,448,471,531 'appropri':344 'ask':546 'assum':560 'back':27,56,197,276,412 'bash':95,122 'best':329 'blog':370 'blog-remote-work.md':383,391 'boundari':511 'caus':438 'chang':296,434 'clear':336 'cli':63,492 'click':86 'collabor':16 'command':121 'concis':347 'config':110,161,452 'configur':92,163 'confirm':520,557,567 'consist':342 'content':29,170,225,541 'correct':566 'creat':11,451 'create/write':168 'credenti':445 'declar':68 'default':153,222,562 'delet':156,157,462,551 'delivery/sharing':228 'doc':282,310,321,461,464,489 'document':6,13,45,134,152,159,169,196,319,327,328,430,454,482,516,540,552 'document-design.md':353 'docx':154,221,419 'download':151,209,286,423,563 'echo':115 'edit':3,17,24,28,38,50,128,139,187,217,259,265,299,403,533 'ensur':333 'environ':98 'error':435,437 'exampl':364 'explicit':556 'export':5,100 'expos':548 'fetch':283 'file':111,210,424,453 'final':227 'first':77,490 'flow':166,192 'fmt':150 'folder':237,359 'format':149,178,203,211,215,220,240,346,407,418,564,570 'formats.md':231 'found':443 'fr':42 'free':457 'full':239 'get':51,80,127,138,280,297,301 'github.com':494,506 'github.com/pspdfkit/nudocs-cli':493 'github.com/pspdfkit/nudocs-mcp-server':505 'good':334 'got':427 'grab':289 'guidelin':363 'h1':339 'h2':340 'h3':341 'handl':436 'head':337 'hierarchi':338 'id':483 'imag':408 'instal':61,69 'integr':87,503 'intent':248 'invalid':470 'key':83,94,103,106,118,442,449,472,474,532 'languag':243 'last':141 'let':263 'limit':455,459 'link':14,53,129,136,140,188,300,304,306,398,491,534 'list':131,132,313,317,345 'manag':75 'markdown':174 'markdown/docs':19 'matter':573 'mcp':502 'md':226 'meant':535 'metadata':70 'miss':444,481 'mkdir':112 'natur':242 'npm':501 'nudoc':1,21,34,37,40,43,101,104,116,123,130,135,146,155,160,181,200,252,255,258,262,268,272,279,285,288,303,311,316,326,379,389,397,405,416,447,476,508,554 'nudocs.ai':8,47,85,400,509 'nudocs.ai/file/01abc...':399 'nutrient':497 'nutrient-sdk':496 'old':463 'open':256 'option':96,108 'output':569 'p':113 'packag':74 'paragraph':348 'parti':524 'pdf':229 'post':371 'practic':330 'prefer':73 'present':207 'print':530 'privat':538 'pro':468 'process':525 'proper':385 'provid':480 'pull':26,41,55,147,191,201,274,277,410,417 'pull/fetch':273 'put':269 'reach':456 'read':205,421 'recogn':245 'recommend':214 'refer':236,358 'regener':473 'remot':373 'repo':66,504 'request':195 'result':58 'return':186,393,426 'rich':23,49,219 'run':180,199,388,415 'safeti':510 'save':172 'scenario':213 'sdk':498 'see':230,352 'select':212 'send':32,250,376 'sensit':515 'sentenc':351 'session':365 'set':446,477 'setup':59 'share':184,305 'shareabl':12,52 'show':162,314 'sign':89 'simpl':223 'skill':234,356 'skill-nudocs' 'solut':439 'source-jdrhyne' 'space':343 'specifi':484 'stay':537 'structur':335,386 'support':177,241 'templat':361 'text/code':224 'third':523 'third-parti':522 'tier':458 'topic-agent-skills' 'topic-agentic-ai' 'topic-ai-agents' 'topic-automation' 'topic-claude-code' 'topic-clawdbot' 'topic-codex' 'topic-cursor' 'topic-developer-tools' 'topic-gemini-cli' 'topic-github-copilot' 'topic-llm-agents' 'trigger':30,244 'ulid':137,145,148,202,479,485 'unauthor':469 'unless':517 'updat':291,429 'upgrad':466 'upload':2,18,35,44,124,125,142,165,182,253,332,390,487,514 'upload/send':249 'url':312 'use':9,64,78 'user':190,194,216,247,366,402,409,519,543 'variabl':99 'version':292 'via':7 'without':555 'work':374 'workflow':164 'write':367,382","prices":[{"id":"657dc7bc-6d4b-4d36-bb6c-87c0984e141a","listingId":"579cb553-7a74-42d4-b170-88b054b5f8ae","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"jdrhyne","category":"agent-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:05:01.439Z"}],"sources":[{"listingId":"579cb553-7a74-42d4-b170-88b054b5f8ae","source":"github","sourceId":"jdrhyne/agent-skills/nudocs","sourceUrl":"https://github.com/jdrhyne/agent-skills/tree/main/skills/nudocs","isPrimary":false,"firstSeenAt":"2026-04-18T22:05:01.439Z","lastSeenAt":"2026-04-22T00:54:19.541Z"}],"details":{"listingId":"579cb553-7a74-42d4-b170-88b054b5f8ae","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"jdrhyne","slug":"nudocs","github":{"repo":"jdrhyne/agent-skills","stars":230,"topics":["agent-skills","agentic-ai","ai-agents","automation","claude-code","clawdbot","codex","cursor","developer-tools","gemini-cli","github-copilot","llm-agents","mcp","openclaw","prompt-engineering","prompts"],"license":null,"html_url":"https://github.com/jdrhyne/agent-skills","pushed_at":"2026-03-27T14:29:53Z","description":"A collection of AI agent skills for Clawdbot, Claude Code, Codex","skill_md_sha":"d50fb47c40e63a1367404eeafcb7c18d89f881b0","skill_md_path":"skills/nudocs/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/jdrhyne/agent-skills/tree/main/skills/nudocs"},"layout":"multi","source":"github","category":"agent-skills","frontmatter":{"name":"nudocs","description":"Upload, edit, and export documents via Nudocs.ai. Use when creating shareable document links for collaborative editing, uploading markdown/docs to Nudocs for rich editing, or pulling back edited content. Triggers on \"send to nudocs\", \"upload to nudocs\", \"edit in nudocs\", \"pull from nudocs\", \"get the nudocs link\", \"show my nudocs documents\"."},"skills_sh_url":"https://skills.sh/jdrhyne/agent-skills/nudocs"},"updatedAt":"2026-04-22T00:54:19.541Z"}}