@raphiiko/wavelink-cli 0.0.5 → 0.0.7
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/LICENSE +21 -0
- package/README.md +45 -29
- package/dist/index.js +4891 -4793
- package/package.json +57 -57
- package/src/commands/channel.ts +243 -0
- package/src/commands/info.ts +19 -0
- package/src/commands/input.ts +128 -0
- package/src/commands/mix.ts +98 -0
- package/src/commands/output.ts +207 -0
- package/src/index.ts +14 -754
- package/src/services/client.ts +24 -0
- package/src/services/finders.ts +150 -0
- package/src/types/index.ts +23 -0
- package/src/utils/error.ts +4 -0
- package/src/utils/format.ts +15 -0
- package/src/utils/validation.ts +9 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Raphiiko
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
# @raphiiko/wavelink-cli
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@raphiiko/wavelink-cli)
|
|
4
|
+
[](https://www.npmjs.com/package/@raphiiko/wavelink-cli)
|
|
5
|
+
[](https://github.com/Raphiiko/wavelink-cli/blob/main/LICENSE)
|
|
6
|
+
|
|
3
7
|
A command-line interface for controlling Elgato Wave Link 3.0.
|
|
4
8
|
|
|
5
|
-
> **Note:** This CLI is based on Wave Link 3.0 Beta Update
|
|
9
|
+
> **Note:** This CLI is based on Wave Link 3.0 Beta Update 4. Keep in mind things might break with future Wave Link updates.
|
|
6
10
|
|
|
7
11
|
## Prerequisites
|
|
8
12
|
|
|
9
|
-
- **Elgato Wave Link 3.0** (Beta Update
|
|
13
|
+
- **Elgato Wave Link 3.0** (Beta Update 4 or newer) must be installed and running.
|
|
10
14
|
- **Node.js 18+** or **Bun 1.0+**
|
|
11
15
|
|
|
12
16
|
## Installation
|
|
@@ -35,22 +39,26 @@ wavelink-cli <category> <command> [options]
|
|
|
35
39
|
Manage your output devices (Headphones, Speakers, etc).
|
|
36
40
|
|
|
37
41
|
```bash
|
|
38
|
-
# List all output devices
|
|
42
|
+
# List all output devices (shows names, IDs, and Wave Device status)
|
|
39
43
|
wavelink-cli output list
|
|
40
44
|
|
|
41
|
-
# Assign an output device to a mix
|
|
42
|
-
wavelink-cli output assign <output-id> <mix-id-or-name>
|
|
45
|
+
# Assign an output device to a mix (use ID or name)
|
|
46
|
+
wavelink-cli output assign <output-id-or-name> <mix-id-or-name>
|
|
47
|
+
# Example: wavelink-cli output assign "Headphones (Arctis Nova Pro Wireless)" "Stream Mix"
|
|
43
48
|
|
|
44
49
|
# Remove an output device from its mix
|
|
45
|
-
wavelink-cli output unassign <output-id>
|
|
50
|
+
wavelink-cli output unassign <output-id-or-name>
|
|
51
|
+
# Example: wavelink-cli output unassign "Speakers (Realtek)"
|
|
46
52
|
|
|
47
53
|
# Set volume (0-100)
|
|
48
|
-
wavelink-cli output set-volume <output-id> <volume>
|
|
54
|
+
wavelink-cli output set-volume <output-id-or-name> <volume>
|
|
55
|
+
# Example: wavelink-cli output set-volume "Headphones (Arctis Nova Pro Wireless)" 75
|
|
49
56
|
|
|
50
57
|
# Mute/Unmute
|
|
51
|
-
wavelink-cli output mute <output-id>
|
|
52
|
-
wavelink-cli output unmute <output-id>
|
|
53
|
-
wavelink-cli output toggle-mute <output-id>
|
|
58
|
+
wavelink-cli output mute <output-id-or-name>
|
|
59
|
+
wavelink-cli output unmute <output-id-or-name>
|
|
60
|
+
wavelink-cli output toggle-mute <output-id-or-name>
|
|
61
|
+
# Example: wavelink-cli output toggle-mute "Speakers (Realtek)"
|
|
54
62
|
```
|
|
55
63
|
|
|
56
64
|
### Mixes
|
|
@@ -62,59 +70,67 @@ wavelink-cli mix list
|
|
|
62
70
|
|
|
63
71
|
# Set a device as the ONLY output for a mix
|
|
64
72
|
wavelink-cli mix set-output <mix-id-or-name> <output-id>
|
|
73
|
+
# Example: wavelink-cli mix set-output "Stream Mix" "{0.0.0.00000000}.{abc12345-...}"
|
|
65
74
|
|
|
66
75
|
# Set master volume (0-100)
|
|
67
76
|
wavelink-cli mix set-volume <mix-id-or-name> <volume>
|
|
77
|
+
# Example: wavelink-cli mix set-volume "Personal Mix" 80
|
|
68
78
|
|
|
69
79
|
# Mute/Unmute/Toggle
|
|
70
80
|
wavelink-cli mix mute <mix-id-or-name>
|
|
71
81
|
wavelink-cli mix unmute <mix-id-or-name>
|
|
72
82
|
wavelink-cli mix toggle-mute <mix-id-or-name>
|
|
83
|
+
# Example: wavelink-cli mix toggle-mute "Monitor Mix"
|
|
73
84
|
```
|
|
74
85
|
|
|
75
86
|
### Channels
|
|
76
87
|
Manage audio channels (System, Music, Browser, etc).
|
|
77
88
|
|
|
78
89
|
```bash
|
|
79
|
-
# List all channels
|
|
90
|
+
# List all channels (shows names and IDs)
|
|
80
91
|
wavelink-cli channel list
|
|
81
92
|
|
|
82
|
-
# Set master channel volume (0-100)
|
|
83
|
-
wavelink-cli channel set-volume <channel-id> <volume>
|
|
93
|
+
# Set master channel volume (0-100, use ID or name)
|
|
94
|
+
wavelink-cli channel set-volume <channel-id-or-name> <volume>
|
|
95
|
+
# Example: wavelink-cli channel set-volume "Game Audio" 70
|
|
84
96
|
|
|
85
97
|
# Mute/Unmute/Toggle channel globally
|
|
86
|
-
wavelink-cli channel mute <channel-id>
|
|
87
|
-
wavelink-cli channel unmute <channel-id>
|
|
88
|
-
wavelink-cli channel toggle-mute <channel-id>
|
|
98
|
+
wavelink-cli channel mute <channel-id-or-name>
|
|
99
|
+
wavelink-cli channel unmute <channel-id-or-name>
|
|
100
|
+
wavelink-cli channel toggle-mute <channel-id-or-name>
|
|
101
|
+
# Example: wavelink-cli channel toggle-mute "Voice Chat"
|
|
89
102
|
|
|
90
103
|
# Set volume for a specific mix
|
|
91
|
-
wavelink-cli channel set-mix-volume <channel-id> <mix-id-or-name> <volume>
|
|
104
|
+
wavelink-cli channel set-mix-volume <channel-id-or-name> <mix-id-or-name> <volume>
|
|
105
|
+
# Example: wavelink-cli channel set-mix-volume browser "Stream Mix" 60
|
|
92
106
|
|
|
93
107
|
# Mute/Unmute in a specific mix
|
|
94
|
-
wavelink-cli channel mute-in-mix <channel-id> <mix-id-or-name>
|
|
95
|
-
wavelink-cli channel unmute-in-mix <channel-id> <mix-id-or-name>
|
|
96
|
-
wavelink-cli channel toggle-mute-in-mix <channel-id> <mix-id-or-name>
|
|
108
|
+
wavelink-cli channel mute-in-mix <channel-id-or-name> <mix-id-or-name>
|
|
109
|
+
wavelink-cli channel unmute-in-mix <channel-id-or-name> <mix-id-or-name>
|
|
110
|
+
wavelink-cli channel toggle-mute-in-mix <channel-id-or-name> <mix-id-or-name>
|
|
111
|
+
# Example: wavelink-cli channel toggle-mute-in-mix game "Monitor Mix"
|
|
97
112
|
|
|
98
113
|
# Isolate a channel in a mix (mute all others)
|
|
99
|
-
wavelink-cli channel isolate <channel-id> <mix-id-or-name>
|
|
100
|
-
|
|
101
|
-
|
|
114
|
+
wavelink-cli channel isolate <channel-id-or-name> <mix-id-or-name>
|
|
115
|
+
# Example: wavelink-cli channel isolate voice "Personal Mix"
|
|
102
116
|
```
|
|
103
117
|
|
|
104
118
|
### Inputs
|
|
105
119
|
Control hardware inputs (Microphones, etc).
|
|
106
120
|
|
|
107
121
|
```bash
|
|
108
|
-
# List all input devices
|
|
122
|
+
# List all input devices (shows names, IDs, gain ranges, gain lock status, and mic/PC mix settings)
|
|
109
123
|
wavelink-cli input list
|
|
110
124
|
|
|
111
|
-
# Set gain (0-100)
|
|
112
|
-
wavelink-cli input set-gain <input-id> <gain>
|
|
125
|
+
# Set gain (0-100, use ID or name)
|
|
126
|
+
wavelink-cli input set-gain <input-id-or-name> <gain>
|
|
127
|
+
# Example: wavelink-cli input set-gain "Microphone (Blue Yeti)" 65
|
|
113
128
|
|
|
114
129
|
# Mute/Unmute
|
|
115
|
-
wavelink-cli input mute <input-id>
|
|
116
|
-
wavelink-cli input unmute <input-id>
|
|
117
|
-
wavelink-cli input toggle-mute <input-id>
|
|
130
|
+
wavelink-cli input mute <input-id-or-name>
|
|
131
|
+
wavelink-cli input unmute <input-id-or-name>
|
|
132
|
+
wavelink-cli input toggle-mute <input-id-or-name>
|
|
133
|
+
# Example: wavelink-cli input toggle-mute "Wave:3"
|
|
118
134
|
```
|
|
119
135
|
|
|
120
136
|
### General
|