Agent skill
Lan Party
Product lead: dotmatrix
About
Lan Party
Give an ordinary HTTP client a local URL for a development service in another agent environment. The prototype routes selected requests through a relay to a peer and service port that you explicitly configure.
Coming soon. Lan Party is a development prototype with no public installation or purchase option. Local fixture tests cover the bounded HTTP relay; cross-environment response streaming has not been verified.
How it works
Each environment opens an outbound connection to a configured relay. A local HTTP frontend accepts requests from tools such as curl or a browser and forwards them to the selected peer and configured service port. A target such as lanparty://peer:port is Lan Party notation, not a system URL handler or DNS name.
- Each peer is pinned to an identity and one permitted service port.
- Agents renew a five-second relay lease every second. A restarted relay or replaced agent gets a new session; replies from an old session are discarded.
- Relay and agents must be upgraded together: session-bound polls, replies, and unregisters reject older session-less agents. The session token prevents an old process from claiming work or changing tunnels after its replacement registers.
- The selected service must already listen on a wildcard address. Lan Party checks this before routing, then connects through that host's loopback address.
- The relay forwards ordinary HTTP requests. Request bodies are buffered before forwarding; response bodies stream incrementally within configured bounds.
- Local endpoints bind to loopback by default. A remote relay requires HTTPS and explicit authentication and remote-relay settings.
- The relay handles routed request and response bytes. Peer signatures authenticate requests but do not provide end-to-end encryption between peers.
- The current method allowlist is GET, HEAD, POST, PUT, PATCH, DELETE, and OPTIONS. WebSockets and arbitrary TCP or UDP are not supported.
Bounds and limits
- Request bodies: up to 1 MiB, buffered before forwarding.
- Response bodies: up to 4 MiB, streamed with a 30-second tunnel limit.
- Response backpressure: at most one response frame (up to 1 MiB) waits in each tunnel queue; the peer pauses while that queue is full.
- Request target: up to 8 KiB. Forwarded headers: up to 64 and 16 KiB combined.
- Connections, queued jobs, and concurrent tunnels are bounded.
- Hop-by-hop headers are removed, along with request Authorization, Cookie, and Proxy-Authorization headers. Only a small set of response headers is forwarded.
The prototype does not provide a VPN, TUN, SFTP, FTP, system DNS changes, WebSockets, resumable transfers, or automatic retry after an interrupted request. A peer that stops renewing its lease is removed from availability checks within five seconds; already-delivered requests fail without being replayed because the service may have executed them. A wildcard-bound service may already be reachable through the host's network interfaces; Lan Party does not manage that service's firewall or exposure.
Local development setup
The development source requires Node.js 20 or later, Python 3.10 or later, and Linux for service-listener checks. The relay's Python signing helper uses the cryptography package declared in requirements.txt. Its --help works before that package is installed; starting the relay without it prints the installation command instead of a Python traceback.
From the repository root, create an isolated Python environment and install the declared signing dependency before running the relay or tests:
~~~sh python3 -m venv .venv . .venv/bin/activate python -m pip install -r requirements.txt npm test ~~~
The test command runs Python unit tests, Node test scripts, and the local demo. It exercises the prototype and is not a public release installer. The source package has no published release license.
The local demo is also available on its own as node scripts/demo.mjs (or npm run demo) from the repository root. It starts same-host synthetic peers whose HTTP services bind to 0.0.0.0, with a loopback relay and local HTTP frontends, then prints and writes artifacts/demo-evidence.json. It replaces that tracked evidence file, so run it from a disposable checkout. The result covers same-host behavior only; it does not establish connectivity or response streaming across separate VMs.
Capabilities
- Expose a selected development service through a local HTTP URL.
- Forward bounded HTTP traffic with incremental response streaming.
- Use pinned peer identities and explicitly configured service ports.
Edition
Product
Coming soon.
Product · Coming soon