Install
openclaw skills install @j3ffyang/perplexity-downloaderDownload and save Perplexity.ai conversations as individual Markdown files. One thread = one .md file. Processes threads sequentially. Supports single thread, URL lists, or full history export. Triggers on "download perplexity thread", "export perplexity history", "save all perplexity threads", or any request to capture Perplexity conversations.
openclaw skills install @j3ffyang/perplexity-downloaderDownloads Perplexity.ai conversation threads and saves each as an individual Markdown file. Processes sequentially, one thread per file.
This skill handles three export modes:
.md file.md file per thread, processed sequentially.md file per thread, processed one-by-oneEach thread becomes its own Markdown file. All files saved to ~/perplexity-downloader/outputs/.
When the user invokes the skill, detect their intent:
| User says | Mode |
|---|---|
| "Download this thread: [URL]" | Single Thread |
| "Export all my Perplexity threads" | Full History Export |
| "Download these threads: [list of URLs]" | Bulk from URL List |
| "Archive my Perplexity history" | Full History Export |
Ask clarifying questions if intent is ambiguous.
https://perplexity.ai/search/...)web_fetch(url, html_extraction_method="markdown").md file per thread# [Thread Title / First Question]
> Saved from Perplexity.ai
> URL: [original URL]
> Date: [today's date]
---
## Turn 1
### Question
[user's question text]
### Answer
[AI answer text]
#### Sources
1. [Source title](URL)
2. [Source title](URL)
---
## Turn 2
### Question
[follow-up question]
### Answer
[AI answer]
#### Sources
...
## for each conversation turn[1] if present in answer text~/perplexity-downloader/outputs/[YYMMDD]-[sanitized-title].md
Example:
260423-what-is-the-best-way-to-learn-japanese.md
Use when user provides multiple thread URLs.
.md fileindex.md listing all downloaded threadshttps://www.perplexity.ai/search/how-to-learn-python
https://www.perplexity.ai/search/best-practices-for-rest-apis
https://www.perplexity.ai/search/docker-vs-kubernetes
# Perplexity Thread Archive
**Export Date:** 2026-04-23
**Total Threads:** 3
## Threads
1. [How to learn Python](./260423-how-to-learn-python.md)
2. [Best practices for REST APIs](./260423-best-practices-for-rest-apis.md)
3. [Docker vs Kubernetes](./260423-docker-vs-kubernetes.md)
~/perplexity-downloader/outputs/
├── index.md
├── 260423-how-to-learn-python.md
├── 260423-best-practices-for-rest-apis.md
└── 260423-docker-vs-kubernetes.md
Use to download ALL threads from user's Perplexity account.
User must be logged into Perplexity.ai in their browser.
https://www.perplexity.ai/ (logged in), scroll history sidebar to load all threads, copy/paste the pagehttps://perplexity.ai/search/...)
.md file~/perplexity-downloader/outputs/perplexity-archive-2026-04-23/
├── index.md
├── perplexity-thread-001.md
├── perplexity-thread-002.md
├── perplexity-thread-003.md
└── [... more threads ...]
# Perplexity Complete Archive
**Export Date:** 2026-04-23
**Total Threads:** 42
**Date Range:** 2025-01-15 to 2026-04-23
## All Threads
1. [What is the best way to learn Japanese?](./perplexity-thread-001.md) — 2026-04-20
2. [How to optimize Docker builds?](./perplexity-thread-002.md) — 2026-04-19
3. [Best practices for REST API design](./perplexity-thread-003.md) — 2026-04-15
...
[full list with dates]
For sequential processing:
Show progress continuously so user knows it's working.
| Situation | What to do |
|---|---|
| Page returns empty or access denied | Thread may be private/login-gated. Ask user to paste the page text manually. |
| Thread has only one turn | Use same format, just one ## Turn 1 section. |
| Very long thread (10+ turns) | Process all turns; note turn count in file header. |
| Sources section missing | Omit #### Sources block for that turn. |
| Non-English thread | Preserve original language; do not translate. |
| Rate limited during bulk download | Pause 5 seconds between requests. Inform user of slowdown. |
| Some URLs fail during bulk export | Skip failed URLs, log them, report at end: "Downloaded 40/42 threads; 2 failed (access denied)" |
| History page doesn't yield URLs | Ask user to manually provide thread URLs or copy-paste page content for manual parsing. |
If web_fetch cannot retrieve a page (login wall, access denied, etc.):
"I wasn't able to fetch this thread automatically — it may require a login. You can copy the full page text and paste it here, and I'll format it into Markdown."
When user pastes raw text, apply the same parsing and formatting logic to create the .md file.