360 Secure SkillHub
360 安全技能中心

HLE Tunnel

使用 hle-client 将本地端口(如 Agent 控制台 18789)经 HLE 隧道暴露为带自动 HTTPS 的公开地址,并通过 SSO、PIN、分享链接或 Basic Auth 控制访问;支持 CLI 与 Docker/Compose 两种运行方式,需要 HLE 账号与 API key。

jspanos
jspanos
热度 60.52
最近更新 2026-05-17 13:27:52
分类:自动化依赖:代码执行 / 第三方 API应用场景:工作流 / DevOps

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add hle-tunnel
Metadata
name
hle-tunnel
description
Access your AI agent's web UI from anywhere and share it securely — automatic HTTPS, SSO access control, no VPN or port forwarding needed.
version
1.2.0
emoji
🌐
homepage
https://hle.world/docs/integrations/openclaw
user-invocable
true
skillKey
hle
metadata
{"openclaw":{"requires":{"anyBins":["hle","pipx","pip"],"env":["HLE_API_KEY"]},"install":[{"kind":"brew","formula":"hle-world/tap/hle-client","bins":["hle"]},{"kind":"uv","package":"hle-client","bins":["hle"]}]}}

HLE Tunnel

Access your agent's web UI from anywhere and share it with others — secure remote access with automatic HTTPS and SSO, powered by HLE (Home Lab Everywhere).

When to use

Use this skill when the user wants to:

  • Access their agent's Control UI (port 18789) remotely — from a phone, laptop, or another network
  • Share their agent UI with a friend or collaborator via SSO (Google, GitHub)
  • Expose any local service the agent manages — Home Assistant, Grafana, Portainer, Jupyter, dev servers
  • Manage tunnel access control (SSO, PIN, share links, basic auth)

Do not use this skill for general networking, port forwarding within a LAN, or VPN setup.

Setup

Before exposing services, the user needs an HLE account and API key:

  1. Sign up at https://hle.world and create an API key in the dashboard
  2. Run hle auth login to save the key (opens browser), or set the HLE_API_KEY environment variable

Check auth status with hle auth status.

Usage

Access your agent UI remotely

# Expose the Control UI so you can access it from anywhere
hle expose --service http://localhost:18789 --label my-agent

# Share access with a collaborator via SSO
hle expose --service http://localhost:18789 --label my-agent \
  --allow friend@gmail.com

# Allow multiple people
hle expose --service http://localhost:18789 --label my-agent \
  --allow teammate1@company.com --allow teammate2@company.com

The command runs in the foreground and prints the public URL (e.g. https://my-agent-x7k.hle.world). Anyone you --allow can log in via Google or GitHub SSO — no account sharing needed.

Expose services your agent manages

# Home Assistant
hle expose --service http://localhost:8123 --label ha \
  --allow you@gmail.com

# Grafana dashboard — share with your team
hle expose --service http://localhost:3000 --label grafana \
  --allow dev1@company.com --allow dev2@company.com

# Dev server — share with a client for a demo
hle expose --service http://localhost:3000 --label dev \
  --allow client@company.com

# Jupyter notebook — share with a colleague
hle expose --service http://localhost:8888 --label notebook \
  --allow colleague@company.com

List active tunnels

hle tunnels

Access control

# Allow a specific email to access a tunnel via SSO
hle access add my-agent-x7k friend@example.com

# Set a PIN for quick access
hle pin set my-agent-x7k

# Create a temporary share link (expires in 24h by default)
hle share create my-agent-x7k --duration 1h --max-uses 5

# Set HTTP Basic Auth
hle basic-auth set my-agent-x7k

Common options for hle expose

Flag Description
--service URL Local service URL (required)
--label NAME Subdomain label (e.g. my-agent -> my-agent-x7k.hle.world)
--auth sso|none Auth mode (default: sso)
--allow EMAIL Allow email for SSO access (repeatable)
--websocket/--no-websocket WebSocket proxying (default: on)
--verify-ssl Verify local service SSL cert
--upstream-basic-auth USER:PASS Inject Basic Auth to upstream
--forward-host Forward browser Host header to local service

Run with Docker

If Docker is available, you can run HLE as a container instead of installing the CLI.

Headless (tunnels only, no UI)

docker run -d \
  --name hle \
  -e HLE_API_KEY=your_key_here \
  -v hle-data:/data \
  ghcr.io/hle-world/hle-docker:headless

# Expose your agent's Control UI running on the Docker host
docker exec hle hle expose \
  --service http://host.docker.internal:18789 \
  --label my-agent \
  --allow you@gmail.com

With Web UI

docker run -d \
  --name hle \
  -p 8099:8099 \
  -e HLE_API_KEY=your_key_here \
  -v hle-data:/data \
  ghcr.io/hle-world/hle-docker:latest

Open http://localhost:8099 to manage tunnels from a browser.

Docker Compose

services:
  hle:
    image: ghcr.io/hle-world/hle-docker:headless
    restart: unless-stopped
    volumes:
      - hle-data:/data
    environment:
      - HLE_API_KEY=your_key_here

volumes:
  hle-data:

Important notes

  • The hle expose command runs in the foreground. To run as a background service, use nohup, tmux, screen, or a process manager.
  • Self-signed certificates on local services are accepted by default (no --verify-ssl needed).
  • The public URL format is https://<label>-<user_code>.hle.world.
  • By default, only you (the account owner) can access the tunnel. Use --allow to grant access to others via SSO.
  • API key can be set via --api-key flag, HLE_API_KEY env var, or ~/.config/hle/config.toml.

Installation

If hle is not installed:

# Homebrew (macOS/Linux)
brew install hle-world/tap/hle-client

# pip/pipx
pipx install hle-client
# or: pip install hle-client