← Back to Skills Marketplace
nagellack5c

LAN Media Server

by nagellack5C · GitHub ↗ · v1.0.0
cross-platform ✓ Security Clean
1121
Downloads
0
Stars
3
Active Installs
1
Versions
Install in OpenClaw
/install lan-media-server
Description
Share images, screenshots, and files from the AI workspace to users on the local network via HTTP. Use when the agent needs to show images, browser screenshots, or any files to the user and the current channel doesn't support inline media (e.g., webchat, CLI). Starts a lightweight Node.js static file server on LAN, managed by systemd. Drop files in the shared directory and send the user a clickable URL.
README (SKILL.md)

LAN Media Server

Lightweight HTTP file server for sharing agent-generated media (screenshots, images, documents) with users on the local network.

Why

Many AI assistant channels (webchat, CLI, SSH) can't display inline images. This skill solves that by serving files over HTTP on your LAN — drop a file, send a link.

Quick Start

bash scripts/setup.sh

This creates the shared directory, installs the server script, creates a systemd user service, and starts it.

Default config:

  • Port: 18801
  • Serve directory: $HOME/projects/shared-media
  • Accessible at: http://\x3CLAN_IP>:18801/\x3Cfilename>

Override with environment variables:

MEDIA_PORT=9090 MEDIA_ROOT=/tmp/media bash scripts/setup.sh

Usage Pattern

When you need to show an image or file to the user:

  1. Save/copy the file to the shared media directory
  2. Send the user a link: http://\x3Cserver-LAN-IP>:\x3Cport>/\x3Cfilename>

Example for browser screenshots:

cp /path/to/screenshot.jpg ~/projects/shared-media/my-screenshot.jpg
# Then send: http://192.168.1.91:18801/my-screenshot.jpg

Use descriptive filenames — the directory is flat and user-visible.

Management

# Check status
systemctl --user status media-server

# Restart
systemctl --user restart media-server

# View logs
journalctl --user -u media-server -f

# Stop and disable
systemctl --user stop media-server
systemctl --user disable media-server

Security Notes

  • Serves files only on LAN (0.0.0.0 but typically behind NAT)
  • No authentication — don't put sensitive files in the shared directory
  • Path traversal is blocked (files must be under MEDIA_ROOT)
  • No directory listing — must know the exact filename
Usage Guidance
This skill appears to do what it claims, but take these precautions before installing: - Be careful what you put in the shared directory — there is no authentication. Do not store sensitive files there. - The server binds to 0.0.0.0 by default (all interfaces). If the host has a public-facing interface or is on an untrusted network, restrict access with a firewall or change MEDIA_ROOT/port and network rules. Consider binding to 127.0.0.1 and using an SSH tunnel for remote access if you need secure access. - The systemd user service runs as your user and will restart automatically; enabling lingering (to survive logouts/reboots) requires sudo and increases persistence—only enable it if you understand the implications. - The SERVICE unit takes MEDIA_ROOT as provided; do not set MEDIA_ROOT to a broad path like / or other sensitive system locations. - Inspect the service file ($HOME/.config/systemd/user/media-server.service) and the server script before enabling to confirm the configured MEDIA_ROOT and port. If you accept those trade-offs, the skill is coherent and reasonable for sharing non-sensitive media on a trusted LAN.
Capability Analysis
Type: OpenClaw Skill Name: lan-media-server Version: 1.0.0 The skill bundle is benign. It sets up a local Node.js HTTP server via a systemd user service to share files from a designated directory on the LAN. The `SKILL.md` clearly describes the purpose and usage, with no prompt injection attempts. The `scripts/setup.sh` script correctly configures and starts the service, and the `scripts/server.js` implements robust path traversal prevention, blocks directory listing, and sets appropriate security headers (e.g., CSP, X-Content-Type-Options). There is no evidence of data exfiltration, malicious execution, or unauthorized persistence.
Capability Assessment
Purpose & Capability
Name/description match the included files and instructions. The server and setup script only require Node.js and user-level systemd control, which are appropriate for a LAN file server.
Instruction Scope
SKILL.md instructs the agent to run scripts/setup.sh to create a user systemd service and to drop files into the shared directory. The instructions do not attempt to read unrelated files or exfiltrate data, but they do advise enabling systemd lingering (optional) and will create/enable a user service which gives persistent background execution (expected for this purpose).
Install Mechanism
No remote downloads or package installs are performed by the provided setup script; it only writes a systemd user unit and relies on an existing local Node.js binary. This is a low-risk, local-only install mechanism.
Credentials
No credentials or sensitive environment variables are requested. MEDIA_PORT and MEDIA_ROOT can be overridden by the user (as expected). There are no unexplained secrets or unrelated env requirements.
Persistence & Privilege
The skill installs a systemd user service and enables it so the server restarts automatically; this is appropriate for a persistent file server but does grant ongoing background execution under the user account. It does not request system-wide (root) privileges, though the script suggests enabling lingering (which requires sudo) if the user wants the service to survive reboots/logouts.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install lan-media-server
  3. After installation, invoke the skill by name or use /lan-media-server
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
lan-media-server 1.0.0 - Initial release of a lightweight HTTP server to share agent-generated images, screenshots, and files over local network. - Includes setup script for installation and automatic systemd user service management. - Default configuration serves files from `$HOME/projects/shared-media` on port `18801`; customizable via environment variables. - Simple usage instructions: drop files in the shared directory, send a network-accessible link to users. - Focus on ease-of-use for channels that can’t display media inline, with built-in security features (LAN-only, path traversal prevention, no directory listing).
Metadata
Slug lan-media-server
Version 1.0.0
License
All-time Installs 4
Active Installs 3
Total Versions 1
Frequently Asked Questions

What is LAN Media Server?

Share images, screenshots, and files from the AI workspace to users on the local network via HTTP. Use when the agent needs to show images, browser screenshots, or any files to the user and the current channel doesn't support inline media (e.g., webchat, CLI). Starts a lightweight Node.js static file server on LAN, managed by systemd. Drop files in the shared directory and send the user a clickable URL. It is an AI Agent Skill for Claude Code / OpenClaw, with 1121 downloads so far.

How do I install LAN Media Server?

Run "/install lan-media-server" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is LAN Media Server free?

Yes, LAN Media Server is completely free (open-source). You can download, install and use it at no cost.

Which platforms does LAN Media Server support?

LAN Media Server is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created LAN Media Server?

It is built and maintained by nagellack5C (@nagellack5c); the current version is v1.0.0.

💬 Comments