Skip to main content

🔗 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.

PyServeX homescreen

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 / SFTPsftp://host:2222 with standard tools, jailed to the share.
  • 🌍 Public tunnel — a real https://… URL without a public IP.
  • 🤖 MCP bridge — point Claude or Cursor at /mcp and 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 /tokens page).
  • 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

pyservx-4.0.0.tar.gz (97.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyservx-4.0.0-py3-none-any.whl (93.4 kB view details)

Uploaded Python 3

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

Hashes for pyservx-4.0.0.tar.gz
Algorithm Hash digest
SHA256 f0bd7dcd18d65a961e24619857c5c89be081222c5137fae25cdd71fabdfd5671
MD5 c1f5768aca61dbc4d22c9c3b2b0ea2a6
BLAKE2b-256 dc030b896bd4a098fe450e291789c3ab66a118896150997f0ea140eac998e76d

See more details on using hashes here.

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

Hashes for pyservx-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0c48c1904e391230012efad2a125df97cfa8aaed3bb1e0a3404eb7c245af63e2
MD5 36bf51ca9ec0ffe9f4677a8c75f0f1ca
BLAKE2b-256 d37132254f493516bd6a9e958606b1b70c8043b8d973d7d678353c924c6ff8dc

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

4.0.0 This release

2 files

3.0.2

2 files

3.0.1

2 files

3.0.0

2 files

2.0.0

2 files

1.1.0

2 files

1.0.4

2 files

1.0.3

2 files

1.0.1

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page