🔗 PyServeX
The zero-config file server that lives in your Downloads folder.
Share a folder with your LAN, your phone, or the whole world — from one pure-Python process. No accounts, no database, no Docker, no build step.
A real render of the PyServeX homescreen (Liquid Glass UI).
📦 pip install · 🐍 Python 3.8+ · ⚖️ MIT
✨ Why PyServeX?
| 🚀 Instant | pyservx and you're sharing. A QR code is even printed for your phone. |
| 🏠 LAN-friendly | Devices on your network never see a login screen. |
| 🔒 Secure by default | Anyone outside your network must authenticate. |
| 🔌 Zero dependencies | Pure Python stdlib. Optional extras only if you want them. |
| 🧩 A Swiss-army knife | Uploads, P2P, SFTP, tunnels, search, trash, AI-agent hooks. |
🎯 What you can do
- 📥 Resumable uploads — big files survive drop-outs; drag-and-drop whole folders, too.
- 🤝 Peer-to-peer transfers — bytes travel device-to-device over an encrypted WebRTC channel.
- ⏳ One-time links —
/e/<token>URLs that self-destruct after use. - 🔎 Instant search — names and file contents, indexed in the background.
- 🗑️ Trash + version history — undo deletions, roll back edits.
- 🔴 Live refresh — the page updates itself when files change.
- 🖥️ SSH / SFTP —
sftp://host:2222with standard tools, jailed to the share. - 🌍 Public tunnel — a real
https://…URL without a public IP. - 🤖 MCP bridge — point Claude or Cursor at
/mcpand let an agent browse/edit files. - 🔑 API tokens — bearer auth for scripts and integrations.
- 📝 Web editor + notepad — quick text edits from any device.
🚀 Quick start
pip install pyservx
pyservx # starts on :8088, shares ~/Downloads/PyServeX-Shared
Open the printed URL — http://<this-machine-ip>:8088 — or scan the QR code with your phone.
On your LAN you're in immediately. Everyone else gets the login page; create your admin account with:
pyservx --username admin --password "change-me"
Useful flags
| Flag | Effect |
|---|---|
--port 9000 |
Change the HTTP port (default 8088) |
--limit-speed 2M |
Cap every download (e.g. 2M, 500K) |
--ssh --ssh-port 2222 |
Also expose SFTP/SCP |
--tunnel |
Public https:// link (needs cloudflared / Tailscale / ngrok) |
--remote-bridge |
Browse another machine's SFTP from the UI (off by default) |
--dashboard |
Live stats terminal dashboard |
--local-only |
Keep auth on, but trust everyone (no logins) |
Full reference: pyservx --help. Settings persist across runs in ~/.pyservx_config.json.
🔐 How authentication works
- On your LAN (192.168.x, 10.x, 172.16–31.x, localhost) — no login, ever.
- Outside — session cookie or
Authorization: Bearer <token>(issue tokens on the/tokenspage). - Trust an extra subnet with
--allowed-networks 10.0.0.0/8. - Failed logins are rate-limited per IP (5 tries → 5-minute lockout).
Risky files never execute in your browser: scripts and executables download as attachments, web-y files open in a sandboxed viewer, and every response carries hardening headers.
🤖 Use it from an AI coding agent
PyServeX speaks MCP at POST /mcp:
list_files,read_file,write_file,upload_file,search_files,server_info— all jailed to the shared folder.
Point your agent's MCP client at http://<host>:8088/mcp and it can work with your files through the same safety gates as the web UI.
🧪 Development & testing
git clone https://github.com/SubZ3r0-0x01/pyservx.git
cd pyservx
pip install -e .[ssh,dashboard]
python -m pytest tests -q # unit + endpoint tests
python tests/integration_smoke.py # 53 real-server checks
📁 Where your data lives
~/Downloads/PyServeX-Shared (shared) · ~/.pyservx_config.json (settings) · ~/.pyservx_tokens.db (tokens) · ~/.pyservx_uploads/ (in-flight uploads) · ~/.pyservx_trash/ (trash) · ~/.pyservx_versions/ (version history) · ~/.pyservx_logs/ (access log)
📜 License & links
MIT · Source & issues · Changelog · Contributing · Security
Built on the Python standard library. Optional extras: paramiko (SSH) and rich (dashboard).
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyservx-4.0.0.tar.gz.
File metadata
- Download URL: pyservx-4.0.0.tar.gz
- Upload date:
- Size: 97.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0bd7dcd18d65a961e24619857c5c89be081222c5137fae25cdd71fabdfd5671
|
|
| MD5 |
c1f5768aca61dbc4d22c9c3b2b0ea2a6
|
|
| BLAKE2b-256 |
dc030b896bd4a098fe450e291789c3ab66a118896150997f0ea140eac998e76d
|
File details
Details for the file pyservx-4.0.0-py3-none-any.whl.
File metadata
- Download URL: pyservx-4.0.0-py3-none-any.whl
- Upload date:
- Size: 93.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c48c1904e391230012efad2a125df97cfa8aaed3bb1e0a3404eb7c245af63e2
|
|
| MD5 |
36bf51ca9ec0ffe9f4677a8c75f0f1ca
|
|
| BLAKE2b-256 |
d37132254f493516bd6a9e958606b1b70c8043b8d973d7d678353c924c6ff8dc
|