LinkWeaver 🕸️
LinkWeaver finds URLs in Markdown files and uses MarkItDown to turn the URL content into a local Markdown file.
📦 Install
Use uvx if you only want to run LinkWeaver once.
uvx linkweaver notes.md
If you use uv tools, install LinkWeaver once and run it from anywhere.
uv tool install linkweaver
You can also install the package from PyPI.
pip install linkweaver
🚀 Quick start
Process one file.
linkweaver notes.md
When you run this command, LinkWeaver creates a notes-resources/ folder next to notes.md. LinkWeaver saves one .md file in that folder for each URL.
Run it with uvx without installing anything too!
uvx linkweaver notes.md
List all unique URLs in your files.
linkweaver --list-links notes/*.md
Save all resource files to one folder.
linkweaver -o resources notes.md
Download files again even when they already exist.
linkweaver --force notes.md
Preview the work without writing files or fetching URLs.
linkweaver --dry-run notes.md
🧰 Common tasks
Preview the first 10 URLs across Markdown files.
linkweaver --list-links *.md | head -10
See which URLs LinkWeaver would fetch or skip.
linkweaver --dry-run notes.md
Preview a run that would download existing files again.
linkweaver --force --dry-run notes.md
Turn off retries.
linkweaver --retries 0 notes.md
Run with less output and 5 retries.
linkweaver --quiet --retries 5 notes.md
Process several files.
linkweaver *.md
📁 Output files
For each input file, LinkWeaver creates a resource folder. When you process notes.md, you get this folder.
notes.md
notes-resources/
├── example.com-page-title.md
├── github.com-user-repo.md
└── youtube.com-watch-v-abc123.md
Use -o DIR or --output-dir DIR to put all resource files in one folder.
In each resource file, you get:
- The file name is based on the URL.
- You can see the source URL.
- You can read the content as Markdown.
- You can see error details if the download failed.
A resource file looks like this.
# Example Page Title
**Source:** https://example.com/page/title
[Converted markdown content here...]
📜 License
MIT. See LICENSE.
Metadata
Release files for linkweaver 0.6.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| linkweaver-0.6.1.tar.gz | 10.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| linkweaver-0.6.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.6 kB
Release files / linkweaver-0.6.1.tar.gz
| Download URL | linkweaver-0.6.1.tar.gz |
|---|---|
| Size | 10.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1764099954dd6fafff9b83997f27a93eea1b93bc9696b599c503c7e5bb95ceb2
|
|
BLAKE2b-256 checksum How to use checksums |
c93e2ab0f41736073e9504fc48557022519ded60060d43687cf5794471d51498
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / linkweaver-0.6.1-py3-none-any.whl
| Download URL | linkweaver-0.6.1-py3-none-any.whl |
|---|---|
| Size | 8.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c03990a30bc17a06dbe90789bd5020776084a755b39d72943905cddd14c8dbb4
|
|
BLAKE2b-256 checksum How to use checksums |
e2d695c51cffcc9835f3f523228c4f3c54ead5dfe0b21e688742af438181159a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for linkweaver 0.6.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.