DocNet
Instant local file wiki. Point it at any folder and get a clean, searchable browser for all your files.
pip install docnet
docnet ~/notes
Features
- Zero config — just run it in a directory
- Multi-filetype — markdown, code (20+ languages), CSV, JSON, images, PDFs
- HTML rendering —
.htmlfiles render live, with a toggle to view source - Live reload — edit a file on disk and the open page refreshes itself
- Reader mode — hide the sidebar for a clean, website-like view (
--readeror the ☰ button) - Full-text search — search filenames and file content with highlighted snippets
- 5 themes — light, dark, ocean, forest, rose
- Recent pages — sidebar tracks what you've visited
- Quality of life — copy buttons on code blocks, hover anchors on headings, per-file download
- Safe — path traversal protection, never serves files outside the target directory
Usage
docnet # serve current directory
docnet ~/notes # serve a specific folder
docnet ~/notes -p 8080 # custom port
docnet ~/notes --host 0.0.0.0 # expose on local network (share with phone etc.)
docnet ~/notes --reader # start with the sidebar hidden (website-like)
docnet ~/notes --no-browser # don't auto-open browser
docnet --version
File support
| Type | Extensions |
|---|---|
| Markdown | .md (with mermaid diagrams) |
| Code | .py .js .ts .jsx .tsx .rs .go .java .c .cpp .rb .php .swift .kt .sh .css .scss |
| Web | .html .htm (rendered live, with source toggle) |
| Data | .json .yaml .toml .csv |
| Images | .png .jpg .gif .webp .svg |
| Documents | .pdf .txt .log |
Run from Python
Instead of the CLI, you can launch DocNet from a script:
from docnet import serve
serve("~/notes", port=8080, reader=True) # blocks until Ctrl+C
serve() accepts directory, port, host, reader, open_browser, and debug.
Pass open_browser=False to skip auto-opening a tab (e.g. headless).
Need the raw Flask app (for gunicorn/uWSGI or tests)? Use the factory:
from docnet import create_app
app = create_app("~/notes") # a standard Flask app
Home page
If a Home.md exists in the directory it's shown on launch. Otherwise an auto-generated index of all files is shown.
Install from source
git clone https://github.com/yourname/docnet
cd docnet
pip install -e .
License
MIT
Metadata
Release files for docnet 0.3.0
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 | Actions |
|---|---|---|---|---|
| docnet-0.3.0.tar.gz | 56.2 kB | Without provenance | Details for docnet-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| docnet-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for docnet-0.3.0-py3-none-any.whl |
Total release size: 84.9 kB
Release files / docnet-0.3.0.tar.gz
| Download URL | docnet-0.3.0.tar.gz |
|---|---|
| Size | 56.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6f955bb29b0f11bcf482cbc603319f8b12f3c73680ed67e3a43bd862b4760aa0
|
|
BLAKE2b-256 checksum How to use checksums |
c7c91316a98c9558fb2d69c18a87bba174f9ce50b4490820b0a69aabca767f18
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / docnet-0.3.0-py3-none-any.whl
| Download URL | docnet-0.3.0-py3-none-any.whl |
|---|---|
| Size | 28.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4de5d7ee54098d92dd1858759e1db86426bc3a4cc2227c47b5cd958d46b5cb9a
|
|
BLAKE2b-256 checksum How to use checksums |
0ac454ebf6f5a0893bd447f2dec96ddcc86a7d6616ec15f888ce7cbc84f11d88
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for docnet 0.3.0
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.