# Send NordVPN to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "nordvpn",
    "name": "NordVPN",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/maciekish/nordvpn",
    "canonicalUrl": "https://clawhub.ai/maciekish/nordvpn",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/nordvpn",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=nordvpn",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/nordvpn"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/nordvpn",
    "downloadUrl": "https://openagent3.xyz/downloads/nordvpn",
    "agentUrl": "https://openagent3.xyz/skills/nordvpn/agent",
    "manifestUrl": "https://openagent3.xyz/skills/nordvpn/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/nordvpn/agent.md"
  }
}
```
## Documentation

### NordVPN CLI Skill (Linux)

A ClawBot skill for controlling the NordVPN Linux CLI (nordvpn) to connect/disconnect, select locations, verify status, and adjust settings from automations and workflows.

### Assumptions / Compatibility

Works with the official nordvpn CLI (example shown: 4.3.1 [snap]).
Requires the NordVPN daemon running (usually nordvpnd) and sufficient permissions.
Some commands may require elevated privileges depending on distro + install method (snap vs deb).

### Option A: Snap (common on Ubuntu)

sudo snap install nordvpn
nordvpn --version

### Option B: Distro package / repo (varies)

If you installed via Nord’s repo or a package manager, just verify:

which nordvpn
nordvpn --version

### Verify daemon is running

# systemd installs usually
systemctl status nordvpnd --no-pager || true

# snap installs may not expose systemd unit the same way
nordvpn status || true

# or may require the full patch to be specified like so
/snap/bin/nordvpn status || true

### Authentication / Login

NordVPN CLI typically requires logging in once per machine/user session.

nordvpn login

If the environment is headless, the CLI will guide you through the login flow (often via a browser link / code). After login, confirm:

nordvpn account
nordvpn status

ClawBot guidance: treat login as a manual prerequisite unless you explicitly automate the browser-based login flow.

### Status

nordvpn status

### Connect (best available)

nordvpn connect
# alias:
nordvpn c

### Connect to a country / city / group

# country
nordvpn connect Sweden

# city (must exist in \`nordvpn cities <country>\`)
nordvpn connect "Stockholm"

# group (must exist in \`nordvpn groups\`)
nordvpn connect P2P

### Disconnect

nordvpn disconnect
# alias:
nordvpn d

### List locations

nordvpn countries
nordvpn cities Sweden
nordvpn groups

### Settings (read + change)

nordvpn settings

# examples (options differ by version)
nordvpn set autoconnect on
nordvpn set killswitch on
nordvpn set threatprotectionlite on  # if supported
nordvpn set protocol nordlynx        # if supported

### Allowlist (bypass VPN for certain traffic)

# view help
nordvpn allowlist --help

# examples (subcommands differ by version)
nordvpn allowlist add port 22
nordvpn allowlist add subnet 192.168.0.0/16
nordvpn allowlist remove port 22

### What this skill should do well

Idempotent connection actions

If already connected to the requested target, do nothing (or return “already connected”).
If connected elsewhere, optionally disconnect then connect to target.



Reliable verification

After connect/disconnect, always run nordvpn status and parse the result.



Safe fallbacks


If a requested city/country/group is invalid, provide closest alternatives by listing:

nordvpn countries
nordvpn cities <country>
nordvpn groups





Human-in-the-loop login

If nordvpn reports not logged in, return a structured response instructing to run nordvpn login.

### Recommended “actions” (API surface)

Implement these as the skill’s callable intents/tools:

status() → returns parsed connection status
connect_best() → connects to best available
connect_country(country)
connect_city(city) (optionally with country for disambiguation)
connect_group(group)
disconnect()
list_countries()
list_cities(country)
list_groups()
get_settings()
set_setting(key, value)
allowlist_add(type, value)
allowlist_remove(type, value)

### 1) Always start with status

nordvpn status

Parse fields commonly returned by the CLI, such as:

Connection state (Connected/Disconnected)
Current server / country / city
IP, protocol, technology

### 2) Connect flow

Goal: connect to a target (country/city/group) with verification.

Pseudo-logic:

Run nordvpn status
If disconnected → connect directly
If connected to different target → nordvpn disconnect then connect
Run nordvpn status again and confirm connected

Commands:

nordvpn connect "<target>"
nordvpn status

### 3) Disconnect flow

nordvpn disconnect
nordvpn status

### 4) Resolve targets safely

If user asks for a city:

Prefer nordvpn cities <country> when country is known
Otherwise attempt connect; if it fails, list countries and search-like suggestions.

nordvpn countries
nordvpn cities "<country>"
nordvpn groups

### Not logged in

Symptoms:

CLI complains about authentication/account/login.

Handling:

Return: “Login required. Run nordvpn login and repeat.”
Optionally: run nordvpn account to confirm.

### Daemon not running / permission denied

Symptoms:

Can’t connect, service errors, permission errors.

Handling:

Check systemctl status nordvpnd (systemd installs)


Confirm snap service health (snap installs vary)


Ensure user belongs to the right group (some installs use a nordvpn group):
groups
getent group nordvpn || true

### Invalid location/group

Symptoms:

“Unknown country/city/group” or connect fails immediately.

Handling:

Provide available options:
nordvpn countries
nordvpn groups
nordvpn cities "<country>"

### Ensure VPN is connected (any server)

nordvpn status | sed -n '1,10p'
nordvpn connect
nordvpn status | sed -n '1,15p'

### Reconnect to a specific country

nordvpn disconnect
nordvpn connect Sweden
nordvpn status

### Toggle killswitch (example)

nordvpn set killswitch on
nordvpn settings

### Notes

Command options and setting keys can differ by NordVPN CLI version. Always rely on:
nordvpn help
nordvpn set --help
nordvpn allowlist --help



If you need stable machine-readable output, the NordVPN CLI does not consistently provide JSON; plan to parse human-readable status text defensively (line-based key/value extraction, tolerate missing fields).
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: maciekish
- Version: 1.0.2
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-04-30T16:55:25.780Z
- Expires at: 2026-05-07T16:55:25.780Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/nordvpn)
- [Send to Agent page](https://openagent3.xyz/skills/nordvpn/agent)
- [JSON manifest](https://openagent3.xyz/skills/nordvpn/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/nordvpn/agent.md)
- [Download page](https://openagent3.xyz/downloads/nordvpn)