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
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 | |
|---|---|---|---|
| docnet-0.3.0.tar.gz | 56.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| docnet-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
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
|