@chojs23/concord 2.1.13 → 2.2.1
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 +29 -1
- package/README.md +48 -29
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
## [2.1
|
|
5
|
+
## [2.2.1] - 2026-06-13
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- Picker scroll by @chojs23
|
|
10
|
+
|
|
11
|
+
### Documentation
|
|
12
|
+
|
|
13
|
+
- Update readme by @chojs23
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
- Notify for active-channel messages while the terminal is unfocused (#177) in [#177](https://github.com/chojs23/concord/pull/177) by @cultlead3r
|
|
18
|
+
- Add built-in discord commands (#179) in [#179](https://github.com/chojs23/concord/pull/179) by @chojs23
|
|
19
|
+
- Persist TUI side pane visibility (#180) in [#180](https://github.com/chojs23/concord/pull/180) by @chojs23
|
|
20
|
+
|
|
21
|
+
## [2.2.0] - 2026-06-10
|
|
22
|
+
|
|
23
|
+
### Documentation
|
|
24
|
+
|
|
25
|
+
- Update homebrew installation by @chojs23
|
|
26
|
+
- Update image by @chojs23
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
- Wrap message text at word boundaries (#174) in [#174](https://github.com/chojs23/concord/pull/174) by @chojs23
|
|
31
|
+
- Use system keychain and move ui state to XDG_STATE_HOME (#173) in [#173](https://github.com/chojs23/concord/pull/173) by @chojs23
|
|
32
|
+
|
|
33
|
+
## [2.1.13] - 2026-06-07
|
|
6
34
|
|
|
7
35
|
### Bug Fixes
|
|
8
36
|
|
package/README.md
CHANGED
|
@@ -20,6 +20,12 @@ Concord is a feature-rich TUI (terminal user interface) client for Discord, writ
|
|
|
20
20
|
|
|
21
21
|
### Homebrew
|
|
22
22
|
|
|
23
|
+
```sh
|
|
24
|
+
brew install concord
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Or with the tap for the latest version:
|
|
28
|
+
|
|
23
29
|
```sh
|
|
24
30
|
brew install chojs23/tap/concord
|
|
25
31
|
```
|
|
@@ -40,7 +46,9 @@ The npm package installs a prebuilt binary from the GitHub Release artifacts.
|
|
|
40
46
|
|
|
41
47
|
### Cargo
|
|
42
48
|
|
|
43
|
-
Install native
|
|
49
|
+
Install native dependencies first.
|
|
50
|
+
|
|
51
|
+
On macOS with Homebrew:
|
|
44
52
|
|
|
45
53
|
```sh
|
|
46
54
|
brew install opus pkg-config
|
|
@@ -58,12 +66,6 @@ On Debian or Ubuntu:
|
|
|
58
66
|
sudo apt install libopus-dev libasound2-dev pkg-config
|
|
59
67
|
```
|
|
60
68
|
|
|
61
|
-
On macOS with Homebrew:
|
|
62
|
-
|
|
63
|
-
```sh
|
|
64
|
-
brew install opus pkg-config
|
|
65
|
-
```
|
|
66
|
-
|
|
67
69
|
```sh
|
|
68
70
|
cargo install concord --locked
|
|
69
71
|
```
|
|
@@ -162,7 +164,9 @@ aplay -D pulse /usr/share/sounds/alsa/Front_Center.wav
|
|
|
162
164
|
|
|
163
165
|
Email and QR code logins may trigger a CAPTCHA challenge on Discord's side. We cannot solve that, so I strongly recommend using token authentication.
|
|
164
166
|
|
|
165
|
-
|
|
167
|
+
By default, tokens are saved in the system keychain when available. In the
|
|
168
|
+
default `auto` mode, Concord falls back to its state directory when keychain
|
|
169
|
+
storage is unavailable. See the Security section below for details.
|
|
166
170
|
|
|
167
171
|
### Guilds & Channels
|
|
168
172
|
|
|
@@ -274,7 +278,7 @@ With default vim-style navigation:
|
|
|
274
278
|
| `/` | Filter Guilds/Channels, search Messages/Members |
|
|
275
279
|
| `Space` | Open leader shortcut window |
|
|
276
280
|
| `i` | Text insert mode |
|
|
277
|
-
| `Esc`
|
|
281
|
+
| `Esc` / `q` | Close popup, cancel mode, or go back |
|
|
278
282
|
| `q` | Quit Concord |
|
|
279
283
|
|
|
280
284
|
`Ctrl+n` and `Ctrl+p` are fixed row movement keys. The default `j` and `k`
|
|
@@ -367,14 +371,14 @@ Voice commands:
|
|
|
367
371
|
You can paste copied files into the composer to attach them. Pending uploads
|
|
368
372
|
are shown above the input before sending.
|
|
369
373
|
|
|
370
|
-
| Shortcut
|
|
371
|
-
|
|
|
372
|
-
| `Ctrl+v`
|
|
373
|
-
| `Ctrl+e`
|
|
374
|
-
| `Ctrl+c`
|
|
375
|
-
| `Ctrl+Left`/ `Ctrl+Right`
|
|
376
|
-
| `Ctrl+Backspace
|
|
377
|
-
| `Delete`
|
|
374
|
+
| Shortcut | Action | Description |
|
|
375
|
+
| -------------------------------------------- | ----------------- | ---------------------------------------------------------------- |
|
|
376
|
+
| `Ctrl+v` | paste clipboard | Attach copied files or images when present, otherwise paste text |
|
|
377
|
+
| `Ctrl+e` | open $EDITOR | Open $EDITOR on the current draft for long editing |
|
|
378
|
+
| `Ctrl+c` | clear | Clear current draft |
|
|
379
|
+
| `Ctrl+Left`/ `Ctrl+Right` | Jump word | Jump the cursor by word |
|
|
380
|
+
| `Alt+Backspace`, `Ctrl+Backspace` / `Ctrl+w` | Delete word | Delete the word before the cursor |
|
|
381
|
+
| `Delete` | Detach attachment | Removes the last pending attachment |
|
|
378
382
|
|
|
379
383
|
#### Mention picker
|
|
380
384
|
|
|
@@ -400,12 +404,15 @@ When the composer input starts with a slash `/`, the command suggestion popup
|
|
|
400
404
|
## Configuration
|
|
401
405
|
|
|
402
406
|
Concord options are stored under Concord's config directory. If
|
|
403
|
-
`XDG_CONFIG_HOME` is set, Concord uses
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
407
|
+
`XDG_CONFIG_HOME` is set, Concord uses `config.toml` for app options and `keymap.toml` for key settings.
|
|
408
|
+
Otherwise it uses the platform config directory.
|
|
409
|
+
|
|
410
|
+
Local UI state and plaintext fallback credentials are stored under Concord's
|
|
411
|
+
state directory instead. If `XDG_STATE_HOME` is set, Concord uses
|
|
412
|
+
`$XDG_STATE_HOME/concord/state.toml` and
|
|
413
|
+
`$XDG_STATE_HOME/concord/credentials.toml`. Otherwise it uses
|
|
414
|
+
`~/.local/state/concord/state.toml` and
|
|
415
|
+
`~/.local/state/concord/credentials.toml`.
|
|
409
416
|
|
|
410
417
|
You can change some configuration from the in-app Options menu, and Concord saves them back
|
|
411
418
|
to `config.toml`. Key settings are read from `keymap.toml`.
|
|
@@ -437,6 +444,11 @@ circular_avatars = false
|
|
|
437
444
|
# Send custom emoji your account cannot use directly as image links.
|
|
438
445
|
emojis_as_links = false
|
|
439
446
|
|
|
447
|
+
[credentials]
|
|
448
|
+
# Credential storage: auto, keychain, or plain.
|
|
449
|
+
# auto tries the system keychain first and falls back to the state file.
|
|
450
|
+
store = "auto"
|
|
451
|
+
|
|
440
452
|
[notifications]
|
|
441
453
|
# Show desktop notifications for Discord messages that pass notification rules.
|
|
442
454
|
desktop_notifications = true
|
|
@@ -483,6 +495,12 @@ voice_output_volume = 100
|
|
|
483
495
|
This setting only applies to attachment, embed, and attachment viewer previews.
|
|
484
496
|
Avatars and custom emoji keep their separate small-image behavior.
|
|
485
497
|
|
|
498
|
+
`credentials.store` supports these values:
|
|
499
|
+
|
|
500
|
+
- `auto`: try the system keychain first, then fall back to the state-file credential store.
|
|
501
|
+
- `keychain`: use only the system keychain. If keychain storage is unavailable, the token is not saved.
|
|
502
|
+
- `plain`: use only the plain-text state-file credential store.
|
|
503
|
+
|
|
486
504
|
<details>
|
|
487
505
|
<summary>Default keymap config</summary>
|
|
488
506
|
|
|
@@ -491,6 +509,7 @@ Avatars and custom emoji keep their separate small-image behavior.
|
|
|
491
509
|
leader = "space"
|
|
492
510
|
StartComposer = "i"
|
|
493
511
|
OpenPaneFilter = "/"
|
|
512
|
+
ClosePopup = "q"
|
|
494
513
|
FocusGuildPane = "1"
|
|
495
514
|
FocusChannelPane = "2"
|
|
496
515
|
FocusMessagePane = "3"
|
|
@@ -565,13 +584,13 @@ ShowProfile = "p"
|
|
|
565
584
|
[keymap.composer]
|
|
566
585
|
OpenEditor = "<C-e>"
|
|
567
586
|
PasteClipboard = "<C-v>"
|
|
568
|
-
InsertNewline = { keys = ["<S-enter>", "<C-enter>", "<A-enter>"] }
|
|
587
|
+
InsertNewline = { keys = ["<C-j>", "<S-enter>", "<C-enter>", "<A-enter>"] }
|
|
569
588
|
Submit = "enter"
|
|
570
589
|
Close = "esc"
|
|
571
590
|
ClearInput = "<C-c>"
|
|
572
591
|
RemoveLastAttachment = "delete"
|
|
573
592
|
DeletePreviousChar = "backspace"
|
|
574
|
-
DeletePreviousWord = { keys = ["<C-backspace>", "<C-w>"] }
|
|
593
|
+
DeletePreviousWord = { keys = ["<A-backspace>", "<C-backspace>", "<C-w>"] }
|
|
575
594
|
MoveCursorUp = "up"
|
|
576
595
|
MoveCursorDown = "down"
|
|
577
596
|
MoveCursorWordLeft = "<C-left>"
|
|
@@ -632,10 +651,10 @@ No. If Discord requires a CAPTCHA during login, use token login instead.
|
|
|
632
651
|
|
|
633
652
|
## Security
|
|
634
653
|
|
|
635
|
-
-
|
|
636
|
-
- On
|
|
637
|
-
-
|
|
638
|
-
-
|
|
654
|
+
- By default, tokens are stored in the system keychain when available.
|
|
655
|
+
- On Linux, keychain storage uses Secret Service when a compatible service is available.
|
|
656
|
+
- In `credentials.store = "auto"`, Concord falls back to **plain text** credentials under Concord's state directory when keychain storage is unavailable. In `keychain` mode, Concord does not fall back to plain storage. Keep fallback credential files secure and do not share them. You can use a token from that file to log in to the official Discord client, so treat it like a password.
|
|
657
|
+
- On Unix, the fallback credential's parent directory is created with `0700` and the credential file with `0600` permissions.
|
|
639
658
|
|
|
640
659
|
## Contributing
|
|
641
660
|
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"hasInstallScript": true,
|
|
24
24
|
"license": "GPL-3.0-only",
|
|
25
25
|
"name": "@chojs23/concord",
|
|
26
|
-
"version": "2.1
|
|
26
|
+
"version": "2.2.1"
|
|
27
27
|
},
|
|
28
28
|
"node_modules/@isaacs/cliui": {
|
|
29
29
|
"engines": {
|
|
@@ -542,5 +542,5 @@
|
|
|
542
542
|
}
|
|
543
543
|
},
|
|
544
544
|
"requires": true,
|
|
545
|
-
"version": "2.1
|
|
545
|
+
"version": "2.2.1"
|
|
546
546
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"artifactDownloadUrls": [
|
|
3
|
-
"https://github.com/chojs23/concord/releases/download/v2.1
|
|
3
|
+
"https://github.com/chojs23/concord/releases/download/v2.2.1"
|
|
4
4
|
],
|
|
5
5
|
"bin": {
|
|
6
6
|
"concord": "run-concord.js"
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"zipExt": ".tar.xz"
|
|
94
94
|
}
|
|
95
95
|
},
|
|
96
|
-
"version": "2.1
|
|
96
|
+
"version": "2.2.1",
|
|
97
97
|
"volta": {
|
|
98
98
|
"node": "18.14.1",
|
|
99
99
|
"npm": "9.5.0"
|