Skip to main content

deepwiki-to-md

English README. 日本語はこちら → README_JP.md

Zero-dependency CLI and Python library to extract Markdown from Next.js/DeepWiki HTML. Includes a small search helper for public repository indexes and an optional chat helper.

  • CLI: deepwiki-to-md
  • Requirements: Python 3.8+
  • Dependencies: Standard library only (optional extras for dev/docs)

Install

pip install deepwiki-to-md

Usage

  • From local HTML/string (CLI and Python):
# CLI
echo "<html>...</html>" | deepwiki-to-md
# Python API
from deepwiki_to_md import ContentExtractor

html = """
<!doctype html>
<html>...</html>
"""

extractor = ContentExtractor()
md = extractor.extract_from_html(html)
print(md)
  • From URL (files are saved only when the input is a URL):
# CLI
# Files under .deepwiki are created only for URL input
deepwiki-to-md https://deepwiki.com/microsoft/vscode/some-page --path ./.deepwiki
# Python API (same behavior as the CLI)
from deepwiki_to_md import ContentExtractor, save_markdown_to_library

url = "https://deepwiki.com/microsoft/vscode/some-page"
base_dir = "./.deepwiki"  # equivalent to --path (optional)

extractor = ContentExtractor()
md = extractor.extract_from_url(url)

result = save_markdown_to_library(md, url, base_dir)
print("saved files:")
for p in result["saved_files"]:
    print(" -", p)
print("library index:", result["library_file"])  # .deepwiki/<username>/<library>.md
  • Search public repository indexes:
# CLI (JSON by default)
deepwiki-to-md --search "Gemini"

# Human-readable development-log style
deepwiki-to-md --search "Gemini" --devlog
# Python API (same search capability)
from search_repository import search_repositories, API_URL

print(API_URL)  # => https://api.devin.ai/ada/list_public_indexes
result = search_repositories("Gemini")
indices = result.get("indices", [])
print("indices:", len(indices))
  • Chat with Devin API (via CLI):
# Positional argument must be a DeepWiki URL
# JSON output by default
deepwiki-to-md https://deepwiki.com/microsoft/vscode --chat "What is the purpose of this repository?"

# Human-readable output for development logs
deepwiki-to-md https://deepwiki.com/microsoft/vscode --chat "Summarize top features" --devlog

Options for chat via deepwiki-to-md:

  • --chat MESSAGE: Message to send. Requires a DeepWiki URL as the positional input.
  • --deep-research: Enable deep research mode for chat.
  • --config-file PATH: Path to chat config JSON (default: ./config.json). The file must exist and contain complete settings.
  • --devlog: When used with --chat, prints a human-readable response body and reference files.

License

MIT License

More documentation

Chat (Devin API) result object: ChatResult

The chat helper (src/chat.py) returns a ChatResult object instead of a plain dict.

  • Highlights

    • Inherits from dict → works with json.dumps(result) directly.
    • Convenient attribute access (e.g., result.response_message) and to_dict().
    • print(result) shows a human-readable summary.
  • Main properties

    • sent_message: str
    • response_message: Optional[str]
    • status_code: Any
    • reference_files: List[str]
    • reference_file_contents: Dict[str, str]
  • Example (excerpt)

import asyncio
import json
from chat import load_or_create_config, send_chat_message, ChatResult

async def main() -> None:

    result: ChatResult = await send_chat_message(
        wiki_url='https://deepwiki.com/microsoft/vscode',
        message='What is the purpose of this repository?',
        use_deep_research=False,
    )

    print(result)  # human-readable summary via __str__
    print(result.response_message)  # attribute access
    print(json.dumps(result, indent=2, ensure_ascii=False))  # still a dict

if __name__ == '__main__':
    asyncio.run(main())

Arguments for chat.py:

  • --url: URL of the chat interface.
  • --message: Message to send.
  • --selector: CSS selector for the chat input (default: textarea).
  • --button: CSS selector for the submit button (default: button).
  • --wait: Time to wait for response in seconds (default: 30).
  • --debug: Enable debug mode.
  • --output: Output directory (default: ChatResponses).
  • --deep: Enable "Deep Research" mode (specific to some interfaces).
  • --headless: Run browser in headless mode.
  • --format: Output format(s): html, md, yaml, or comma-separated list (default: html).

Note: The chat scraper uses Selenium, which requires a compatible browser installed.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Metadata

Release files for deepwiki-to-md 2.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for deepwiki-to-md 2.0.3
File Size Uploaded
deepwiki_to_md-2.0.3.tar.gz 26.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for deepwiki-to-md 2.0.3
File Interpreter ABI Platform
deepwiki_to_md-2.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 51.6 kB

Release files / deepwiki_to_md-2.0.3.tar.gz

Download URL deepwiki_to_md-2.0.3.tar.gz
Size 26.3 kB
Tags Source
SHA-256 checksum
How to use checksums
28a8b1e018e25db30b40bda27a08eb1a1999695c0fb596b9c7d396873a856235
BLAKE2b-256 checksum
How to use checksums
3a8ca046247d039a8e467ad56ab7e294f53d1188535aed3a1b7953349ec93a89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / deepwiki_to_md-2.0.3-py3-none-any.whl

Download URL deepwiki_to_md-2.0.3-py3-none-any.whl
Size 25.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
58efeea773474eda2ca020d0663ee6a67c269bcf40b6b8c7879e3aaf3c3adcf1
BLAKE2b-256 checksum
How to use checksums
b34855bee017238cbc496f31b89df2e7e69d353a60b0f555de63d479b2efcea2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

2.0.3 This release

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page