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.2.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.2.0.tar.gz | 56.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| docnet-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 84.8 kB
Release files / docnet-0.2.0.tar.gz
| Download URL | docnet-0.2.0.tar.gz |
|---|---|
| Size | 56.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
64f0e2e4bfcec25da57ae00bb778b8a6da004e72099df580c3ca21217d13b617
|
|
BLAKE2b-256 checksum How to use checksums |
8d40a004043a25405bd1b976d3471ba52f3bf174d481849635552c560130e9b3
|
| 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.2.0-py3-none-any.whl
| Download URL | docnet-0.2.0-py3-none-any.whl |
|---|---|
| Size | 28.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e181060f1f088e3a5d78835e6ed0a081cb2619b9d6fdb573687b4ad21ae613a3
|
|
BLAKE2b-256 checksum How to use checksums |
20f3eacabe729becf9a3a460e75526e0078c8d89edcc9022af0a116d49e820a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|