vpn

star 3

This skill should be used when the user asks about their VPN, proxy, or SOCKS5 connection: checking status, fetching the proxy URL for another skill, or switching the active provider.

elyxlz By elyxlz schedule Updated 4/26/2026

name: vpn description: This skill should be used when the user asks about their VPN, proxy, or SOCKS5 connection: checking status, fetching the proxy URL for another skill, or switching the active provider.

VPN / Proxy

Provider-agnostic VPN/proxy management. Other skills should call this rather than reading SOCKS5_* env vars directly, so the active provider can change in one place.

Connection

Provider config lives at ~/.vpn/config.json. Credentials are referenced by env-var name (e.g. username_env: SOCKS5_USER) so secrets stay in .bashrc / shell, not in the config file.

A default config is created on first run with a placeholder default provider. Edit it before using the skill in earnest.

CLI

~/agent/skills/vpn/vpn status                # Active provider + connectivity check
~/agent/skills/vpn/vpn test                  # Connectivity test through the proxy
~/agent/skills/vpn/vpn proxy-url             # Print the proxy URL (socks5://user:pass@host:port)
~/agent/skills/vpn/vpn providers             # List configured providers
~/agent/skills/vpn/vpn set-provider <name>   # Switch active provider
~/agent/skills/vpn/vpn config                # Show current config (credentials masked)

Using from other skills

PROXY_URL=$(~/agent/skills/vpn/vpn proxy-url)
curl --proxy "$PROXY_URL" https://example.com

This is the canonical way for any skill that needs proxied traffic. Do not read SOCKS5_* directly in new code; the user might switch providers and expect everything to follow.

Adding a provider

Edit ~/.vpn/config.json and add an entry under providers:

{
  "type": "socks5",
  "host": "amsterdam.nl.socks.nordhold.net",
  "port": 1080,
  "username_env": "SOCKS5_USER",
  "password_env": "SOCKS5_PASS"
}

Make sure the named env vars are exported in your shell, then activate it: vpn set-provider <name>.

Troubleshooting

proxy-url prints without credentials (just socks5://host:port, no user:pass@). The env vars referenced in the provider's username_env / password_env are not exported. Add them to .bashrc / .zshrc and reload the shell, then re-run.

vpn test fails but vpn status says configured. Proxy host or credentials are wrong, or the provider is down. Try vpn providers to confirm the active one, vpn config to inspect, then test against the provider's own status page.

Wrong region / want to switch. vpn providers to list, vpn set-provider <name> to switch. Skills calling vpn proxy-url will pick up the new value on the next call.

Install via CLI
npx skills add https://github.com/elyxlz/vesta --skill vpn
Repository Details
star Stars 3
call_split Forks 2
navigation Branch main
article Path SKILL.md
More from Creator