Discussion:
[whispersystems] signal javascript library & chatbot
Josh King
2017-03-28 18:02:08 UTC
Permalink
Hi all,

I was just emailing this list because I've been working for a little
while on a side project to create a standalone Signal javascript
library (not like libsignal-protocol-javascript implementing just the
wire protocol, but something closer to libsignal-service-java). Namely,
porting the "libtextsecure" components of the excellent Signal desktop
client so that they could be used in a standalone fashion under Nodejs
or in the browser. I had the idea of using this to create a chatbot
capable of running on top of Signal using the Hubot framework, which
could be fun and useful for various kinds of text notification
services, but the library could also be useful in other projects. Both
would of course be distributed under the GPLv3 with all due credit to
OWS.

It's pretty early days yet, but I was wondering if anyone is working on
something similar, or if this seems like a useful project or a good
idea. I saw some discussion on this list of notification services over
Signal a while back, and hope that this would also be considered an
acceptable use of the Signal service. Anyway, many thanks to OWS for
creating such a great platform!
--
Josh King
PGP Fingerprint: 8269 ED6F EA3B 7D78 F074 1E99 2FDA 4DA1 69AE 4999
Raphael Arias
2017-03-29 07:16:08 UTC
Permalink
Hi Josh,

we have been planning to integrate a Signal interface into Botkit [0] as
part of a sort of proof-of-concept for a small student project. I would
definitely be interested to see your ideas and your progress. I have not
looked at Hubot but it also sounds interesting.

Cheers,
R

Disclaimer: I am not associated in any way with OWS or HowdyAI/Botkit.

[0] https://github.com/howdyai/botkit
Post by Josh King
Hi all,
I was just emailing this list because I've been working for a little
while on a side project to create a standalone Signal javascript
library (not like libsignal-protocol-javascript implementing just the
wire protocol, but something closer to libsignal-service-java). Namely,
porting the "libtextsecure" components of the excellent Signal desktop
client so that they could be used in a standalone fashion under Nodejs
or in the browser. I had the idea of using this to create a chatbot
capable of running on top of Signal using the Hubot framework, which
could be fun and useful for various kinds of text notification
services, but the library could also be useful in other projects. Both
would of course be distributed under the GPLv3 with all due credit to
OWS.
It's pretty early days yet, but I was wondering if anyone is working on
something similar, or if this seems like a useful project or a good
idea. I saw some discussion on this list of notification services over
Signal a while back, and hope that this would also be considered an
acceptable use of the Signal service. Anyway, many thanks to OWS for
creating such a great platform!
Josh King
2017-03-30 16:11:22 UTC
Permalink
Hi Raphael,

My plan is to expose an API for the javascript library that more or
less mimics the API for libsignal-service-java (which it mostly does
already). From there, it should be pretty easy to write an 'adapter'
(i.e., a plugin for communication over a particular service) for Hubot
(https://hubot.github.io) in a few lines. Hubot is written in
javascript/coffeescript and has a very simple API for writing those
adapters (if I recall correctly it just has two functions). This would
then make it possible to use any of the hundreds of existing plugins in
the Hubot ecosystem over Signal.

So far, I have a rough port of the library to nodejs that supports
account creation and verification. Most of the rest of it is there as
well, but in order for sending and receiving messages to work properly
it would probably be best to change the way that storage works. The
existing code from Signal-Desktop uses backbone.js to store settings
and state, which doesn't work great on nodejs. I plan to flip that part
so that developers can supply their own settings and state
implementation, similar to libsignal-service-java. That'll be a bit of
work, so I figured it was a good point to make sure this wasn't a
terrible idea!

I hadn't heard of Botkit, but I'll check it out!
Post by Raphael Arias
Hi Josh,
we have been planning to integrate a Signal interface into Botkit [0] as
part of a sort of proof-of-concept for a small student project. I would
definitely be interested to see your ideas and your progress. I have not
looked at Hubot but it also sounds interesting.
Cheers,
R
Disclaimer: I am not associated in any way with OWS or
HowdyAI/Botkit.
[0] https://github.com/howdyai/botkit
Post by Josh King
Hi all,
I was just emailing this list because I've been working for a little
while on a side project to create a standalone Signal javascript
library (not like libsignal-protocol-javascript implementing just the
wire protocol, but something closer to libsignal-service-java). Namely,
porting the "libtextsecure" components of the excellent Signal desktop
client so that they could be used in a standalone fashion under Nodejs
or in the browser. I had the idea of using this to create a chatbot
capable of running on top of Signal using the Hubot framework, which
could be fun and useful for various kinds of text notification
services, but the library could also be useful in other projects. Both
would of course be distributed under the GPLv3 with all due credit to
OWS.
It's pretty early days yet, but I was wondering if anyone is
working on
something similar, or if this seems like a useful project or a good
idea. I saw some discussion on this list of notification services over
Signal a while back, and hope that this would also be considered an
acceptable use of the Signal service. Anyway, many thanks to OWS for
creating such a great platform!
--
Josh King
PGP Fingerprint: 8269 ED6F EA3B 7D78 F074 1E99 2FDA 4DA1 69AE 4999
Loading...