A terminal gui for signal-cli, written in Go.
- signal-cli. (>=0.6.7)
siggo uses the dbus daemon feature of signal-cli, so libunixsocket-java
(Debian) or libmatthew-unix-java
(AUR) is required.
Install signal-cli and put it somewhere safe in your path. You will need to follow its instructions to either link or register your device. The siggo link <phonenumber>
subcommand has been added to make linking more user-friendly, but has not been tested sufficiently. Be sure to prefix with +
and country code (for example +12345678901
).
When setup is finished, you should be able to run without error:
signal-cli -u +<yourphonenumber> receive --json
You are now ready to use siggo
.
make build
bin/siggo
j
- Scroll Downk
- Scroll UpJ
- Next ContactK
- Previous Contacti
- Insert ModeCTRL+L
- Clear input field
I
- Compose (opens $EDITOR and lets you make a fancy message)y
- Yank Modeyy
- Yank Last Message (from current conversation)yl
- Yank Last URL
o
- Open Mode (doesn't work yet)oo
- Open Last Attachmentol
- Open Last Link
ESC
- Normal ModeALT+Q
- Quit
Supports W3C and hex.
Note: Matches on contact name, so if you have two people with the same name they will get the same color.
siggo cfg color "Leloo Dallas" DarkViolet
siggo cfg color "Ruby Rhod" "#00FF00"
If you save the output of signal-cli like so:
signal-cli -u +<yourphonenumber> receive --json > example_messages.json
You can then run siggo using it as mock input. This is useful for development and testing.
bin/siggo -m example_messages.json
This way you can test without sending yourself messages.
Here is a list of things that are currently broken.
- Send read receipts for incoming messages (
signal-cli
limitation, but might be fixed soon) - Open mode
Here is a list of features I'd like to add soonish.
- Attachments support
- gui configuration
- let user re-sort contact list (for example alphabetically)
- command to go to next contact with message waiting
- command to go to contact with fuzzy matching
- groups support
- use dbus to send instead of signal-cli, to avoid having to spin up the JVM (might also fix the read receipt issue)
- there is still some data that i'm dropping on the floor
- wouldn't tests be neat?