@harry-kp/vortix 0.1.8 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/README.md +85 -5
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.2.0] - 2026-03-31
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Add a CLI-first headless mode with structured JSON output for scripting, automation, and AI-agent workflows, including `vortix status` for scriptable connection and kill-switch visibility ([#156](https://github.com/Harry-kp/vortix/issues/156), [#176](https://github.com/Harry-kp/vortix/pull/176)).
|
|
15
|
+
- Add the new flip-panel dashboard interaction with animated card transitions ([#165](https://github.com/Harry-kp/vortix/pull/165)).
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- VPN sessions can now keep running after the TUI or CLI exits, so leaving the interface no longer tears down an active connection unexpectedly ([#155](https://github.com/Harry-kp/vortix/issues/155), [#176](https://github.com/Harry-kp/vortix/pull/176)).
|
|
20
|
+
- Make `vortix down` wait for the OpenVPN daemon to fully exit before reporting success ([#176](https://github.com/Harry-kp/vortix/pull/176)).
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- Remove the stale quit confirmation now that active connections can continue independently of the UI process ([#179](https://github.com/Harry-kp/vortix/issues/179), [#182](https://github.com/Harry-kp/vortix/pull/182)).
|
|
25
|
+
- Fix help overlay scrolling edge cases, including opening before the first resize and clamping scroll correctly after keyboard and mouse input ([#180](https://github.com/Harry-kp/vortix/issues/180), [#182](https://github.com/Harry-kp/vortix/pull/182)).
|
|
26
|
+
- Harden CLI lifecycle handling around disconnect flow, error paths, and config isolation ([#176](https://github.com/Harry-kp/vortix/pull/176)).
|
|
27
|
+
|
|
28
|
+
### Documentation
|
|
29
|
+
|
|
30
|
+
- Clarify current Linux support expectations and improve Linux bug-reporting guidance for distro-specific issues ([#185](https://github.com/Harry-kp/vortix/pull/185)).
|
|
31
|
+
|
|
32
|
+
### CI
|
|
33
|
+
|
|
34
|
+
- Add Fedora 41 CI coverage for `cargo check`, `cargo clippy`, `cargo test`, and `cargo doc`, including unprivileged test execution for Linux-specific validation ([#160](https://github.com/Harry-kp/vortix/issues/160), [#183](https://github.com/Harry-kp/vortix/pull/183)).
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
10
38
|
## [0.1.8] - 2026-03-19
|
|
11
39
|
|
|
12
40
|
### Features
|
package/README.md
CHANGED
|
@@ -49,6 +49,14 @@ Existing options (`wg show`, NetworkManager, Tunnelblick) either lack real-time
|
|
|
49
49
|
- **Config Viewer** — Inspect profile configurations directly within the TUI
|
|
50
50
|
- **Keyboard-driven** — No mouse required
|
|
51
51
|
|
|
52
|
+
## Platform Support
|
|
53
|
+
|
|
54
|
+
Vortix is actively developed and used primarily on macOS.
|
|
55
|
+
|
|
56
|
+
Linux support is a current focus and is improving quickly, with CI coverage for Ubuntu and Fedora. Linux environments still vary a lot across distributions, firewall backends, DNS tooling, and privilege models, so distro-specific issues may still exist.
|
|
57
|
+
|
|
58
|
+
If you use Vortix on Linux and hit a problem, please open an issue and include `vortix report` output when possible. Ubuntu, Fedora, and Arch users are especially helpful when testing release candidates and validating fixes before release. If you want to help test Linux support, join the [Linux tester discussion](https://github.com/Harry-kp/vortix/discussions/184).
|
|
59
|
+
|
|
52
60
|
## Requirements
|
|
53
61
|
|
|
54
62
|
### Runtime dependencies
|
|
@@ -154,16 +162,88 @@ After this, `sudo vortix` works as expected.
|
|
|
154
162
|
- Nix (`nix profile install`) — **no**, installs to Nix profile bin
|
|
155
163
|
- macOS — **no**, sudo preserves user PATH
|
|
156
164
|
|
|
165
|
+
### Linux support note
|
|
166
|
+
|
|
167
|
+
Most day-to-day development happens on macOS. Linux support is continuously tested in CI, but real-world distro coverage is still growing. If something behaves differently on your Linux setup, please treat that as useful signal and report it rather than assuming it is expected.
|
|
168
|
+
|
|
157
169
|
## Usage
|
|
158
170
|
|
|
171
|
+
Vortix has two modes: an interactive TUI dashboard (default) and a headless CLI for scripting, automation, and AI agents.
|
|
172
|
+
|
|
159
173
|
```bash
|
|
160
|
-
sudo vortix # Launch TUI (
|
|
161
|
-
vortix import <file> # Import a .conf or .ovpn profile
|
|
162
|
-
vortix info # Show config directory and version
|
|
163
|
-
vortix update # Self-update to latest release
|
|
164
|
-
vortix report # Generate a bug report with system diagnostics
|
|
174
|
+
sudo vortix # Launch TUI dashboard (default)
|
|
165
175
|
```
|
|
166
176
|
|
|
177
|
+
### CLI Commands
|
|
178
|
+
|
|
179
|
+
Every subcommand supports `--json` for machine-readable output and `--quiet` for silent operation (exit code only).
|
|
180
|
+
|
|
181
|
+
**Connection:**
|
|
182
|
+
```bash
|
|
183
|
+
sudo vortix up work-vpn # Connect to a profile
|
|
184
|
+
sudo vortix down # Disconnect (graceful)
|
|
185
|
+
sudo vortix down --force # Force-disconnect (SIGKILL)
|
|
186
|
+
sudo vortix reconnect # Reconnect to last used profile
|
|
187
|
+
vortix status # Show connection state + telemetry
|
|
188
|
+
vortix status --brief # One-line: "● Connected to work-vpn"
|
|
189
|
+
vortix status --watch # Live updates every 2s
|
|
190
|
+
vortix status --watch --json # NDJSON stream for monitoring
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Profile Management:**
|
|
194
|
+
```bash
|
|
195
|
+
vortix list # List all imported profiles
|
|
196
|
+
vortix list --names-only # Profile names for scripting
|
|
197
|
+
vortix list --sort last-used # Most recently used first
|
|
198
|
+
vortix import ./work.conf # Import a WireGuard profile
|
|
199
|
+
vortix import ./configs/ # Bulk import from directory
|
|
200
|
+
vortix show work-vpn # Display profile configuration
|
|
201
|
+
vortix show work-vpn --raw # Raw config file contents
|
|
202
|
+
vortix delete old-vpn --yes # Delete without confirmation
|
|
203
|
+
vortix rename old-vpn new-vpn # Rename a profile
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Security:**
|
|
207
|
+
```bash
|
|
208
|
+
sudo vortix killswitch auto # Set kill switch to auto mode
|
|
209
|
+
sudo vortix killswitch always # Always-on kill switch
|
|
210
|
+
vortix killswitch # Show current mode
|
|
211
|
+
sudo vortix release-killswitch # Emergency firewall release
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**System:**
|
|
215
|
+
```bash
|
|
216
|
+
vortix info # Config paths, versions, profile count
|
|
217
|
+
vortix update # Self-update from crates.io
|
|
218
|
+
vortix report # Generate bug report
|
|
219
|
+
vortix completions bash >> ~/.bashrc # Shell completions
|
|
220
|
+
vortix completions zsh > ~/.zfunc/_vortix
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**JSON output for AI agents / scripts:**
|
|
224
|
+
```bash
|
|
225
|
+
# Structured JSON envelope on every command
|
|
226
|
+
vortix status --json
|
|
227
|
+
# {"ok":true,"command":"status","data":{...},"next_actions":[...]}
|
|
228
|
+
|
|
229
|
+
vortix list --json | jq '.data[].name' # Extract profile names
|
|
230
|
+
|
|
231
|
+
# NDJSON stream for monitoring
|
|
232
|
+
vortix status --watch --json
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Exit codes** are semantic and scriptable:
|
|
236
|
+
|
|
237
|
+
| Code | Meaning |
|
|
238
|
+
|------|---------|
|
|
239
|
+
| 0 | Success |
|
|
240
|
+
| 1 | General error |
|
|
241
|
+
| 2 | Permission denied (needs sudo) |
|
|
242
|
+
| 3 | Not found (profile doesn't exist) |
|
|
243
|
+
| 4 | State conflict (already connected) |
|
|
244
|
+
| 5 | Missing dependency |
|
|
245
|
+
| 6 | Timeout |
|
|
246
|
+
|
|
167
247
|
### Keybindings
|
|
168
248
|
|
|
169
249
|
| Key | Action |
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"hasInstallScript": true,
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"name": "@harry-kp/vortix",
|
|
26
|
-
"version": "0.
|
|
26
|
+
"version": "0.2.0"
|
|
27
27
|
},
|
|
28
28
|
"node_modules/@isaacs/balanced-match": {
|
|
29
29
|
"engines": {
|
|
@@ -515,5 +515,5 @@
|
|
|
515
515
|
}
|
|
516
516
|
},
|
|
517
517
|
"requires": true,
|
|
518
|
-
"version": "0.
|
|
518
|
+
"version": "0.2.0"
|
|
519
519
|
}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"artifactDownloadUrl": "https://github.com/Harry-kp/vortix/releases/download/v0.
|
|
2
|
+
"artifactDownloadUrl": "https://github.com/Harry-kp/vortix/releases/download/v0.2.0",
|
|
3
3
|
"author": "Harry KP <harrykp@users.noreply.github.com>",
|
|
4
4
|
"bin": {
|
|
5
5
|
"vortix": "run-vortix.js"
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"zipExt": ".tar.xz"
|
|
101
101
|
}
|
|
102
102
|
},
|
|
103
|
-
"version": "0.
|
|
103
|
+
"version": "0.2.0",
|
|
104
104
|
"volta": {
|
|
105
105
|
"node": "18.14.1",
|
|
106
106
|
"npm": "9.5.0"
|