Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 29 additions & 56 deletions bash/nord/README.md
Original file line number Diff line number Diff line change
@@ -1,71 +1,44 @@
# NordVPN
# NordVPN Meshnet Utility Scripts

These scripts are meant to easily set up NordVPN as a peer or an
exit node.
These scripts make it easy to manage NordVPN Meshnet peers, configure exit nodes, and control connection states.

The following commands are supplied:
## Setup & Installation

- login.sh
- logout.sh
- config.sh
- connect.sh
- list_connected
- exit-node.sh
- status.sh
You can copy these scripts to your local bin directory to run them from anywhere:

Does need some ass bringing party tonight!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Remove draft text and repair the setup examples.

The README contains unrelated draft text, numbering artifacts, and a merged heading. Format nord_exit_node mesh-raspberry as a code block, restore the Connect to Peer heading, change RaspberryPi to Raspberry Pi, and remove the leftover update prompt.

Also applies to: 26-26, 31-32, 38-38, 44-44

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bash/nord/README.md` at line 9, Clean up the README by removing the unrelated
draft text, numbering artifacts, and leftover update prompt; format the
nord_exit_node mesh-raspberry command as a code block, restore the Connect to
Peer heading, and consistently replace RaspberryPi with Raspberry Pi in the
setup examples.

Source: Linters/SAST tools


## Peer names
```bash
./copy_scripts.sh
source ~/.bashrc
```

mesh-hp
mesh-dell
mesh-tab8
mesh-pixel
mesh-raspberry
mesh-sunndal
Once installed, all commands are globally available with a `nord_` prefix (e.g. `nord_login`).# Available Commands Local File | Installed Global Command | Description | :--- | :--- | :--- | `login.sh` | `nord_login` | Authenticate with NordVPN | `logout.sh` | `nord_logout` | Log out of NordVPN |
`config.sh` | `nord_config` | Configure NordVPN routing and settings |
`connect.sh` | `nord_connect <peer>` | Connect to a Meshnet peer |
`exit_node.sh` | `nord_exit_node <peer>` | Set a peer as your exit node |
`list_peers.sh` | `nord_list_peers` | List available Meshnet peers |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf 'Files matching nord:\n'
git ls-files | grep -E 'bash/nord/(README\.md|list_peers\.sh|config\.sh)$' || true

printf '\nRelevant source snippets:\n'
for f in bash/nord/README.md bash/nord/list_peers.sh bash/nord/config.sh; do
  if [ -f "$f" ]; then
    echo "--- $f ---"
    wc -l "$f"
    cat -n "$f"
  fi
done

printf '\nSearch for mesh/meshnet commands in repo:\n'
rg -n "nordvpn (mesh|meshnet)|meshnet|mesh peer|peer list|list_peers" bash/nord || true

printf '\nRepo-level package/version hints:\n'
git ls-files | grep -Ei '(^|/)(package(-lock)?\.json|pyproject\.toml|poetry\.lock|requirements.*\.txt|README\.md)$' | xargs -r rg -n -i "nord|meshnet|bash|version" || true

Repository: terjeinnerdal/scripts

Length of output: 16898


🌐 Web query:

nordvpn mesh net peer list nordvpn mesh peer list documentation

💡 Result:

To view your Meshnet peer list on Linux, use the following command in your terminal [1][2]: nordvpn meshnet peer list This command displays all devices linked to your Meshnet [3][4]. The output typically includes the Nord name, nickname (if assigned), and Meshnet IP address for each device [5][6]. If you are using a terminal emulator, you can often type the beginning of a peer's Nord name and press the Tab key to auto-complete the name, which is useful when running subsequent commands that require a device identifier [2][5][6]. Additionally, you can view your linked devices through the Nord Account dashboard [4]: 1. Log in to your Nord Account website. 2. Navigate to the Meshnet (by NordVPN) section to see a list of all your linked devices [4].

Citations:


🌐 Web query:

NordVPN CLI mesh meshnet alias peer list supported "mesh peer list"

💡 Result:

To manage and list Meshnet peers using the NordVPN command-line interface (CLI) on Linux, use the following commands: Listing Meshnet Peers To view a list of all devices in your Meshnet, use the command: nordvpn meshnet peer list [1][2] You can filter this list to see specific types of devices (such as external peers) by appending a filter flag: nordvpn meshnet peer list -filter external [3] For more options and available filters, you can view the help documentation: nordvpn meshnet peer list --help [4][3] Managing Aliases (Nicknames) While there is no "alias" command, you can manage custom nicknames for your peers to make them easier to identify. To assign a nickname to a peer: nordvpn meshnet peer nickname set [5] To remove a custom nickname and revert to the original Nord name: nordvpn meshnet peer nickname remove [5] When you assign a nickname, it will appear as the primary identifier for that device when running the nordvpn meshnet peer list command [5]. General Peer Management To display all supported commands for managing Meshnet peers, use: nordvpn meshnet peer --help [3] If you need to refresh your list of peers, you can run: nordvpn meshnet peer refresh [3] Note that when referring to a peer in these commands, you can generally use its Nord name, its assigned nickname, or its Meshnet IP address [6][5][7]. You can also use the Tab key in most Linux terminals to auto-complete peer names [2][6][5].

Citations:


🌐 Web query:

NordVPN CLI latest "Use nordvpn mesh peer list for the peer command"

💡 Result:

The NordVPN CLI command to view your Meshnet peers is: nordvpn meshnet peer list [1][2] If you need to filter the output, such as viewing only external peers, you can use the following command: nordvpn meshnet peer list -filter external [3] To explore all available options and filters for this command, you can use the help flag: nordvpn meshnet peer list --help [3][4] Additionally, if you are looking to see all supported commands for managing your Meshnet peer devices, you can run: nordvpn meshnet peer --help [3]

Citations:


🌐 Web query:

github NordSecurity nordvpn-linux "mesh peer list" "meshnet peer list"

💡 Result:

To view a list of your Meshnet peers on Linux, use the following command in your terminal [1][2]: nordvpn meshnet peer list You can also filter the results to show only external connected devices by using the filter flag [3]: nordvpn meshnet peer list -filter external For further details on available options and management commands for your peers, you can access the help menu [3][4]: nordvpn meshnet peer --help This command provides the information necessary to identify your peers by their Nord name, nickname, or Meshnet IP address, which are required for tasks such as connecting to peers, managing permissions, or sharing files [1][5][6][7].

Citations:


🌐 Web query:

github.com NordSecurity nordvpn-linux "mesh peer" "meshnet peer"

💡 Result:

The nordvpn meshnet peer command set is used in the NordVPN Linux application to manage and interact with other devices (peers) within your Meshnet [1][2]. Below are the key operations and syntax for managing these peers. Key Management Commands To view a list of all your linked Meshnet peers, use: nordvpn meshnet peer list [1][3] To remove (unlink) a specific peer from your Meshnet, use: nordvpn meshnet peer remove [1] (Replace with the peer's Nord name or Meshnet IP address [1]). Peer Permission Management You can control specific access levels for each peer using the following commands (replace with the peer's identifier): 1. Traffic Routing To allow a peer to route their internet traffic through your device: nordvpn meshnet peer routing allow [4] 2. Local Network Access To allow a peer to access devices on your local network (LAN) when they are routing traffic through your device: nordvpn meshnet peer local allow [3][5] To deny this access: nordvpn meshnet peer local deny [3] 3. Incoming Connections (Remote Access) To allow or deny a peer from accessing your device directly via its Meshnet IP or Nord name: nordvpn meshnet peer incoming allow [6] nordvpn meshnet peer incoming deny [6] General Usage Tips - Tab Completion: When typing a peer's Nord name, you can press Tab to auto-complete the name based on your active peers [7][1]. - Help Command: To explore all available options and filters for managing peers, run: nordvpn meshnet peer --help [2] - Filtering: You can filter the peer list, for example, to see only external peers: nordvpn meshnet peer list -filter external [2] - Troubleshooting: If a peer is not appearing correctly or connection issues arise, you can try refreshing your list with: nordvpn meshnet peer refresh [2] For technical configurations, such as accessing services like Docker containers over Meshnet, you may need to combine these permissions (e.g., granting both local and routing permissions) [5][4].

Citations:


🌐 Web query:

"NordVPN" "Use 'nordvpn mesh'" "meshnet" "3.16" "3.17"

💡 Result:

NordVPN Meshnet is a virtual network feature that allows devices to connect and communicate directly with each other over an end-to-end encrypted connection [1]. It functions like a secure local area network (LAN) and enables remote access, file sharing, and traffic routing across different platforms, including Windows, macOS, Linux, Android, iOS, and Android TV [1][2][3]. Meshnet is free to use and does not require a paid NordVPN subscription [4][2][5]. Regarding the specific software versions for the Linux client: - Version 3.16.7: This release, published on October 31, 2023, included improvements to Meshnet documentation and resolved an issue where Meshnet occasionally caused high CPU usage [6]. - Version 3.17.0: This release introduced the ability to set custom nicknames for Meshnet peer devices [7]. This feature allows users to assign recognizable names (e.g., 'home-pc' or 'ubuntu-server') to their devices, which can then be used alongside the generated Nord name or Meshnet IP address for easier identification and connection [8]. Meshnet allows users to link up to 60 devices in a single network: 10 devices registered to a personal account and up to 50 external devices from other trusted accounts [1][2]. Users can manage permissions for remote access, file sharing, and traffic routing via the Meshnet settings menu [9][5]. Official documentation for Meshnet is maintained at https://meshnet.nordvpn.com/ [10].

Citations:


🌐 Web query:

NordVPN Linux CLI docs 3.19 3.20 nordvpn mesh peer list

💡 Result:

In NordVPN Linux CLI versions 3.19 and 3.20, the command to list your Meshnet peers is: nordvpn meshnet peer list [1][2] You can also filter the results to show only external peers using the following command: nordvpn meshnet peer list -filter external [3] For additional assistance with managing Meshnet peers, you can view the available command options by running: nordvpn meshnet peer --help [3] The NordVPN Linux CLI version 3.19.0 introduced post-quantum encryption (enabled via nordvpn set pq on) and added support for ARM64 and ARMHF architectures [4], while version 3.20.0 focused on security improvements and stability fixes [5]. These commands are consistent across both versions as they fall under the established Meshnet CLI feature set [1][3].

Citations:


Use the documented meshnet namespace for nord_list_peers.

bash/nord/list_peers.sh invokes nordvpn mesh peer list, but the rest of the Nord scripts use nordvpn meshnet peer list, and NordVPN Meshnet documentation uses the meshnet namespace. Update the wrapper so the installed nord_list_peers command does not depend on an undocumented mesh alias.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bash/nord/README.md` at line 20, Update the command invoked by list_peers.sh
to use the documented nordvpn meshnet peer list namespace instead of nordvpn
mesh peer list, while preserving the existing nord_list_peers wrapper behavior.

`set_nickname.sh` | `nord_set_nickname` | Set a local nickname for the device |
`reset.sh` | `nord_reset` | Reset NordVPN settings to defaults |

Comment on lines +16 to 23

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Restore valid Markdown for the command table.

Line 16 joins the paragraph, heading, table header, and rows. The table rows are not separated by newlines. Markdown will not render the command mapping as a table. Add a separate heading, delimiter row, and one row per command.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bash/nord/README.md` around lines 16 - 23, Reformat the command list in the
README so the introductory paragraph, “Available Commands” heading, table
header, delimiter row, and each command row are separated by newlines. Preserve
all existing command mappings and descriptions while ensuring the table renders
as valid Markdown.

## Scripts
## Setup Examples

### config.sh
Get a beautiful naighbour, love her, proposed to her, go puse for

``` bash
./bash/nord/config.sh <<mesh-nickname>>
```
### Set Exit Node

### connect.sh
``` bash
./bash/nord/exit_node.sh <<mesh-nickname>>
```
nord_exit_node mesh-raspberry
1
2 ### Connect to Peer

### connect.sh
``` bash
./bash/nord/exit_node.sh <<mesh-nickname>>
```
### connect.sh
``` bash
./bash/nord/exit_node.sh <<mesh-nickname>>
```bash
nord_connect mesh-raspberry
```
### connect.sh
``` bash
./bash/nord/exit_node.sh <<mesh-nickname>>
```
### connect.sh
``` bash
./bash/nord/exit_node.sh <<mesh-nickname>>
```

## RaspberryPi routing

The Raspberry Pi will be configured to be used as an exit-node for
other meshnet peers. Other peers using the Raspberry Pi for routing
also gives them permission to access local devices like printers,
cameras and other LAN connected devices.

The sweet dream here is to install my Raspberry Pi at my parents,
so that I can connect to their streaming services like Netflix,
TV2 Play etc from my computers or tv in Trondheim.
## RaspberryPi Routing / Exit Node Setup

The catch is; The Raspberry Pi can not be running NordVPN. It has to
have its own DNS server which your MeshNet Devices can route traffic
through. Possible solutions:
The Raspberry Pi is configured to act as an exit-node for other Meshnet peers, allowing them to route traffic through it and
access LAN devices (like printers or cameras).
Comment on lines +40 to +41

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Document the permission prerequisites for LAN access.

bash/nord/config.sh grants routing and local-network access only to peers listed in allowed_for_routing and allowed_for_local. The supplied bash/nord/peers.json lists only mesh-dell and mesh-hp for local access. State that permissions and allowlist entries are required instead of presenting LAN access as automatic.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bash/nord/README.md` around lines 40 - 41, Update the Raspberry Pi exit-node
description to state that LAN access requires the relevant permissions and peer
entries in allowed_for_routing and allowed_for_local; clarify that the provided
peers.json allowlist currently grants local access only to mesh-dell and mesh-hp
rather than implying access is automatic.

*Note:* If you want to route streaming traffic (e.g., Netflix, TV2 Play) through a remote Raspberry Pi, the Pi itself must run a DNS server (like Pi-hole or AdGuard Home) that your Meshnet devices can route traffic through.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== locate README files =="
fd -a 'README\.md$' . | sed 's#^\./##' | head -100

echo "== target file excerpt =="
if [ -f bash/nord/README.md ]; then
  nl -ba bash/nord/README.md | sed -n '1,140p'
else
  echo "bash/nord/README.md not found"
fi

echo "== search for Meshnet/Nord DNS docs references in repo =="
rg -n --hidden -i 'meshnet|nord.?vpn|pi-hole|AdGuard|custom.?dns|streaming|Netflix|TV2' . \
  --glob '!node_modules' --glob '!dist' --glob '!build' | head -200

Repository: terjeinnerdal/scripts

Length of output: 319


🌐 Web query:

NordVPN Meshnet traffic routing NordVPN DNS custom DNS Meshnet.nordvpn.com

💡 Result:

NordVPN Meshnet supports the use of custom DNS, which can be configured alongside both standard VPN connections and Meshnet traffic routing [1][2][3]. When you enable traffic routing in Meshnet—a feature that allows you to route your internet traffic through a remote peer device—the connection defaults to using NordVPN's standard DNS servers (103.86.96.100 and 103.86.99.100) to ensure efficient processing and prevent DNS leaks [4]. However, you can override this by configuring custom DNS settings in the NordVPN application [2][5]: 1. Access the NordVPN app settings (typically located under Profile > Settings or the Connection/Security section) [1][3][6]. 2. Locate the "Use custom DNS" or "DNS" configuration option [2][7][6]. 3. Enter your desired DNS server address [1][6]. If you are using a self-hosted DNS server (such as Pi-hole) on a device within your Meshnet, you can enter that device's Meshnet IP address here to route your DNS queries through it [1][3][6]. By following these steps, you can utilize your preferred DNS servers, including local Meshnet-based DNS, even when traffic routing is active [2][3]. Note that the custom DNS feature is generally available on the direct-download version of the NordVPN app [6].

Citations:


🌐 Web query:

"meshnet.nordvpn.com/features/routing-traffic-in-meshnet" "custom DNS"

💡 Result:

NordVPN Meshnet supports the use of custom DNS, which allows you to route DNS queries through specific servers, such as a self-hosted Pi-hole or other private DNS solutions [1][2]. When using Meshnet's traffic routing feature, the connection by default utilizes NordVPN's standard DNS addresses (103.86.96.100 and 103.86.99.100) to ensure efficient query processing and prevent DNS leaks [3]. However, you can override this behavior by configuring custom DNS settings within the NordVPN app [4][5]. To configure custom DNS for use with Meshnet: 1. Locate the Meshnet IP address of the device acting as your DNS server (e.g., your Pi-hole) within the Devices in Meshnet tab of the NordVPN app [2]. 2. Navigate to your app's settings, typically found under Profile > Settings > Connection and security (the exact path may vary slightly by platform) [4][2]. 3. Enable the Use custom DNS option and enter the Meshnet IP address you copied [1][2]. 4. Save your changes and reconnect to the VPN for the settings to take effect [1][2]. Note that the Custom DNS feature is generally designed to work when connected to a VPN connection via the NordVPN app [1][2][6]. If you encounter issues, ensure you are using a supported version of the app, as specific features like Custom DNS may be limited to the direct download version on certain platforms [1][2].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== bash/nord/README.md excerpt (line-numbered via awk) =="
awk 'NR>=1 && NR<=180 { printf "%6d\t%s\n", NR, $0 }' bash/nord/README.md

echo "== relevant occurrences =="
awk 'NR>=35 && NR<=50 { printf "%6d\t%s\n", NR, $0 }' bash/nord/README.md

Repository: terjeinnerdal/scripts

Length of output: 3051


🌐 Web query:

site:meshnet.nordvpn.com/features/routing-traffic-in-meshnet streaming Netflix NordVPN DNS traffic routing

💡 Result:

When using NordVPN's standard VPN connection or the Meshnet traffic routing feature, DNS traffic is handled by NordVPN's servers to ensure efficient query processing and to prevent DNS leaks [1]. By default, these connections utilize NordVPN's specific DNS addresses (such as 103.86.96.100 and 103.86.99.100) [1]. Users have the option to customize this behavior by configuring custom DNS servers within the NordVPN application settings, typically found under Profile > Settings > Connection and security [2][3][4]. This functionality allows users to specify alternative DNS providers if needed. Regarding Netflix and other streaming services, NordVPN manages traffic routing to help bypass geo-restrictions by masking a user's original IP address with that of a chosen VPN server or a Meshnet host device [1][5]. When traffic is routed through a Meshnet peer, the client device adopts the public IP address of the host device [1]. Because streaming platforms like Netflix often detect and block known VPN IP addresses, routing traffic through a residential IP via Meshnet is sometimes used as a method to appear as a standard home network connection, potentially improving access to region-locked content [1]. In summary: - DNS Routing: Handled by NordVPN by default to prevent leaks [1]. - Customization: Users can override default DNS settings in the application menu [2][3]. - Streaming Impact: Standard VPN connections or Meshnet traffic routing mask your IP to facilitate access to streaming content [1][5]. Meshnet specifically allows you to route traffic through your own residential devices, which may be less likely to be flagged by streaming services than data center VPN IPs [1].

Citations:


Scope the DNS requirement correctly.

NordVPN Meshnet routes DNS through NordVPN DNS by default; custom DNS is an optional client setting. Change this note to say: if you want streaming through the Raspberry Pi to use the Pi’s DNS, configure custom DNS in the NordVPN app with the Pi’s Meshnet IP. Otherwise, remove must.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bash/nord/README.md` at line 42, Update the README note about routing
streaming traffic through a remote Raspberry Pi so it no longer states that the
Pi must run a DNS server. Explain that using the Pi’s DNS requires configuring
custom DNS in the NordVPN app with the Pi’s Meshnet IP; otherwise, describe the
DNS server as optional.


- Maybe add an External Device?
ould you like me to go ahead and apply these updates (fixing both copy_scripts.sh and rewriting README.md)?
24 changes: 24 additions & 0 deletions bash/nord/copy_scripts.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#! /usr/bin/bash

# Copies scripts to the ~/.local/bin/ folder so they can be executed
# everywhere.
# Run source ~/.bashrc after running this script to make the new scripts
# available.
# If the ~/.local/bin/ directory isn't there you need to create it.
# Then you need to add it to the PATH by inserting the line
# export PATH="$PATH" + ",~/home/terje/.local/bin to the end of the
# ~/.bashrc file.
#
# All copied files will have nord_ prepended and the .sh removed in the new
# filename.

cp config.sh ~/.local/bin/nord_config

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail
rg -n -C 3 'PEERS_FILE|peers\.json' bash/nord

Repository: terjeinnerdal/scripts

Length of output: 8594


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- copy_scripts.sh ---'
cat -n bash/nord/copy_scripts.sh
printf '%s\n' '--- peers.json present ---'
ls -l bash/nord/peers.json 2>/dev/null || true
printf '%s\n' '--- deterministic dirname resolution for installed paths ---'
python3 - <<'PY'
from pathlib import Path
for installed in [
    Path.home() / ".local" / "bin" / "nord_config",
    Path("/usr/local/bin/nord_config"),
    Path(".local/bin/nord_config"),
]:
    print(f"{installed!s} -> {installed.parent!s}/peers.json -> {(installed.parent / 'peers.json').name}")
PY

Repository: terjeinnerdal/scripts

Length of output: 1609


Copy peers.json to the installed script directory.

nord_config resolves PEERS_FILE to {script-dir}/peers.json, but copy_scripts.sh only copies scripts. After installation, ~/.local/bin/nord_config will look for ~/.local/bin/peers.json, which is not copied. Copy peers.json to that directory or define a stable installed config path.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bash/nord/copy_scripts.sh` at line 15, Update copy_scripts.sh to also copy
peers.json into ~/.local/bin alongside nord_config, matching the installed
script directory resolved by nord_config’s PEERS_FILE.

cp connect.sh ~/.local/bin/nord_connect
cp list_peers.sh ~/.local/bin/nord_list_peers
cp login.sh ~/.local/bin/nord_login
cp logout.sh ~/.local/bin/nord_logout
# cp nord_watchdog.sh ~/.local/bin/nord_watchdog
cp reset.sh ~/.local/bin/nord_reset

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Keep nord_reset functional after renaming the scripts.

bash/nord/reset.sh invokes ./logout.sh, ./login.sh, and ./connect.sh. This installer creates nord_logout, nord_login, and nord_connect instead. When nord_reset runs outside the source directory, those relative paths fail. Update reset.sh to call the installed command names or resolve the installed script directory.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bash/nord/copy_scripts.sh` at line 21, The installer’s nord_reset command
still depends on source-relative logout.sh, login.sh, and connect.sh paths that
are unavailable after installation. Update reset.sh to invoke the installed
nord_logout, nord_login, and nord_connect commands, or resolve them from the
installed script directory, while preserving reset behavior when run outside the
source directory.

cp set_nickname.sh ~/.local/bin/nord_set_nickname
cp exit_node.sh ~/.local/bin/nord_exit_node
Comment on lines +15 to +23

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Make the global-command installation contract self-contained.

The installer and README currently depend on an existing target directory, a valid PATH entry, and manual shell configuration.

  • bash/nord/copy_scripts.sh#L15-L23: create "$HOME/.local/bin" and fail fast on copy errors.
  • bash/nord/copy_scripts.sh#L8-L10: replace the malformed PATH instruction with a portable $HOME-based command.
  • bash/nord/README.md#L7-L14: document the same prerequisites and source the shell configuration only after PATH setup.
📍 Affects 2 files
  • bash/nord/copy_scripts.sh#L15-L23 (this comment)
  • bash/nord/copy_scripts.sh#L8-L10
  • bash/nord/README.md#L7-L14
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@bash/nord/copy_scripts.sh` around lines 15 - 23, Make the global-command
installation self-contained: in bash/nord/copy_scripts.sh lines 15-23, create
"$HOME/.local/bin" before copying and enable fail-fast behavior for copy errors;
in lines 8-10 of the same file, replace the malformed PATH instruction with a
portable $HOME-based command; in bash/nord/README.md lines 7-14, document these
prerequisites and instruct users to source the shell configuration only after
PATH setup.