Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
alsk1992 avatar

Remote

  • 13 installs
  • 610 repo stars
  • Updated June 26, 2026
  • alsk1992/cloddsbot

remote is a Claude skill that manages SSH, ngrok, Cloudflare, and localtunnel tunnels to expose and control access to a local instance.

About

This skill manages remote access to a local instance through SSH tunnels, ngrok, Cloudflare tunnels, and localtunnel. Developers use /remote commands or a TypeScript API to create tunnels, list and check them, get public URLs, forward ports, and close tunnels. It supports auto-reconnect and reports uptime and bytes transferred. It is used to expose a local server for webhooks or remote bot access.

  • Creates ngrok, Cloudflare, SSH, and localtunnel tunnels to a local instance
  • Lists tunnels, checks health, and gets public URLs via /remote commands
  • Supports port forwarding and auto-reconnect on disconnect

Remote by the numbers

  • 13 all-time installs (skills.sh)
  • Ranked #966 of 1,435 DevOps & CI/CD skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

remote capabilities & compatibility

Free tiers exist; ngrok/Cloudflare need auth tokens and paid plans unlock subdomains

Capabilities
tunnel management · port forwarding · remote access
Works with
cloudflare
Use cases
devops
Pricing
Freemium
From the docs

What remote says it does

Manage SSH tunnels, ngrok exposure, and remote access to your local Clodds instance.
SKILL.md
SSH tunnels, ngrok, and remote access management
SKILL.md
npx skills add https://github.com/alsk1992/cloddsbot --skill remote

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs13
repo stars610
Last updatedJune 26, 2026
Repositoryalsk1992/cloddsbot

What it does

Expose a local server via SSH, ngrok, or Cloudflare tunnels and manage remote access.

Who is it for?

Exposing a local server via a tunnel for webhook testing or remote bot access.

When should I use this skill?

A user needs a public URL for a local port or wants to manage SSH/ngrok tunnels.

By the numbers

  • 4 tunnel types (ngrok, Cloudflare, SSH, localtunnel)

Files

SKILL.mdMarkdownGitHub ↗

Remote - Complete API Reference

Manage SSH tunnels, ngrok exposure, and remote access to your local Clodds instance.

---

Chat Commands

Create Tunnels

/remote tunnel ngrok 3000                   Expose port via ngrok
/remote tunnel cloudflare 3000              Expose via Cloudflare
/remote tunnel ssh 3000 user@server         SSH tunnel
/remote tunnel localtunnel 3000             Expose via localtunnel

Manage Tunnels

/remote list                                List active tunnels
/remote status <id>                         Check tunnel health
/remote url <id>                            Get tunnel URL
/remote close <id>                          Close tunnel
/remote close-all                           Close all tunnels

Port Forwarding

/remote forward 8080:localhost:3000         Local port forward
/remote forward remote 3000:server:80       Remote port forward

---

TypeScript API Reference

Create Remote Manager

import { createRemoteManager } from 'clodds/remote';

const remote = createRemoteManager({
  // ngrok auth
  ngrokAuthToken: process.env.NGROK_AUTH_TOKEN,

  // Cloudflare tunnel
  cloudflareToken: process.env.CLOUDFLARE_TUNNEL_TOKEN,

  // SSH key
  sshKeyPath: '~/.ssh/id_rsa',

  // Auto-reconnect
  autoReconnect: true,
  reconnectDelayMs: 5000,
});

Create ngrok Tunnel

const tunnel = await remote.createNgrokTunnel({
  port: 3000,
  protocol: 'http',  // 'http' | 'tcp' | 'tls'

  // Optional
  subdomain: 'my-clodds',  // Requires paid plan
  authToken: process.env.NGROK_AUTH_TOKEN,
});

console.log(`Public URL: ${tunnel.url}`);
console.log(`Tunnel ID: ${tunnel.id}`);

Create Cloudflare Tunnel

const tunnel = await remote.createCloudflareTunnel({
  port: 3000,
  hostname: 'clodds.example.com',
  token: process.env.CLOUDFLARE_TUNNEL_TOKEN,
});

console.log(`URL: ${tunnel.url}`);

Create SSH Tunnel

const tunnel = await remote.createSshTunnel({
  localPort: 3000,
  remoteHost: 'server.example.com',
  remotePort: 80,
  username: 'deploy',
  privateKey: fs.readFileSync('~/.ssh/id_rsa'),
});

console.log(`Tunnel established`);
console.log(`Access via: ssh -L 3000:localhost:80 deploy@server.example.com`);

List Tunnels

const tunnels = remote.listTunnels();

for (const tunnel of tunnels) {
  console.log(`${tunnel.id}: ${tunnel.type}`);
  console.log(`  URL: ${tunnel.url}`);
  console.log(`  Port: ${tunnel.port}`);
  console.log(`  Status: ${tunnel.status}`);
  console.log(`  Created: ${tunnel.createdAt}`);
}

Check Status

const status = await remote.getStatus(tunnelId);

console.log(`Status: ${status.status}`);  // 'connected' | 'reconnecting' | 'disconnected'
console.log(`Uptime: ${status.uptimeMs}ms`);
console.log(`Bytes in: ${status.bytesIn}`);
console.log(`Bytes out: ${status.bytesOut}`);

Close Tunnel

// Close single tunnel
await remote.closeTunnel(tunnelId);

// Close all tunnels
await remote.closeAll();

Event Handlers

remote.on('connected', (tunnel) => {
  console.log(`Tunnel connected: ${tunnel.url}`);
});

remote.on('disconnected', (tunnel) => {
  console.log(`Tunnel disconnected: ${tunnel.id}`);
});

remote.on('error', (tunnel, error) => {
  console.error(`Tunnel error: ${error.message}`);
});

---

Tunnel Types

TypeBest ForRequirements
ngrokQuick testingFree account
CloudflareProductionCloudflare account
SSHSecure accessSSH server
localtunnelFree, temporaryNone

---

Use Cases

Expose Webhook Endpoint

// Expose local server for webhook testing
const tunnel = await remote.createNgrokTunnel({ port: 3000 });
console.log(`Set webhook URL to: ${tunnel.url}/webhooks/trading-signals`);

Remote Bot Access

// Access bot from phone while at home
const tunnel = await remote.createCloudflareTunnel({
  port: 3000,
  hostname: 'clodds.mysite.com',
});
// Now access at https://clodds.mysite.com

---

Best Practices

1. Use Cloudflare for production — More stable than ngrok 2. Secure with auth — Don't expose without protection 3. Monitor connections — Watch for disconnections 4. Close unused tunnels — Don't leave open indefinitely

Related skills

FAQ

Which tunnel types are supported?

ngrok, Cloudflare, SSH, and localtunnel, each suited to different testing or production needs.

Does it reconnect automatically?

Yes, it supports autoReconnect with a configurable reconnect delay.

DevOps & CI/CDinfradeploy

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.