2021-07-02 23:22:37 -07:00
# iamb
2023-10-20 19:32:33 -07:00
[](https://github.com/ulyssa/iamb/actions?query=workflow%3ACI+)
2023-01-06 16:56:28 -08:00
[](https://crates.io/crates/iamb)
2023-03-10 18:08:42 -08:00
[](https://matrix.to/#/#iamb:0x .badd.cafe)
2023-01-06 16:56:28 -08:00
[](https://crates.io/crates/iamb)
2021-07-02 23:22:37 -07:00
## About
2022-12-29 18:00:59 -08:00
`iamb` is a Matrix client for the terminal that uses Vim keybindings.
2021-07-02 23:22:37 -07:00
2022-12-29 18:00:59 -08:00
This project is a work-in-progress, and there's still a lot to be implemented,
but much of the basic client functionality is already present.
2021-07-02 23:22:37 -07:00
2023-03-05 13:28:08 -08:00

2023-01-05 18:37:58 -08:00
## Documentation
You can find documentation for installing, configuring, and using iamb on its
website, [iamb.chat].
2021-07-02 23:22:37 -07:00
## Installation
2023-10-05 18:37:31 -07:00
Install Rust (1.67.0 or above) and Cargo, and then run:
2021-07-02 23:22:37 -07:00
```
2023-01-23 17:08:11 -08:00
cargo install --locked iamb
2021-07-02 23:22:37 -07:00
```
2023-03-09 11:26:30 +01:00
### NetBSD
On NetBSD a package is available from the official repositories. To install it simply run:
```
pkgin install iamb
```
2023-03-22 10:54:14 -04:00
### Arch Linux
2023-06-15 16:48:59 -04:00
On Arch Linux a [package ](https://aur.archlinux.org/packages/iamb-git ) is available in the
Arch User Repositories (AUR). To install it simply run with your favorite AUR helper:
2023-03-22 10:54:14 -04:00
```
paru iamb-git
```
2024-02-27 22:43:03 -05:00
### openSUSE Tumbleweed
On openSUSE Tumbleweed a [package ](https://build.opensuse.org/package/show/home%3Asmolsheep/iamb ) is available from openSUSE Build Service (OBS). To install just use OBS Package Installer:
```
opi iamb
```
2023-03-22 10:54:14 -04:00
2023-03-24 10:32:14 +00:00
### Nix / NixOS (flake)
```
nix profile install "github:ulyssa/iamb"
```
2022-12-29 18:00:59 -08:00
## Configuration
You can create a basic configuration in `$CONFIG_DIR/iamb/config.json` that looks like:
2024-02-28 23:21:31 -08:00
```json
{
"profiles": {
"example.com": {
"user_id": "@user:example .com"
}
}
}
```
If you homeserver is located on a different domain than the server part of the
`user_id` and you don't have a [`/.well-known` ][well_known_entry] entry, then
you can explicitly specify the homeserver URL to use:
2022-12-29 18:00:59 -08:00
```json
{
"profiles": {
"example.com": {
"url": "https://example.com",
2023-01-03 13:57:28 -08:00
"user_id": "@user:example .com"
2022-12-29 18:00:59 -08:00
}
}
}
```
2022-12-29 20:25:38 -08:00
## Comparison With Other Clients
To get an idea of what is and isn't yet implemented, here is a subset of the
Matrix website's [features comparison table][client-comparison-matrix], showing
two other TUI clients and Element Web:
2023-01-13 18:02:58 -08:00
| | iamb | [gomuks] | [weechat-matrix] | Element Web/Desktop |
| --------------------------------------- | :---------- | :------: | :--------------: | :-----------------: |
| Room directory | ❌ ([#14 ]) | ❌ | ✔️ | ✔️ |
2023-01-28 14:24:08 -08:00
| Room tag showing | ✔️ | ✔️ | ❌ | ✔️ |
2023-01-25 17:54:16 -08:00
| Room tag editing | ✔️ | ✔️ | ❌ | ✔️ |
2023-01-13 18:02:58 -08:00
| Search joined rooms | ❌ ([#16 ]) | ✔️ | ❌ | ✔️ |
| Room user list | ✔️ | ✔️ | ✔️ | ✔️ |
| Display Room Description | ✔️ | ✔️ | ✔️ | ✔️ |
| Edit Room Description | ✔️ | ❌ | ✔️ | ✔️ |
| Highlights | ❌ ([#8 ]) | ✔️ | ✔️ | ✔️ |
| Pushrules | ❌ | ✔️ | ❌ | ✔️ |
2023-01-28 14:24:08 -08:00
| Send read markers | ✔️ | ✔️ | ✔️ | ✔️ |
| Display read markers | ✔️ | ❌ | ❌ | ✔️ |
2023-01-13 18:02:58 -08:00
| Sending Invites | ✔️ | ✔️ | ✔️ | ✔️ |
| Accepting Invites | ✔️ | ✔️ | ✔️ | ✔️ |
| Typing Notification | ✔️ | ✔️ | ✔️ | ✔️ |
| E2E | ✔️ | ✔️ | ✔️ | ✔️ |
| Replies | ✔️ | ✔️ | ❌ | ✔️ |
| Attachment uploading | ✔️ | ❌ | ✔️ | ✔️ |
| Attachment downloading | ✔️ | ✔️ | ✔️ | ✔️ |
| Send stickers | ❌ | ❌ | ❌ | ✔️ |
2023-01-23 17:08:11 -08:00
| Send formatted messages (markdown) | ✔️ | ✔️ | ✔️ | ✔️ |
2023-01-13 18:02:58 -08:00
| Rich Text Editor for formatted messages | ❌ | ❌ | ❌ | ✔️ |
2023-01-23 17:08:11 -08:00
| Display formatted messages | ✔️ | ✔️ | ✔️ | ✔️ |
2023-01-13 18:02:58 -08:00
| Redacting | ✔️ | ✔️ | ✔️ | ✔️ |
| Multiple Matrix Accounts | ✔️ | ❌ | ✔️ | ❌ |
| New user registration | ❌ | ❌ | ❌ | ✔️ |
| VOIP | ❌ | ❌ | ❌ | ✔️ |
2023-02-09 23:22:19 -08:00
| Reactions | ✔️ | ✔️ | ❌ | ✔️ |
2023-01-19 16:05:02 -08:00
| Message editing | ✔️ | ✔️ | ❌ | ✔️ |
2023-03-05 13:28:08 -08:00
| Room upgrades | ❌ ([#41 ]) | ✔️ | ❌ | ✔️ |
2023-01-13 18:02:58 -08:00
| Localisations | ❌ | 1 | ❌ | 44 |
2023-11-04 17:39:17 -04:00
| SSO Support | ✔️ | ✔️ | ✔️ | ✔️ |
2023-11-16 08:36:22 -08:00
| Image preview | ✔️ | ❌ | ❌ | ✔️ |
2022-12-29 20:25:38 -08:00
2021-07-02 23:22:37 -07:00
## License
iamb is released under the [Apache License, Version 2.0].
[Apache License, Version 2.0]: https://github.com/ulyssa/iamb/blob/master/LICENSE
2022-12-29 20:25:38 -08:00
[client-comparison-matrix]: https://matrix.org/clients-matrix/
2023-01-05 18:37:58 -08:00
[iamb.chat]: https://iamb.chat
2022-12-29 20:25:38 -08:00
[gomuks]: https://github.com/tulir/gomuks
[weechat-matrix]: https://github.com/poljar/weechat-matrix
2024-02-28 23:21:31 -08:00
[well_known_entry]: https://spec.matrix.org/latest/client-server-api/#getwell -knownmatrixclient
2022-12-29 20:25:38 -08:00
[#8 ]: https://github.com/ulyssa/iamb/issues/8
[#14 ]: https://github.com/ulyssa/iamb/issues/14
[#16 ]: https://github.com/ulyssa/iamb/issues/16
2023-03-05 13:28:08 -08:00
[#41 ]: https://github.com/ulyssa/iamb/issues/41