@vex-chat/cli 0.1.3

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/LICENSING.md ADDED
@@ -0,0 +1,15 @@
1
+ # Licensing
2
+
3
+ ## Open source (default)
4
+
5
+ The default **public** license is the **GNU Affero General Public License v3.0** — see the full text in [`LICENSE`](./LICENSE). The SPDX identifier in `package.json` may use **AGPL-3.0-or-later**; either way, the grant is at least AGPL v3.
6
+
7
+ ## Commercial licensing
8
+
9
+ Commercial licenses are offered by **Vex Heavy Industries LLC**. See [`LICENSE-COMMERCIAL`](./LICENSE-COMMERCIAL) for contact details ([vex.wtf](https://vex.wtf), **licensing@vex.wtf**).
10
+
11
+ If you need terms **other than the AGPL** (for example, a proprietary product or a deployment where AGPL obligations are not acceptable), inquire there.
12
+
13
+ ---
14
+
15
+ _This file summarizes how we intend licensing to work. It is not legal advice. For binding terms, rely on the written agreement or license grant you receive from the copyright holders._
package/README.md ADDED
@@ -0,0 +1,62 @@
1
+ # @vex-chat/cli
2
+
3
+ Terminal chat client for Vex backed by `@vex-chat/libvex`.
4
+
5
+ ```sh
6
+ pnpm vex
7
+ ```
8
+
9
+ On first run, `vex` prompts for a username and registers a local device key.
10
+ After that it opens straight into a live chat session.
11
+
12
+ By default the CLI connects to production at `api.vex.wtf`. For local Spire development, pass `--local` to use `127.0.0.1:16777` over http/ws. Custom targets can use `--api-url <url>` to set both the host and protocol, or `--host <host:port> --http` to set them separately.
13
+
14
+ Inside the app:
15
+
16
+ - `/accounts` lists local users on this machine
17
+ - `/nav` opens a channel or DM
18
+ - `/join [server]` chooses a server, then asks which channel to open
19
+ - `/servers` browses your available servers, then opens a channel
20
+ - `/channels` chooses a channel
21
+ - `/window` lists open chats
22
+ - `/window <number>` switches to an open chat
23
+ - `/user <username-or-user-id>` opens a DM conversation
24
+ - `/inbox` shows DMs, unread counts, and recent senders
25
+ - `/dm` also opens the inbox
26
+ - `/dm <username-or-user-id>` opens a DM conversation
27
+ - `/dm <username-or-user-id> <message>` sends a DM and opens that conversation
28
+ - `/to <username-or-user-id>` opens a DM conversation
29
+ - `/create` asks for a server name and selects its `#general`
30
+ - `/invite` asks for duration and creates a pasteable `vex://invite/...` link
31
+ - `/invite <username-or-user-id>` sends an invite link by DM
32
+ - Incoming `vex://invite/...` links show a server preview and ask whether to join
33
+ - `redeem <code-or-link>` previews a server invite, asks you to confirm, then opens its first channel
34
+ - Plain text sends to the selected DM/channel
35
+ - `/create server <name>` creates a server and selects its `#general`
36
+ - `/invite [duration]` creates a pasteable `vex://invite/...` link for the current server
37
+ - `/members` lists people in the current channel
38
+ - `/whoami`
39
+ - `/quit`
40
+
41
+ Scriptable helpers still exist:
42
+
43
+ ```sh
44
+ pnpm vex auth register alice
45
+ pnpm vex auth register bob
46
+ pnpm vex alice
47
+ pnpm vex bob
48
+ pnpm vex auth accounts
49
+ pnpm vex dm send bob "hello"
50
+ pnpm vex server create team
51
+ pnpm vex invite redeem <invite-id>
52
+ ```
53
+
54
+ Incoming messages play a small sound by default. Use `--sound off` to disable it, `--sound Glass` for a macOS system sound name, or `--sound /path/to/file.wav` for a custom audio file. `VEX_CHAT_SOUND` works too.
55
+
56
+ For delivery debugging, run chat with `--debug`:
57
+
58
+ ```sh
59
+ pnpm --silent vex --debug alice
60
+ ```
61
+
62
+ Debug mode writes CLI send/receive/routing decisions to a log file under the CLI data directory. Use `--debug-file ./alice-debug.log` to choose a path. Use `--debug-level trace` only when you also need noisy libvex mail diagnostics.
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@vex-chat/cli",
3
+ "version": "0.1.3",
4
+ "description": "Terminal client for vex-chat.",
5
+ "type": "module",
6
+ "bin": {
7
+ "vex-chat": "./src/vex-chat.js"
8
+ },
9
+ "files": [
10
+ "src",
11
+ "theme.yaml",
12
+ "LICENSE",
13
+ "LICENSE-COMMERCIAL",
14
+ "LICENSING.md",
15
+ "CLA.md"
16
+ ],
17
+ "author": "Extra <extrahash@protonmail.com>",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/vex-protocol/vex-protocol.git",
21
+ "directory": "apps/vex-cli"
22
+ },
23
+ "bugs": {
24
+ "url": "https://github.com/vex-protocol/vex-protocol/issues"
25
+ },
26
+ "homepage": "https://github.com/vex-protocol/vex-protocol/tree/master/apps/vex-cli#readme",
27
+ "publishConfig": {
28
+ "access": "public",
29
+ "registry": "https://registry.npmjs.org/"
30
+ },
31
+ "dependencies": {
32
+ "better-sqlite3": "11.10.0",
33
+ "msgpackr": "^1.11.9",
34
+ "@vex-chat/libvex": "^6.6.1"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^25.6.0",
38
+ "publint": "0.3.18"
39
+ },
40
+ "engines": {
41
+ "node": ">=24.0.0"
42
+ },
43
+ "license": "AGPL-3.0-or-later",
44
+ "scripts": {
45
+ "vex": "pnpm --dir ../.. --filter @vex-chat/types --filter @vex-chat/crypto --filter @vex-chat/libvex --if-present build && node src/vex-chat.js",
46
+ "start": "pnpm --dir ../.. --filter @vex-chat/types --filter @vex-chat/crypto --filter @vex-chat/libvex --if-present build && node src/vex-chat.js",
47
+ "dev": "pnpm --dir ../.. --filter @vex-chat/types --filter @vex-chat/crypto --filter @vex-chat/libvex --if-present build && node scripts/dev-watch.mjs",
48
+ "watch": "pnpm --dir ../.. --filter @vex-chat/types --filter @vex-chat/crypto --filter @vex-chat/libvex --if-present build && node scripts/dev-watch.mjs",
49
+ "diagnose": "node scripts/diagnose-three-clients.mjs",
50
+ "smoke": "node scripts/smoke-three-clients.mjs",
51
+ "lint:pkg": "publint --strict"
52
+ }
53
+ }