
Shout – A web IRC client - zkanda
https://github.com/erming/shout
======
nilkn
It's neither free nor open-source and it's cloud-hosted, but IRCCloud
(irccloud.com) probably deserves a mention. Like I said, it's a bit of a
different solution since it's more than just a client, but what I like about
it is that it basically solves every problem a typical IRC user is likely to
encounter:

\- It stays auto-connected with no configuration.

\- It offers a great desktop (web-based) UI, including embedded images,
videos, tweets, pastebins, and more.

\- It offers fantastic mobile apps for both iOS and Android, for both phone
and tablet form factors.

~~~
BuildTheRobots
I got to meet some of the IRCCloud developers last weekend at EMFcamp. It's a
fantastic app and a much more civilised way of keeping a persistent irc
connection than any mix of irssi, shells or bouncers I've come across to date.
The web interface is lovely and the android/iphone apps are extremely usable.
Can't recommend enough :)

------
erming
Hey, guys.

Thanks for all the attention! The repository is here:
[https://github.com/erming/shout](https://github.com/erming/shout)

It's open source, so if you're looking for a cool new project to work on, feel
free to help out!

~~~
ionwake
Thanks this is awesome - I would love to integrate it with sagebump.com
instead of using freenodes client.

Can I ask why there is a 20 slot limit? How can one increase this?

~~~
sjm
The 20 slot limit being mentioned is just in regards to the demo connecting to
freenode. The demo connects to freenode from a single IP address and freenode
has limits on how many connections you can have from one IP. It's not
something you need to worry about in a normal use-case.

------
odc
Another great web IRC client: [http://convos.by/](http://convos.by/)

I still prefer Convos for all its built-in features and great community.

~~~
staticshock
Another one built on node.js, just like shout, is "subway":
[https://github.com/thedjpetersen/subway](https://github.com/thedjpetersen/subway)

------
alrs
Please let this put an end to the hipchat/slack madness.

~~~
wut42
I love IRC but Slack/hipChat has some features IRC can't provide. Especially,
the "formatted"/"preview" (images, videos, URL preview, tables) messages.

Even if the IRC client supports some of theses features, the protocol is just
text, you can't add meta/structured data to a message.

~~~
wlesieutre
Along with the image previews, being able to just paste an image into chat
(and have it automatically upload to S3) is a _huge_ deal if you're working on
anything visual.

~~~
morganherlocker
Limechat shows image links inline, which is good enough for me anyway. In some
ways it is even preferable to tying things to one particular storage solution
like s3.

~~~
avree
You have to upload the image yourself, then. In a workflow, this is a time-
waster.

~~~
mnutt
There's no reason Shout couldn't accept HTML5 copy-and-paste, upload locally
or to s3, and the send a link to the uploaded image.

~~~
avree
Which is what Slack does, the ideal use case I was describing.

The person I was replying to inquired as to why uploading the image and
pasting a link was a problem. He said:

"Limechat shows image links inline, which is good enough for me anyway. In
some ways it is even preferable to tying things to one particular storage
solution like s3."

------
lorenzhs
If you prefer something that doesn't force you to go all in, check out Glowing
Bear. It's a WeeChat relay client that I've been contributing to. Basically,
it connects to your existing WeeChat running on your server, meaning you can
continue using that, or use both in parallel. Works great on mobile as well.

[https://github.com/glowing-bear/glowing-bear](https://github.com/glowing-
bear/glowing-bear)

[http://www.glowing-bear.org/](http://www.glowing-bear.org/)

[https://play.google.com/store/apps/details?id=com.glowing_be...](https://play.google.com/store/apps/details?id=com.glowing_bear)

Why reinvent the wheel when you can let someone else do the heavy lifting? ;)

~~~
nuclear_eclipse
Or just use an IRC bouncer and connect _any_ IRC client to it at any time, and
get a lot more features than what Weechat offers. ;)

~~~
johnchristopher
I've never been able to easily configure an IRC bouncer but I found letting
weechat run on a Pi (or another server somewhere) was easier.

~~~
laumars
ZNC isn't any harder to set up than installing these web clients. In fact ZNC
has it's own web interface for configuring it (and does so with a self
contained webserver so you don't need node.js / mojo / etc frameworks).

I'm not trying to take anything away from these excellent projects though.
Just saying IRC bouncers aren't any harder to install than these projects

~~~
acous
There's some advantages to using a web-irc client. You get a clean way of
scrolling back through your history. Unread message count is stored server-
side. In general the state is synchronised where a bouncer can leave multiple
clients out of sync with each other.

~~~
laumars
I've never had that issue with bouncers to be honest. In fact the whole point
of bouncers is to:

1: hide your IP (moot point if you're hosting your own bounce though. And a
lot of IRC networks hide your IP for you anyway)

2: offer a way of keeping your history

3: store your unread messages server side.

4: keep all your clients and states synchronised

I'm not saying there's anything wrong with a web client (in fact I'm tempted
to try the one submitted here). But I think there's a lot of misconceptions
about bounces too.

In an ideal world I'd use both; have a web client connect to ZNC. So I can log
onto the IRC client when a guest on someone's PC (eg cybercafe) but also have
the ability to use native clients from the same nick for when I'm sat on my
own laptop or on my phone (there's some half decent native Android IRC
clients)

~~~
lorenzhs
But WeeChat in a terminal multiplexer + Glowing Bear offers you exactly that.
When you read something in Glowing Bear, it is marked as read in WeeChat. You
can access it securely from anywhere with any modern browser or smart phone /
tablet. When you feel like using the native command-line client, just ssh/mosh
into your server and attach to your tmux/screen session. There are other relay
clients as well if you want to use those.

(Sync from WeeChat to Glowing Bear and between multiple instances is something
we're working towards with the developer of WeeChat)

~~~
laumars
Why do you guys hate IRC bounces so much? You're investing a lot of time
trying to convict me that I should ditch my ZNC and replace it with something
that replicates its functionality in a longer winded fashion.

I don't want to run my bounce in a detached screen session, I want a proper
daemon. It's easier to install and manage if it's a proper daemon. And if I'm
going to be using a terminal based IRC client (which I often do) then I'd be
running Irssi.

I don't want your stupid halfway solution when I already have a proper IRC
bounce set up that does all that and more.

------
TeMPOraL
There are a lot of comments here about how IRC lacks features of
HipChat/Slack/whatever. If you want to try going _the other way around_ ,
here's how to upgrade your IRC to support Jabber (including Facebook chat),
Twitter and some other stuff:

[http://www.bitlbee.org/main.php/news.r.html](http://www.bitlbee.org/main.php/news.r.html)

~~~
chimeracoder
> There are a lot of comments here about how IRC lacks features of
> HipChat/Slack/whatever.

I really don't understand this. What _features_ does IRC lack that Hipchat
has? AFAIK, the advantage of Hipchat is the branding, the packaging, and the
support.

The one thing I see ("image previews") is a feature of the client, not IRC
itself. And many clients _used_ to offer that, way back - the reason they
turned it off was because it was a great vector to (e.g.) goatse someone. In
any GUI-based IRC client, this is dead simple.

Most of what Hipchat seems to provide is branding and support, and I get that
that's very valuable, but I don't see why that needs to be viewed as an
either/or situation.

~~~
rakoo
As always, the problem is not technical, it's packaging. Technically IRC can
do all that Hipchat does, but Hipchat provides a simple bundle that any team
can subscribe to/buy and use for _all_ its use cases. To replicate the same
thing with IRC, you'd need bouncers for everyone with full text search
capability, a shared history of everything that happened on the server(s) of
the network, support for filesharing _for all clients, not just the desktop
ones_ , you'd need some serious management of presence and profile
information...

Never forget the "Show HN: Dropbox" and its immediate technical rebuttal [0],
see where it is now.

Oh and Hipchat seems to do screen sharing, which AFAIK is not possible with
IRC.

[0]
[https://news.ycombinator.com/item?id=9224](https://news.ycombinator.com/item?id=9224)

~~~
kuschku
Hmm, what you are suggesting in the beginning sounds just like Quassel:

It is a Bouncer with full PostgreSQL database of the whole log, full search
functionality, a shared history between users of the same bouncer, etc.

There are clients as a website (runs on node.js), for Windows, Mac, Linux, iOS
and Android.

So, if someone would add the missing features to Quassel, we could make that
one the new new HipChat.

------
girvo
Looks amazing! My IRC server uses a password however, and I can't see anyway
if inputting that. I tried using a straight /connect command, but that doesn't
appear to work either. Might have a go at a pull-request!

~~~
hsx
I had a discussion with erming about this because I use ZNC. There's actually
a /raw command, so you use /raw PASS user:pass to do it, IIRC!

There's also a /quote command.

~~~
girvo
Ah I was hoping that'd be the case, I tried a few commands that work in other
ones, but I'll give that a try! Thanks!

Edit: wait, that's for password protected channels, right? I need to pass a
password through on server connection otherwise my ircd boots you off and
kills the socket :(

------
beefhash
Are SSL connections to the remote IRCd (usually via port 6697 or 9999)
supported?

~~~
dewey
Interested in this as well. Wasn't able to get it working so far.

------
general_failure
Fantastic! I am now running it locally and works very well for me out of the
box. (Using the shout-irc.com doesn't seem to work)

Feature request: Make it work with quassel core. Currently there is
[https://github.com/magne4000/quassel-
webserver](https://github.com/magne4000/quassel-webserver) but I don't like
the UI as much as yours. [https://github.com/magne4000/node-
libquassel](https://github.com/magne4000/node-libquassel) might help you with
quassel connectivity.

~~~
general_failure
Also desktop notifications :)

------
glomph
Not as pretty but [http://kiwiirc.com/](http://kiwiirc.com/) is a more mature
web irc client that you might want to check out.

------
brotoss
Related question; anyone got a decent IRC desktop client for Windows? I'm
using HexChat now, but loved Limechat wayyyy more on OSX. So much
simpler/clean.

~~~
higherpurpose
Use Quassel, open source and cross-platform.

[http://quassel-irc.org/](http://quassel-irc.org/)

~~~
scrollaway
I second quassel. Not only is it an excellent client, it has an awesome
core/client architecture.

------
accatyyc
I really like the looks of this! Great work! Might start using it instead
of/together with wee chat for the ease of use.

A suggestion - (I know I can just use my own CSS but,) there are low contrasts
in the default theme. I usually have very good vision but for me it's pretty
hard to distinguish the green from the white background. Maybe you could edit
the default colors a bit?

------
jamestomasino
I'm using it now on freenode, so I guess I'm one of the fast 20. My first
thought is that this is a really great and simple interface. I'd like to be
able to hide the join/part messages, though.

I'll be forking shortly. Thanks!

------
kkl
Nice work. Out of curiosity, allowing someone to connect to a service via your
servers could open you up to malicious activity. Do you rate-limit users from
quickly and constantly opening and closing a connection?

~~~
erming
Well, my idea when I started this project: A self-hosted and password
protected IRC client that runs in your browser.

However, I added "public" mode, where anyone is allowed to connect. And the
demo server is currently running in this mode.

So right now? Nope. I'm not limiting anything. I guess this will be up to the
person running the server to decide.

Thanks!

------
Mandatum
If only WebSockets allowed for raw TCP/UDP requests in the browser - would
bypass the need to connect over a third-party server..

~~~
lorenzhs
True, but you would only be connected while your browser is open. I think it
is preferable to have a client running somewhere on a server and connecting to
that. Even better if it's not a third-party server but your own. In the end,
what's the difference between attaching a screen session and connecting a web
client? I use WeeChat in a terminal multiplexer and connect to it with Glowing
Bear.

------
pspeter3
This is beautiful. Is this open source at all?

~~~
barake
The repo is at
[https://github.com/erming/shout](https://github.com/erming/shout)

Looks pretty neat - even setup to work decently on mobile devices.

------
bluedino
Aren't web-based IRC interfaces just ripe for abuse and DDoS, even if they are
closely integrated to the network?

~~~
nacs
This is just the demo page for the software. I believe you are meant to host
this on your own server (and IP/HTTP-auth restrict it if necessary).

------
BorisMelnik
I've been looking a great way to get into network stack programming in
javascript, this looks perfect.

------
edpichler
I really liked it, very clean.

------
blueflow
Looks fancy and very simple usage. Looking forward to make a testing
deployment.

------
elwell
Looks nice, but I'll stick with "M-x irc".

~~~
TeMPOraL
Upgrade to "M-x erc". Or try "M-x weechat" :).

------
Phil987
Looks nice, you cannot close a channel in firefox though.

~~~
erming
Hey, thanks. That's a bug! I'll fix it when the HN madness ends.

------
wudf
Seems slower than qwebirc. Anything it does better?

------
codebutler
TapChat is similar, has web and Android apps:
[http://tapchatapp.com/](http://tapchatapp.com/)

------
erming
HN Mods: Could you change the url to
[https://github.com/erming/shout](https://github.com/erming/shout) instead?

