Public endpoints
Publish a local or private service on a public address while the upstream stays behind an outbound-only tunnel.
Publish services to the internet or reach them privately through outbound tunnels with identity, access policy, and connection logs managed at the edge.
npm i -g @rstreamlabs/rstream-cliInstall rstream on the machine, server, or device that can reach your local service.
rstream loginrstream project use demoAuthenticate once, then select the project that will own your endpoints and credentials.
rstream forward 8080Forward a local port and get a secure public address ready to share.
rstream is compatible with Linux, macOS and Windows. Get rstream now.
Clients
GET /image.svg
rstream edge network
accepting connection...
checking IP reputation...
checking geo policy...
verifying token...
routing upstream...
streaming response...
writing connection log...
Upstream
$ rstream forward 8080
forwarding: https://d76659d1.t.aws-global-1.c.rstream.io
waiting for connections...
new connection
$ python -m http.server 8080
Serving HTTP on 127.0.0.1:8080
GET /image.svg HTTP/1.1" 200 -
Go deeper into tunnel types, protocols, and how traffic is forwarded. Explore tunnels.
Publish a local or private service on a public address while the upstream stays behind an outbound-only tunnel.
Let authenticated CLI and SDK clients dial named services without publishing them or creating a managed Layer 3 network.
Keep origins off the public Internet. Agents establish the connection from inside the environment, so no inbound firewall rule is required.
Verify people and machines at the edge, apply scoped access policy, then relay approved traffic to the private side.
Use one runtime for HTTP, WebSocket, TCP, TLS, QUIC, DTLS, WebTransport, and private stream or datagram workloads.
Inspect routing and policy decisions in connection logs, follow live events, and track operational trends through metrics and webhooks.
Learn the core building blocks behind tunnels, agents, and edge routing. Explore the docs.




Keep upstreams behind outbound agent connections and protect the agent-to-edge path with encrypted transport.
Authenticate browser users with rstream Auth and machines with scoped tokens or mutual TLS before traffic is routed.
Limit discovery, creation, and access permissions to specific tunnels, labels, and operations.
Restrict supported entrypoints by trusted IP ranges and geographic rules before they reach upstream services.
Use client certificates for agent control-channel authentication and for published tunnel access policies.
Record enforcement decisions, then rotate or revoke credentials as access requirements change.
Dive deeper into zero-trust access, rstream Auth, tokens, and enforcement rules at the edge. Read security docs.
Give a local application a stable public address for webhooks, previews, demos, QA, or external integrations without changing the surrounding network.
Dial internal services by name from authenticated applications and operators while the service remains unavailable to public clients.
Reach machines and devices through WebTTY, private tunnels, and APIs while each remote environment keeps an outbound-only connection.
Give agents scoped access to local services, remote machines, GPU runners, and device-local tools, with observable access and task cleanup.

Explore practical examples for WebRTC video, computer vision, private AI infrastructure, database access, and remote operations. Browse the guides.
Declarative tunnels
Define tunnels as configuration that stays in sync with deployments. rstream reconciles desired state and applies updates as services change, using YAML, Docker labels, and Kubernetes custom resources. Protocols, upstream targets, publishing, identity, and access policy live in versioned configuration.
Declare protocol, upstream target, publishing, and access policy in a versioned specification.
Attach tunnel configuration to services through labels so tunnel state follows the runtime stack.
Expose Services with RstreamConnection and RstreamTunnel resources while the operator manages agents and status.
Keep tunnel state aligned as services change, avoiding drift and ad-hoc tunnel sprawl.
version: 1
tunnels:
- name: "http-server"
forward: "127.0.0.1:8080"
tunnel:
publish: true
protocol: "http"
labels:
app: "http-server"
http:
version: "http/1.1"
auth:
token: true
rstream: true
Move from ad-hoc setup to reconciled connectivity that stays aligned over time. Learn declarative tunnels.
rstream WebTTY
rstream WebTTY provides browser-based terminal access for managing machines and fleets. It enables secure remote command-line access without inbound ports or network reconfiguration, and sessions can be opened from the web dashboard, the CLI, or an SDK integration with identity and policy enforced at the entrypoint.
Open remote terminal sessions directly from a browser, without requiring local SSH setup.
Use a consistent access path for machines and devices across environments, with identity and policy applied at the entrypoint.
Keep inbound ports closed. The WebTTY server establishes connectivity outbound.
Open sessions from the dashboard, from the CLI, or embed access paths into tooling through SDK integration.
root@a11c63224a2b:/# /bin/bash -i -c "$(curl -fsSL https://rstream.io/scripts/install-debian.sh)"
- detected curl
- installing gnupg for gpg verification...
Reading package lists...
Building dependency tree...
Reading state information...
debconf: delaying package configuration, since apt-utils is not installed
Setting up adduser (3.137ubuntu1) ...
Setting up libksba8:arm64 (1.6.6-1build1) ...
Setting up pinentry-curses (1.2.1-3ubuntu5) ...
Setting up libsqlite3-0:arm64 (3.45.1-1ubuntu2.5) ...
Setting up gnupg-l10n (2.4.4-2ubuntu17.4) ...
Setting up readline-common (8.2-4build1) ...
Setting up gnupg-utils (2.4.4-2ubuntu17.4) ...
Setting up libreadline8t64:arm64 (8.2-4build1) ...
Setting up gpgconf (2.4.4-2ubuntu17.4) ...
Setting up gpg (2.4.4-2ubuntu17.4) ...
Setting up gpg-agent (2.4.4-2ubuntu17.4) ...
Setting up gpgsm (2.4.4-2ubuntu17.4) ...
Setting up dirmngr (2.4.4-2ubuntu17.4) ...
Setting up keyboxd (2.4.4-2ubuntu17.4) ...
Setting up gnupg (2.4.4-2ubuntu17.4) ...
Setting up gpg-wks-client (2.4.4-2ubuntu17.4) ...
Processing triggers for libc-bin (2.39-0ubuntu8.7) ...
- installation summary:
- package name : rstream
- package channel : stable
- package version : latest
- os : ubuntu
- dist : noble
- arch : arm64
- installing apt-transport-https...For a live walkthrough, open the Web Remote Terminal demo.
Protocol coverage
Publish or privately dial web, stream, and datagram workloads through one access model, with managed STUN and TURN for real-time systems.
Web
Streams
Realtime
Security & observability
Authenticate people and machines, enforce edge policy, then trace connection decisions through logs, metrics, events, and signed webhooks.
Connection logs · Metrics · Signed webhooks
Remote operations
Reach WebTTY servers behind NAT from the browser, CLI, or an SDK while the remote machine keeps an outbound-only connection.
› rstream webtty client \
--url rstrm://edge-node
connected to edge-node
identity verified · session ready
› _
Optional E2E
No inbound port
Agent-native workflows
Give Codex, Claude Code, and other MCP clients scoped access to local services, remote machines, and device-local tools, with task cleanup attached.
Codex
Claude Code
rstream
MCP · Skills · SDKs
Local service
Remote machine
Device-local MCP
Bring rstream into the stack you already run through the CLI, Kubernetes Operator, run/watch controllers, or native SDKs. Every client runtime is open source and available for inspection. Explore the SDKs. Review the source. Read the specification.
Ideal for individuals and small projects that need hosted access, WebTTY, and 24-hour logs.
Free
Designed for small teams requiring full protocol support, strong security controls, and support.
$49 / month
Limited launch offer — locked forever for early users
For organizations requiring dedicated capacity, workspace-level billing, protected data, audit, and source review.
Custom
Prices are listed in US dollars. Applicable taxes may be added. Invoices are provided in the dashboard after purchase. Delete a paid project from the dashboard to stop its future billing.
Compare managed plans, limits, and feature availability. View pricing.
Need to run entirely inside your own perimeter? The free Community Edition is available as a separate self-hosted runtime.
For more detailed information, refer to the documentation.
CLI installation · View all methods
/bin/sh -i -c "$(curl -fsSL https://rstream.io/scripts/install.sh)"