Not in the top 1,000 by GitHub stars

notoriouslab/doc-cleaner

日常文件轉 Markdown —— 涵蓋 PDF、Office、Apple Keynote/Numbers、EPUB 電子書等 16 種格式。中文友好、表格保留、隱私優先、全程本地。

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

55e3c472ac48 → 55e3c472ac48

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 55e3c472ac48

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 55e3c472ac4875c3bb923b2d82821fec15444cc0

git clone --filter=blob:none --no-checkout https://github.com/notoriouslab/doc-cleaner.git .hotskills/notoriouslab-doc-cleaner && git -C .hotskills/notoriouslab-doc-cleaner checkout --detach 55e3c472ac4875c3bb923b2d82821fec15444cc0 # Copy each selected skill directory from .hotskills/notoriouslab-doc-cleaner into .agents/skills/<skill-name>/
310GitHub stars
0stars in 7 days
1skill in this repository
0commits in 30 days

Heat

0.3
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 5, 2026310

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

doc-cleaner

When your agent uses it

Convert PDF, DOCX, XLSX, and text files to clean, structured Markdown. CJK-friendly, table-friendly, privacy-first.

What it loads into context

Frontmatter

79 tokens

Always available to the agent

SKILL.md

778 tokens

When the skill is activated

Reference documents

12,420 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. When to use
  2. Commands
  3. Options
  4. Supported formats
  5. Exit codes
  6. Notes

Scripts executed separately

  • ai/__init__.py
  • ai/base.py
  • ai/gemini.py
  • ai/groq.py
  • ai/mlx.py
  • ai/nvidia.py
  • ai/ollama.py
  • classifiers/__init__.py
  • classifiers/noise.py
  • classifiers/pdf_classifier.py
  • classifiers/pii.py
  • cleaner.py
  • core.py
  • macapp/__init__.py
  • macapp/__main__.py
  • macapp/app.py
  • macapp/mdpreview.py
  • macapp/settings.py
  • output/__init__.py
  • output/epub.py
  • output/markdown.py
  • parsers/__init__.py
  • parsers/_platform.py
  • parsers/_tableutil.py
  • parsers/_textutil.py
  • parsers/docx.py
  • parsers/dxf.py
  • parsers/epub.py
  • parsers/iwork.py
  • parsers/jsonl.py
  • parsers/numbers.py
  • parsers/pdf.py
  • parsers/pptx.py
  • parsers/text.py
  • parsers/xlsx.py
  • prompts/__init__.py
  • scripts/package_dmg.py
  • scripts/sign_and_notarize_macos.sh
  • scripts/verify_macos_signing.sh
  • tests/fixtures/make_pdf_table_fixtures.py
  • tests/test_collect_files_recursive.py
  • tests/test_core.py
  • tests/test_dxf.py
  • tests/test_e2e_custom_output.py
  • tests/test_epub.py
  • tests/test_epub_integration.py
  • tests/test_epub_parser.py
  • tests/test_epub_security.py
  • tests/test_iwork_parser.py
  • tests/test_jsonl_parser.py
  • tests/test_macapp.py
  • tests/test_mdpreview.py
  • tests/test_numbers_parser.py
  • tests/test_parsers_group2.py
  • tests/test_pdf_routing.py
  • tests/test_pdf_tables.py
  • tests/test_platform.py
  • tests/test_pptx.py
  • tests/test_row_rebuild.py
  • tests/test_settings.py
  • tests/test_ssrf_allowlist.py
  • tests/test_table_escaping.py
  • tests/test_table_stitching.py
  • tests/test_tableutil.py
  • tests/test_version.py

Files

  • .env.exampleasset275 bytes
  • .github/workflows/build-windows.ymlasset1,992 bytes
  • .github/workflows/tests.ymlasset2,174 bytes
  • .gitignoreasset550 bytes
  • AGENTS.mdasset9 bytes
  • CHANGELOG.mddoc8,947 bytes
  • CONTRIBUTING.mddoc2,547 bytes
  • LICENSEasset1,069 bytes
  • README.en.mddoc15,073 bytes
  • README.mddoc14,631 bytes
  • ReadMe.txtdoc5,634 bytes
  • SECURITY.mddoc3,748 bytes
  • SKILL.mdcore2,847 bytes
  • SKILL.mdcore2,847 bytes
  • SKILL.mdcore2,847 bytes
  • SKILL.mdcore2,847 bytes
  • SKILL.mdcore2,847 bytes
  • SKILL.mdcore2,847 bytes
  • SKILL.mdcore2,847 bytes
  • ai/__init__.pyruns0 bytes
  • ai/base.pyruns7,243 bytes
  • ai/gemini.pyruns1,984 bytes
  • ai/groq.pyruns4,121 bytes
  • ai/mlx.pyruns3,085 bytes
  • ai/nvidia.pyruns4,258 bytes
  • ai/ollama.pyruns3,998 bytes
  • classifiers/__init__.pyruns0 bytes
  • classifiers/noise.pyruns3,555 bytes
  • classifiers/pdf_classifier.pyruns4,789 bytes
  • classifiers/pii.pyruns3,841 bytes
  • cleaner.pyruns34,693 bytes
  • config.example.jsonasset928 bytes
  • core.pyruns5,222 bytes
  • docs/index.htmlasset21,037 bytes
  • docs/screenshots/app-done.pngasset65,410 bytes
  • docs/screenshots/app-main.pngasset52,138 bytes
  • docs/screenshots/app-preview.pngasset89,039 bytes
  • macapp/__init__.pyruns86 bytes
  • macapp/__main__.pyruns309 bytes
  • macapp/app.pyruns38,147 bytes
  • macapp/mdpreview.pyruns10,546 bytes
  • macapp/settings.pyruns5,026 bytes
  • output/__init__.pyruns0 bytes
  • output/epub.pyruns17,738 bytes
  • output/markdown.pyruns2,832 bytes
  • parsers/__init__.pyruns0 bytes
  • parsers/_platform.pyruns5,208 bytes
  • parsers/_tableutil.pyruns797 bytes
  • parsers/_textutil.pyruns1,791 bytes
  • parsers/docx.pyruns4,632 bytes
  • parsers/dxf.pyruns4,206 bytes
  • parsers/epub.pyruns11,561 bytes
  • parsers/iwork.pyruns14,123 bytes
  • parsers/jsonl.pyruns6,672 bytes
  • parsers/numbers.pyruns4,019 bytes
  • parsers/pdf.pyruns23,975 bytes
  • parsers/pptx.pyruns3,757 bytes
  • parsers/text.pyruns1,210 bytes
  • parsers/xlsx.pyruns4,270 bytes
  • prompts/__init__.pyruns0 bytes
  • prompts/default.txtdoc835 bytes
  • prompts/finance.txtdoc1,192 bytes
  • pyproject.tomlasset2,930 bytes
  • requirements.txtdoc1,309 bytes
  • resources/icon.icnsasset129,102 bytes
  • resources/icon.icoasset25,543 bytes
  • resources/icon.pngasset17,735 bytes
  • scripts/package_dmg.pyruns2,467 bytes
  • scripts/sign_and_notarize_macos.shruns6,099 bytes
  • scripts/verify_macos_signing.shruns7,427 bytes
  • tests/fixtures/crosspage_repeated_header.pdfasset4,439 bytes
  • tests/fixtures/header_grid_only.pdfasset2,730 bytes
  • tests/fixtures/make_pdf_table_fixtures.pyruns4,903 bytes
  • tests/fixtures/merged_cells.pdfasset2,939 bytes
  • tests/fixtures/mixed_content.pdfasset2,639 bytes
  • tests/fixtures/no_header.pdfasset2,525 bytes
  • tests/fixtures/special_chars.pdfasset2,630 bytes
  • tests/test_collect_files_recursive.pyruns3,500 bytes
  • tests/test_core.pyruns9,399 bytes
  • tests/test_dxf.pyruns4,588 bytes
  • tests/test_e2e_custom_output.pyruns3,627 bytes
  • tests/test_epub.pyruns4,922 bytes
  • tests/test_epub_integration.pyruns6,812 bytes
  • tests/test_epub_parser.pyruns17,570 bytes
  • tests/test_epub_security.pyruns3,392 bytes
  • tests/test_iwork_parser.pyruns13,062 bytes
  • tests/test_jsonl_parser.pyruns12,500 bytes
  • tests/test_macapp.pyruns24,510 bytes
  • tests/test_mdpreview.pyruns6,413 bytes
  • tests/test_numbers_parser.pyruns9,607 bytes
  • tests/test_parsers_group2.pyruns5,130 bytes
  • tests/test_pdf_routing.pyruns3,581 bytes
  • tests/test_pdf_tables.pyruns10,807 bytes
  • tests/test_platform.pyruns7,695 bytes
  • tests/test_pptx.pyruns4,155 bytes
  • tests/test_row_rebuild.pyruns3,897 bytes
  • tests/test_settings.pyruns5,318 bytes
  • tests/test_ssrf_allowlist.pyruns5,262 bytes
  • tests/test_table_escaping.pyruns4,968 bytes
  • tests/test_table_stitching.pyruns4,736 bytes
  • tests/test_tableutil.pyruns1,911 bytes
  • tests/test_version.pyruns2,748 bytes
  • vendor_wheels/proxy_tools-0.1.0-py3-none-any.whlasset2,936 bytes
Read SKILL.md

# doc-cleaner

Convert documents (PDF, DOCX, XLSX, TXT) to clean, structured Markdown.

## When to use

- User asks to convert a document to Markdown
- User wants to extract text or tables from PDF/DOCX/XLSX files
- User wants to clean up bank statements or financial documents
- User asks to process a batch of documents in a directory

## Commands

### Convert a single file (no AI, fastest)
View the complete source on GitHub

Skills included

  • doc-cleaner

Repository facts

License
MIT
Created
Mar 9, 2026
Last pushed
Aug 20, 2026
Forks
40
Open issues
0
Project activity
Slowing

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 5, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 7 notes
  • AGENTS.md:1 Analysis incomplete: Symlink target missing or expansion limit reached
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 341 signals by file

.env.example

  • Access to secretsline 2
    [Credential-related source omitted]
  • Access to secretsline 5
    [Credential-related source omitted]
  • Access to secretsline 8
    [Credential-related source omitted]

.gitignore

  • Access to secretsline 2
    [Credential-related source omitted]

CONTRIBUTING.md

  • Network accessline 47
    git clone https://github.com/notoriouslab/doc-cleaner.git
  • Access to secretsline 55
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 61
    [Credential-related source omitted]

README.en.md

  • Network accessline 5
    [![GitHub release](https://img.shields.io/github/v/release/notoriouslab/doc-cleaner)](https://github.com/notoriouslab/doc-cleaner/releases)
  • Network accessline 6
    [![Downloads](https://img.shields.io/github/downloads/notoriouslab/doc-cleaner/total)](https://github.com/notoriouslab/doc-cleaner/releases)
  • Network accessline 7
    [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
  • Network accessline 8
    [![Python 3.9+](https://img.shields.io/badge/Python-3.9%2B-green.svg)](https://www.python.org/)
  • Network accessline 9
    [![Supported Formats](https://img.shields.io/badge/Formats-16-orange.svg)](#supported-formats-reference)
  • Network accessline 10
    [![Last Commit](https://img.shields.io/github/last-commit/notoriouslab/doc-cleaner)](https://github.com/notoriouslab/doc-cleaner)
  • Network accessline 14
    Part of the [notoriouslab](https://github.com/notoriouslab) open-source toolkit · Requires Python 3.9+
  • Network accessline 16
    [中文 README](README.md) · [Landing page](https://notoriouslab.github.io/doc-cleaner/) (one-page overview and download, for non-GitHub users)
  • Network accessline 20
    | Platform | Download | Architecture | |----------|----------|--------------| | **macOS** | [Doc Cleaner-1.7.1.dmg](https://github.com/notoriouslab/doc-cleaner/releases/download/v1.7.1/Doc.Cleaner-1.7.1.dmg) | Universal (Intel + Apple Silic
  • Network accessline 21
    |----------|----------|--------------| | **macOS** | [Doc Cleaner-1.7.1.dmg](https://github.com/notoriouslab/doc-cleaner/releases/download/v1.7.1/Doc.Cleaner-1.7.1.dmg) | Universal (Intel + Apple Silicon) | | **Windows** | [Doc Cleaner-1.7.
  • Network accessline 22
    | **macOS** | [Doc Cleaner-1.7.1.dmg](https://github.com/notoriouslab/doc-cleaner/releases/download/v1.7.1/Doc.Cleaner-1.7.1.dmg) | Universal (Intel + Apple Silicon) |
  • Network accessline 23
    | **Windows** | [Doc Cleaner-1.7.1.msi](https://github.com/notoriouslab/doc-cleaner/releases/download/v1.7.1/Doc.Cleaner-1.7.1.msi) | x86_64 (runs on ARM Windows too) |
  • Network accessline 70
    # 1. Clone git clone https://github.com/notoriouslab/doc-cleaner.git && cd doc-cleaner
  • Network accessline 71
    git clone https://github.com/notoriouslab/doc-cleaner.git && cd doc-cleaner
  • Access to secretsline 92
    [Credential-related source omitted]
  • Access to secretsline 93
    [Credential-related source omitted]
  • Access to secretsline 130
    [Credential-related source omitted]
  • Access to secretsline 131
    [Credential-related source omitted]
  • Access to secretsline 226
    [Credential-related source omitted]
  • Network accessline 248
    "ollama": {       "model": "qwen3.5:9b",       "host": "http://localhost:11434"
  • Network accessline 249
    "model": "qwen3.5:9b",       "host": "http://localhost:11434"     }
  • Network accessline 250
    "host": "http://localhost:11434"
  • Access to secretsline 266
    [Credential-related source omitted]
  • Access to secretsline 267
    [Credential-related source omitted]
  • Access to secretsline 268
    [Credential-related source omitted]
  • Network accessline 332
    doc-cleaner is a standard CLI — any AI agent framework can shell-call it. Ships with `SKILL.md` for [OpenClaw](https://openclaw.ai/).
  • Network accessline 372
    [![Star History Chart](https://star-history.dera.page/svg?repos=notoriouslab/doc-cleaner&type=Date)](https://star-history.dera.page/#notoriouslab/doc-cleaner&type=Date)

README.md

  • Network accessline 5
    [![GitHub release](https://img.shields.io/github/v/release/notoriouslab/doc-cleaner)](https://github.com/notoriouslab/doc-cleaner/releases)
  • Network accessline 6
    [![Downloads](https://img.shields.io/github/downloads/notoriouslab/doc-cleaner/total)](https://github.com/notoriouslab/doc-cleaner/releases)
  • Network accessline 7
    [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
  • Network accessline 8
    [![Python 3.9+](https://img.shields.io/badge/Python-3.9%2B-green.svg)](https://www.python.org/)
  • Network accessline 9
    [![Supported Formats](https://img.shields.io/badge/Formats-16-orange.svg)](#支援格式完整表)
  • Network accessline 10
    [![Last Commit](https://img.shields.io/github/last-commit/notoriouslab/doc-cleaner)](https://github.com/notoriouslab/doc-cleaner)
  • Network accessline 14
    屬於 [notoriouslab](https://github.com/notoriouslab) 開源工具組的一員 · 需要 Python 3.9+
  • Network accessline 16
    [English README](README.en.md) · [下載頁](https://notoriouslab.github.io/doc-cleaner/)(一頁式說明與下載,給不熟 GitHub 的使用者)
  • Network accessline 20
    | 平台 | 下載 | 架構 | |------|------|------| | **macOS** | [Doc Cleaner-1.7.1.dmg](https://github.com/notoriouslab/doc-cleaner/releases/download/v1.7.1/Doc.Cleaner-1.7.1.dmg) | Universal(Intel + Apple Silicon) |
  • Network accessline 21
    |------|------|------| | **macOS** | [Doc Cleaner-1.7.1.dmg](https://github.com/notoriouslab/doc-cleaner/releases/download/v1.7.1/Doc.Cleaner-1.7.1.dmg) | Universal(Intel + Apple Silicon) | | **Windows** | [Doc Cleaner-1.7.1.msi](https://gi
  • Network accessline 22
    | **macOS** | [Doc Cleaner-1.7.1.dmg](https://github.com/notoriouslab/doc-cleaner/releases/download/v1.7.1/Doc.Cleaner-1.7.1.dmg) | Universal(Intel + Apple Silicon) |
  • Network accessline 23
    | **Windows** | [Doc Cleaner-1.7.1.msi](https://github.com/notoriouslab/doc-cleaner/releases/download/v1.7.1/Doc.Cleaner-1.7.1.msi) | x86_64(含 ARM Windows) |
  • Network accessline 71
    # 1. Clone git clone https://github.com/notoriouslab/doc-cleaner.git && cd doc-cleaner
  • Network accessline 72
    git clone https://github.com/notoriouslab/doc-cleaner.git && cd doc-cleaner
  • Access to secretsline 93
    [Credential-related source omitted]
  • Access to secretsline 94
    [Credential-related source omitted]
  • Access to secretsline 130
    [Credential-related source omitted]
  • Access to secretsline 131
    [Credential-related source omitted]
  • Access to secretsline 223
    [Credential-related source omitted]
  • Network accessline 245
    "ollama": {       "model": "qwen3.5:9b",       "host": "http://localhost:11434"
  • Network accessline 246
    "model": "qwen3.5:9b",       "host": "http://localhost:11434"     }
  • Network accessline 247
    "host": "http://localhost:11434"
  • Access to secretsline 263
    [Credential-related source omitted]
  • Access to secretsline 264
    [Credential-related source omitted]
  • Access to secretsline 265
    [Credential-related source omitted]
  • Network accessline 329
    doc-cleaner 是標準 CLI,任何 AI agent 框架可透過 shell 呼叫。附帶 `SKILL.md` 供 [OpenClaw](https://openclaw.ai/) 使用。
  • Network accessline 373
    [![Star History Chart](https://star-history.dera.page/svg?repos=notoriouslab/doc-cleaner&type=Date)](https://star-history.dera.page/#notoriouslab/doc-cleaner&type=Date)

ReadMe.txt

  • Network accessline 134
    notoriouslab © 2026 https://github.com/notoriouslab/doc-cleaner
  • Network accessline 135
    https://github.com/notoriouslab/doc-cleaner

SECURITY.md

  • Access to secretsline 11
    [Credential-related source omitted]
  • Network accessline 24
    - **PDF bombs**: PyMuPDF (fitz) handles page rendering; extremely large PDFs may consume memory. The text extraction cap (`max_chars=150,000`) limits exposure. - **Malicious DOCX/XLSX**: `python-docx` and `openpyxl`/`pandas` parse XML inter
  • Network accessline 26
    - **ZIP bombs via pikepdf**: pikepdf operates on PDF streams, not ZIP archives. No decompression bomb risk here (that concern belongs to [gmail-statement-fetcher](https://github.com/notoriouslab/gmail-statement-fetcher)).
  • Network accessline 72
    Email the maintainer directly (see profile) or open a [private security advisory](https://github.com/notoriouslab/doc-cleaner/security/advisories/new).
  • Network accessline 73
    [private security advisory](https://github.com/notoriouslab/doc-cleaner/security/advisories/new).

SKILL.md

  • Network accessline 3
    description: Convert PDF, DOCX, XLSX, and text files to clean, structured Markdown. CJK-friendly, table-friendly, privacy-first. version: 1.0.0 metadata: {"openclaw":{"emoji":"📄","homepage":"https://github.com/notoriouslab/doc-cleaner","req
  • Network accessline 4
    version: 1.0.0 metadata: {"openclaw":{"emoji":"📄","homepage":"https://github.com/notoriouslab/doc-cleaner","requires":{"bins":["python3"]}}} ---
  • Network accessline 5
    metadata: {"openclaw":{"emoji":"📄","homepage":"https://github.com/notoriouslab/doc-cleaner","requires":{"bins":["python3"]}}}

ai/__init__.py

  • Executable scriptline 1
    Executable file

ai/base.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 8
    [Credential-related source omitted]
  • Network accessline 92
    # urllib.request.Request._parse() calls unquote() on the host before connecting,

ai/gemini.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]

ai/groq.py

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Network accessline 30
    model: str = "meta-llama/llama-4-scout-17b-16e-instruct",         base_url: str = "https://api.groq.com/openai/v1",         timeout: int = 120,
  • Network accessline 31
    base_url: str = "https://api.groq.com/openai/v1",
  • Access to secretsline 34
    [Credential-related source omitted]

ai/mlx.py

  • Executable scriptline 1
    Executable file

ai/nvidia.py

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Network accessline 30
    model: str = "meta/llama-3.2-90b-vision-instruct",         base_url: str = "https://integrate.api.nvidia.com/v1",         timeout: int = 180,
  • Network accessline 31
    base_url: str = "https://integrate.api.nvidia.com/v1",
  • Access to secretsline 35
    [Credential-related source omitted]

ai/ollama.py

  • Executable scriptline 1
    Executable file
  • Network accessline 4
    Runs entirely on your machine — no API key, no cloud, full privacy. Requires Ollama to be running locally (default: http://localhost:11434).
  • Network accessline 5
    Requires Ollama to be running locally (default: http://localhost:11434).
  • Network accessline 22
    def __init__(self, model: str = "qwen3.5:9b", host: str = "http://localhost:11434",
  • Network accessline 61
    # chain-of-thought "thinking" mode, which otherwise generates a lengthy         # <think>...</think> block before the actual answer. This saves 30-60%         # inference time. See: https://huggingface.co/Qwen/Qwen3-8B#thinking-mode
  • Network accessline 63
    # inference time. See: https://huggingface.co/Qwen/Qwen3-8B#thinking-mode

classifiers/__init__.py

  • Executable scriptline 1
    Executable file

classifiers/noise.py

  • Executable scriptline 1
    Executable file

classifiers/pdf_classifier.py

  • Executable scriptline 1
    Executable file

classifiers/pii.py

  • Executable scriptline 1
    Executable file

cleaner.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 131
    [Credential-related source omitted]
  • Access to secretsline 133
    [Credential-related source omitted]
  • Access to secretsline 134
    [Credential-related source omitted]
  • Access to secretsline 135
    [Credential-related source omitted]
  • Access to secretsline 136
    [Credential-related source omitted]
  • Access to secretsline 137
    [Credential-related source omitted]
  • Access to secretsline 147
    [Credential-related source omitted]
  • Access to secretsline 180
    [Credential-related source omitted]
  • Access to secretsline 181
    [Credential-related source omitted]
  • Access to secretsline 183
    [Credential-related source omitted]
  • Access to secretsline 184
    [Credential-related source omitted]
  • Access to secretsline 189
    [Credential-related source omitted]
  • Access to secretsline 194
    [Credential-related source omitted]
  • Access to secretsline 195
    [Credential-related source omitted]
  • Access to secretsline 197
    [Credential-related source omitted]
  • Access to secretsline 198
    [Credential-related source omitted]
  • Network accessline 203
    groq_config = ai_config.get("groq", {})         model = groq_config.get("model", "meta-llama/llama-4-scout-17b-16e-instruct")         base_url = groq_config.get("base_url", "https://api.groq.com/openai/v1")
  • Network accessline 204
    model = groq_config.get("model", "meta-llama/llama-4-scout-17b-16e-instruct")         base_url = groq_config.get("base_url", "https://api.groq.com/openai/v1")         timeout = groq_config.get("timeout", 120)
  • Network accessline 205
    base_url = groq_config.get("base_url", "https://api.groq.com/openai/v1")
  • Access to secretsline 208
    [Credential-related source omitted]
  • Access to secretsline 217
    [Credential-related source omitted]
  • Access to secretsline 218
    [Credential-related source omitted]
  • Network accessline 220
    [Credential-related source omitted]
  • Access to secretsline 220
    [Credential-related source omitted]
  • Network accessline 221
    [Credential-related source omitted]
  • Access to secretsline 221
    [Credential-related source omitted]
  • Network accessline 222
    "Get a free key at https://build.nvidia.com"
  • Network accessline 226
    nvidia_config = ai_config.get("nvidia", {})         model = nvidia_config.get("model", "meta/llama-3.2-90b-vision-instruct")         base_url = nvidia_config.get("base_url", "https://integrate.api.nvidia.com/v1")
  • Network accessline 227
    model = nvidia_config.get("model", "meta/llama-3.2-90b-vision-instruct")         base_url = nvidia_config.get("base_url", "https://integrate.api.nvidia.com/v1")         timeout = nvidia_config.get("timeout", 180)
  • Network accessline 228
    base_url = nvidia_config.get("base_url", "https://integrate.api.nvidia.com/v1")
  • Access to secretsline 231
    [Credential-related source omitted]
  • Network accessline 242
    "Ollama backend requires the ollama package. "                 "Install with: pip install ollama\n"                 "Also ensure Ollama is running: https://ollama.com"
  • Network accessline 243
    "Install with: pip install ollama\n"                 "Also ensure Ollama is running: https://ollama.com"             )
  • Network accessline 244
    "Also ensure Ollama is running: https://ollama.com"
  • Network accessline 248
    ollama_config = ai_config.get("ollama", {})         model = ollama_config.get("model", "qwen3.5:9b")         host = ollama_config.get("host", "http://localhost:11434")
  • Network accessline 249
    model = ollama_config.get("model", "qwen3.5:9b")         host = ollama_config.get("host", "http://localhost:11434")         vision_models = ollama_config.get("vision_models")
  • Network accessline 250
    host = ollama_config.get("host", "http://localhost:11434")
  • Network accessline 273
    openai_config = ai_config.get("openai", {})         model = openai_config.get("model", "gpt-4o")         base_url = openai_config.get("base_url", "http://localhost:8000/v1")
  • Network accessline 274
    [Credential-related source omitted]
  • Network accessline 275
    base_url = openai_config.get("base_url", "http://localhost:8000/v1")
  • Access to secretsline 276
    [Credential-related source omitted]
  • Access to secretsline 279
    [Credential-related source omitted]
  • Access to secretsline 758
    [Credential-related source omitted]
  • Access to secretsline 775
    [Credential-related source omitted]
  • Access to secretsline 792
    [Credential-related source omitted]

config.example.json

  • Network accessline 9
    "groq": {       "model": "meta-llama/llama-4-scout-17b-16e-instruct",       "base_url": "https://api.groq.com/openai/v1",
  • Network accessline 10
    "model": "meta-llama/llama-4-scout-17b-16e-instruct",       "base_url": "https://api.groq.com/openai/v1",       "timeout": 120
  • Network accessline 11
    "base_url": "https://api.groq.com/openai/v1",
  • Network accessline 14
    "ollama": {       "model": "qwen3.5:9b",       "host": "http://localhost:11434"
  • Network accessline 15
    "model": "qwen3.5:9b",       "host": "http://localhost:11434"     }
  • Network accessline 16
    "host": "http://localhost:11434"

core.py

  • Executable scriptline 1
    Executable file

docs/index.html

  • Network accessline 117
    <div class="gh-row">     <a class="gh-btn" href="https://github.com/notoriouslab/doc-cleaner"
  • Network accessline 118
    <a class="gh-btn" href="https://github.com/notoriouslab/doc-cleaner"
  • Network accessline 120
    <svg viewBox="0 0 16 16" aria-hidden="true"><path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.75.75 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75
  • Network accessline 121
    星標<span class="gh-count" id="gh-stars"></span></a>     <a class="gh-btn" href="https://github.com/notoriouslab/doc-cleaner/fork"        title="到 GitHub 建立你自己的分支副本">
  • Network accessline 122
    <a class="gh-btn" href="https://github.com/notoriouslab/doc-cleaner/fork"
  • Network accessline 124
    <svg viewBox="0 0 16 16" aria-hidden="true"><path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v
  • Network accessline 125
    分支<span class="gh-count" id="gh-forks"></span></a>     <a class="gh-btn" href="https://github.com/notoriouslab/doc-cleaner/subscription"        title="到 GitHub 關注這個專案的更新(需登入)">
  • Network accessline 126
    <a class="gh-btn" href="https://github.com/notoriouslab/doc-cleaner/subscription"
  • Network accessline 128
    <svg viewBox="0 0 16 16" aria-hidden="true"><path d="M8 2c1.981 0 3.671.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.62 1.62 0 0 1 0 1.798c-.45.678-1.367 1.932-2.637 3.023C11.67 13.008 9.981 14 8 14c-1.981 0-3.671-.992-4.933-2.078C1
  • Network accessline 129
    關注<span class="gh-count" id="gh-watch"></span></a>     <a class="gh-btn" href="https://github.com/notoriouslab/doc-cleaner/releases"        title="歷來所有版本的安裝檔下載總和">
  • Network accessline 130
    <a class="gh-btn" href="https://github.com/notoriouslab/doc-cleaner/releases"
  • Network accessline 139
    <div class="dl-buttons">       <a class="dl-btn" id="btn-mac"          href="https://github.com/notoriouslab/doc-cleaner/releases/latest">
  • Network accessline 140
    <a class="dl-btn" id="btn-mac"          href="https://github.com/notoriouslab/doc-cleaner/releases/latest">          下載 macOS 版<small>Universal(Intel 與 Apple Silicon).dmg</small></a>
  • Network accessline 141
    href="https://github.com/notoriouslab/doc-cleaner/releases/latest">
  • Network accessline 142
    下載 macOS 版<small>Universal(Intel 與 Apple Silicon).dmg</small></a>       <a class="dl-btn" id="btn-win"          href="https://github.com/notoriouslab/doc-cleaner/releases/latest">
  • Network accessline 143
    <a class="dl-btn" id="btn-win"          href="https://github.com/notoriouslab/doc-cleaner/releases/latest">          下載 Windows 版<small>64 位元安裝程式 .msi</small></a>
  • Network accessline 144
    href="https://github.com/notoriouslab/doc-cleaner/releases/latest">
  • Network accessline 291
    <details>   <summary>遇到問題怎麼回報?</summary>   <p>到 <a href="https://github.com/notoriouslab/doc-cleaner/issues">GitHub
  • Network accessline 292
    <summary>遇到問題怎麼回報?</summary>   <p>到 <a href="https://github.com/notoriouslab/doc-cleaner/issues">GitHub   的 Issues 頁</a>留言(這個需要免費註冊一個 GitHub 帳號),描述你轉的是
  • Network accessline 293
    <p>到 <a href="https://github.com/notoriouslab/doc-cleaner/issues">GitHub
  • Network accessline 299
    <footer>   <p>Doc Cleaner 屬於 notoriouslab 開源工具組 ·   <a href="https://github.com/notoriouslab/doc-cleaner">原始碼與完整說明(GitHub)</a> ·
  • Network accessline 300
    <p>Doc Cleaner 屬於 notoriouslab 開源工具組 ·   <a href="https://github.com/notoriouslab/doc-cleaner">原始碼與完整說明(GitHub)</a> ·   <a href="https://github.com/notoriouslab/doc-cleaner/releases">所有版本下載</a></p>
  • Network accessline 301
    <a href="https://github.com/notoriouslab/doc-cleaner">原始碼與完整說明(GitHub)</a> ·
  • Network accessline 302
    <a href="https://github.com/notoriouslab/doc-cleaner/releases">所有版本下載</a></p>
  • Network accessline 314
    var win = document.getElementById("btn-win");   var ver = document.getElementById("ver-line");   fetch("https://api.github.com/repos/notoriouslab/doc-cleaner/releases/latest")
  • Network accessline 315
    var ver = document.getElementById("ver-line");   fetch("https://api.github.com/repos/notoriouslab/doc-cleaner/releases/latest")     .then(function (r) { if (!r.ok) throw new Error(r.status); return r.json(); })
  • Network accessline 316
    fetch("https://api.github.com/repos/notoriouslab/doc-cleaner/releases/latest")
  • Network accessline 341
    // 真正的關注數是 subscribers_count。查不到(離線、限流)就不顯示數字,   // 按鈕本身照樣可點。   fetch("https://api.github.com/repos/notoriouslab/doc-cleaner")
  • Network accessline 342
    // 按鈕本身照樣可點。   fetch("https://api.github.com/repos/notoriouslab/doc-cleaner")     .then(function (r) { if (!r.ok) throw new Error(r.status); return r.json(); })
  • Network accessline 343
    fetch("https://api.github.com/repos/notoriouslab/doc-cleaner")
  • Network accessline 356
    // 累計下載=歷來全部 release 資產的下載數加總(per_page=100 對本專案的   // 版本數綽綽有餘;超過再說)。查不到就留空,按鈕仍連到 releases 頁。   fetch("https://api.github.com/repos/notoriouslab/doc-cleaner/releases?per_page=100")
  • Network accessline 357
    // 版本數綽綽有餘;超過再說)。查不到就留空,按鈕仍連到 releases 頁。   fetch("https://api.github.com/repos/notoriouslab/doc-cleaner/releases?per_page=100")     .then(function (r) { if (!r.ok) throw new Error(r.status); return r.json(); })
  • Network accessline 358
    fetch("https://api.github.com/repos/notoriouslab/doc-cleaner/releases?per_page=100")

macapp/__init__.py

  • Executable scriptline 1
    Executable file

macapp/__main__.py

  • Executable scriptline 1
    Executable file

macapp/app.py

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    GITHUB_URL = "https://github.com/notoriouslab/doc-cleaner"

macapp/mdpreview.py

  • Executable scriptline 1
    Executable file

macapp/settings.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 77
    [Credential-related source omitted]

output/__init__.py

  • Executable scriptline 1
    Executable file

output/epub.py

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 22
    _XML_INVALID = re.compile(r"[\x00-\x08\x0B\x0C\x0E-\x1F\ud800-\udfff\ufffe\uffff]")
  • Network accessline 224
    content_opf = (             '<?xml version="1.0" encoding="UTF-8"?>\n'             '<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="pub-id" version="3.0">\n'
  • Network accessline 225
    '<?xml version="1.0" encoding="UTF-8"?>\n'             '<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="pub-id" version="3.0">\n'             '  <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">\n'
  • Network accessline 226
    '<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="pub-id" version="3.0">\n'
  • Network accessline 227
    '  <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">\n'
  • Network accessline 249
    toc_ncx = (             '<?xml version="1.0" encoding="UTF-8"?>\n'             '<ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1">\n'
  • Network accessline 250
    '<?xml version="1.0" encoding="UTF-8"?>\n'             '<ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1">\n'             '  <head>\n'
  • Network accessline 251
    '<ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1">\n'
  • Network accessline 281
    '<?xml version="1.0" encoding="UTF-8"?>\n'             '<!DOCTYPE html>\n'             f'<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" lang="{xml_esc(language)}" xml:lang="{xml_esc(language)}">\n'
  • Network accessline 282
    '<!DOCTYPE html>\n'             f'<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" lang="{xml_esc(language)}" xml:lang="{xml_esc(language)}">\n'             '<head>\n'
  • Network accessline 283
    f'<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" lang="{xml_esc(language)}" xml:lang="{xml_esc(language)}">\n'
  • Network accessline 435
    '<?xml version="1.0" encoding="UTF-8"?>\n'             '<!DOCTYPE html>\n'             f'<html xmlns="http://www.w3.org/1999/xhtml" lang="{xml_esc(language)}" xml:lang="{xml_esc(language)}">\n'
  • Network accessline 436
    '<!DOCTYPE html>\n'             f'<html xmlns="http://www.w3.org/1999/xhtml" lang="{xml_esc(language)}" xml:lang="{xml_esc(language)}">\n'             '<head>\n'
  • Network accessline 437
    f'<html xmlns="http://www.w3.org/1999/xhtml" lang="{xml_esc(language)}" xml:lang="{xml_esc(language)}">\n'

output/markdown.py

  • Executable scriptline 1
    Executable file

parsers/__init__.py

  • Executable scriptline 1
    Executable file

parsers/_platform.py

  • Executable scriptline 1
    Executable file
  • Network accessline 48
    logger.warning(             f"{format_label} 轉換需要 LibreOffice(Windows/Linux 平台)。"             "請至 https://www.libreoffice.org 下載安裝。"
  • Network accessline 49
    f"{format_label} 轉換需要 LibreOffice(Windows/Linux 平台)。"             "請至 https://www.libreoffice.org 下載安裝。"         )
  • Network accessline 50
    "請至 https://www.libreoffice.org 下載安裝。"
  • Access to secretsline 122
    [Credential-related source omitted]

parsers/_tableutil.py

  • Executable scriptline 1
    Executable file

parsers/_textutil.py

  • Executable scriptline 1
    Executable file

parsers/docx.py

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    _W = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"

parsers/dxf.py

  • Executable scriptline 1
    Executable file

parsers/epub.py

  • Executable scriptline 1
    Executable file

parsers/iwork.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 28
    [Credential-related source omitted]

parsers/jsonl.py

  • Executable scriptline 1
    Executable file

parsers/numbers.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 16
    [Credential-related source omitted]

parsers/pdf.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 179
    [Credential-related source omitted]
  • Access to secretsline 187
    [Credential-related source omitted]
  • Dangerous shell operationline 301
    "  Ubuntu: sudo apt-get install poppler-utils\n"

parsers/pptx.py

  • Executable scriptline 1
    Executable file

parsers/text.py

  • Executable scriptline 1
    Executable file

parsers/xlsx.py

  • Executable scriptline 1
    Executable file

prompts/__init__.py

  • Executable scriptline 1
    Executable file

pyproject.toml

  • Network accessline 3
    bundle = "com.notoriouslab" version = "1.7.1" url = "https://github.com/notoriouslab/doc-cleaner"
  • Network accessline 4
    version = "1.7.1" url = "https://github.com/notoriouslab/doc-cleaner" license = "MIT"
  • Network accessline 5
    url = "https://github.com/notoriouslab/doc-cleaner"

scripts/package_dmg.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/sign_and_notarize_macos.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 61
    [Credential-related source omitted]
  • Access to secretsline 62
    [Credential-related source omitted]
  • Access to secretsline 70
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]
  • Dangerous shell operationline 97
    rm -f "$ZIP"
  • Access to secretsline 110
    [Credential-related source omitted]

scripts/verify_macos_signing.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

tests/fixtures/make_pdf_table_fixtures.py

  • Executable scriptline 1
    Executable file

tests/test_collect_files_recursive.py

  • Executable scriptline 1
    Executable file

tests/test_core.py

  • Executable scriptline 1
    Executable file

tests/test_dxf.py

  • Executable scriptline 1
    Executable file

tests/test_e2e_custom_output.py

  • Executable scriptline 1
    Executable file

tests/test_epub.py

  • Executable scriptline 1
    Executable file

tests/test_epub_integration.py

  • Executable scriptline 1
    Executable file

tests/test_epub_parser.py

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    CONTAINER_NS = "urn:oasis:names:tc:opendocument:xmlns:container" OPF_NS = "http://www.idpf.org/2007/opf"
  • Network accessline 17
    OPF_NS = "http://www.idpf.org/2007/opf"
  • Network accessline 18
    DC_NS = "http://purl.org/dc/elements/1.1/"
  • Network accessline 19
    XHTML_NS = "http://www.w3.org/1999/xhtml"
  • Network accessline 20
    ENC_NS = "http://www.w3.org/2001/04/xmlenc#"

tests/test_epub_security.py

  • Executable scriptline 1
    Executable file

tests/test_iwork_parser.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 289
    [Credential-related source omitted]

tests/test_jsonl_parser.py

  • Executable scriptline 1
    Executable file
  • Network accessline 71
    def test_tool_summary_url_priority_over_prompt():     block = {"name": "WebFetch", "input": {"url": "https://example.com", "prompt": "summarise this page"}}
  • Network accessline 72
    block = {"name": "WebFetch", "input": {"url": "https://example.com", "prompt": "summarise this page"}}
  • Network accessline 73
    assert _tool_summary(block) == "🔧 WebFetch: https://example.com"

tests/test_macapp.py

  • Executable scriptline 1
    Executable file

tests/test_mdpreview.py

  • Executable scriptline 1
    Executable file
  • Network accessline 91
    def test_valid_link(self):         out = r("[site](https://e.com)")
  • Network accessline 92
    out = r("[site](https://e.com)")
  • Network accessline 93
    assert '<a href="https://e.com">site</a>' in out
  • Network accessline 126
    out = r('[x](https://e.com" onmouseover="alert(1))')

tests/test_numbers_parser.py

  • Executable scriptline 1
    Executable file

tests/test_parsers_group2.py

  • Executable scriptline 1
    Executable file

tests/test_pdf_routing.py

  • Executable scriptline 1
    Executable file

tests/test_pdf_tables.py

  • Executable scriptline 1
    Executable file

tests/test_platform.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 152
    [Credential-related source omitted]
  • Access to secretsline 154
    [Credential-related source omitted]
  • Access to secretsline 170
    [Credential-related source omitted]
  • Access to secretsline 172
    [Credential-related source omitted]

tests/test_pptx.py

  • Executable scriptline 1
    Executable file

tests/test_row_rebuild.py

  • Executable scriptline 1
    Executable file

tests/test_settings.py

  • Executable scriptline 1
    Executable file

tests/test_ssrf_allowlist.py

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    ("http://localhost/v1",               "loopback hostname"),
  • Network accessline 15
    ("http://localhost.localdomain/v1",   "loopback alias"),
  • Network accessline 17
    ("http://127.0.0.1/v1",              "loopback 127.0.0.1"),
  • Network accessline 18
    ("http://127.0.0.2/v1",              "loopback 127.0.0.2 — old code missed this"),
  • Network accessline 19
    ("http://127.255.255.255/v1",        "loopback upper end"),
  • Network accessline 21
    ("http://[::1]/v1",                  "IPv6 loopback ::1"),
  • Network accessline 23
    ("http://[::ffff:127.0.0.1]/v1",     "IPv4-mapped IPv6 loopback"),
  • Network accessline 25
    ("http://0.0.0.0/v1",               "INADDR_ANY — old code missed this"),
  • Network accessline 27
    ("http://10.0.0.1/v1",              "RFC1918 10.x"),
  • Network accessline 28
    ("http://192.168.1.100/v1",         "RFC1918 192.168.x"),
  • Network accessline 29
    ("http://172.16.0.1/v1",            "RFC1918 172.16 — lower edge"),
  • Network accessline 30
    ("http://172.31.255.255/v1",        "RFC1918 172.31 — upper edge"),
  • Network accessline 32
    ("http://[fd00::1]/v1",             "IPv6 ULA — old code missed this"),
  • Network accessline 33
    ("http://[fc00::1]/v1",             "IPv6 ULA fc00 — old code missed this"),
  • Network accessline 35
    ("http://169.254.1.1/v1",           "link-local"),
  • Network accessline 36
    ("http://[fe80::1]/v1",             "IPv6 link-local"),
  • Network accessline 38
    ("http://2130706433/v1",            "decimal int 127.0.0.1"),
  • Network accessline 39
    ("http://0x7f000001/v1",            "hex 127.0.0.1"),
  • Network accessline 40
    ("http:///v1",                      "empty host — resolves to loopback on many platforms"),
  • Network accessline 43
    ("http://127%2E0%2E0%2E1/v1",      "percent-encoded loopback dots"),
  • Network accessline 44
    ("http://%31%32%37%2e%30%2e%30%2e%31/v1", "fully percent-encoded 127.0.0.1"),
  • Network accessline 45
    ("http://0%2E0%2E0%2E0/v1",        "percent-encoded 0.0.0.0"),
  • Network accessline 46
    ("http://10%2E0%2E0%2E1/v1",       "percent-encoded RFC1918 10.x"),
  • Network accessline 47
    ("http://192%2E168%2E1%2E1/v1",    "percent-encoded RFC1918 192.168.x"),
  • Network accessline 63
    ALLOWED = [     "https://api.groq.com/openai/v1",
  • Network accessline 64
    "https://api.groq.com/openai/v1",
  • Network accessline 65
    "https://integrate.api.nvidia.com/v1",
  • Network accessline 66
    "http://my-proxy.internal.company.example.com/v1",  # hostname, not IP
  • Network accessline 67
    "https://1.2.3.4/v1",                               # public IP
  • Network accessline 68
    "https://8.8.8.8/v1",                               # public IP (Google DNS)
  • Network accessline 71
    "http://172.15.0.1/v1",
  • Network accessline 72
    "http://172.32.0.1/v1",
  • Network accessline 87
    [Credential-related source omitted]
  • Network accessline 89
    [Credential-related source omitted]
  • Access to secretsline 89
    [Credential-related source omitted]
  • Network accessline 94
    [Credential-related source omitted]
  • Network accessline 96
    [Credential-related source omitted]
  • Access to secretsline 96
    [Credential-related source omitted]
  • Network accessline 101
    [Credential-related source omitted]
  • Network accessline 103
    [Credential-related source omitted]
  • Access to secretsline 103
    [Credential-related source omitted]
  • Network accessline 110
    [Credential-related source omitted]
  • Access to secretsline 110
    [Credential-related source omitted]

tests/test_table_escaping.py

  • Executable scriptline 1
    Executable file

tests/test_table_stitching.py

  • Executable scriptline 1
    Executable file

tests/test_tableutil.py

  • Executable scriptline 1
    Executable file

tests/test_version.py

  • Executable scriptline 1
    Executable file

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 12 facts
  • Contacts api.groq.com, which SKILL.md, the README and the plugin manifest do not mentionai/groq.py:31High confidence
  • Contacts integrate.api.nvidia.com, which SKILL.md, the README and the plugin manifest do not mentionai/nvidia.py:31High confidence
  • Contacts api.groq.com, which SKILL.md, the README and the plugin manifest do not mentioncleaner.py:205High confidence
  • Contacts build.nvidia.com, which SKILL.md, the README and the plugin manifest do not mentioncleaner.py:222High confidence
  • Contacts integrate.api.nvidia.com, which SKILL.md, the README and the plugin manifest do not mentioncleaner.py:228High confidence
  • Contacts ollama.com, which SKILL.md, the README and the plugin manifest do not mentioncleaner.py:244High confidence
  • Contacts www.idpf.org, which SKILL.md, the README and the plugin manifest do not mentionoutput/epub.py:226High confidence
  • Contacts purl.org, which SKILL.md, the README and the plugin manifest do not mentionoutput/epub.py:227High confidence
  • Contacts www.daisy.org, which SKILL.md, the README and the plugin manifest do not mentionoutput/epub.py:251High confidence
  • Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentionoutput/epub.py:283High confidence
  • Contacts www.libreoffice.org, which SKILL.md, the README and the plugin manifest do not mentionparsers/_platform.py:50High confidence
  • Contacts schemas.openxmlformats.org, which SKILL.md, the README and the plugin manifest do not mentionparsers/docx.py:13High confidence
Signal confidence: 295 facts

and 245 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.