shout

The modern IRC client

npm install shout
13 downloads in the last day
38 downloads in the last week
248 downloads in the last month

Shout

Run your IRC client on a server and access it from the web browser. This gives you a persistent connection and allows you to chat from multiple devices at the same time.

Contributing

Shout is open source and open for contributions. Any sort of help is appreciated!
Come join #shout-irc on Freenode!

Screenshots

And also..
Mobile interface

Install

  1. Install Node.js and NPM
    sudo apt-get -y install nodejs npm

  2. Clone the project from GitHub
    git clone http://github.com/erming/shout

  3. Open folder
    cd shout/

  4. Install Node packages
    npm install --production

  5. Run the server
    npm start or node index.js

  6. Open your browser
    http://localhost:9000

Commands

These are the commands currently implemented:

  • [x] /ame
  • [x] /amsg
  • [x] /close
  • [x] /connect
  • [x] /deop
  • [x] /devoice
  • [x] /disconnect
  • [x] /invite
  • [x] /join
  • [x] /kick
  • [x] /leave
  • [x] /me
  • [x] /mode
  • [x] /msg
  • [x] /nick
  • [x] /notice
  • [x] /op
  • [x] /part
  • [x] /partall
  • [x] /query
  • [x] /quit
  • [x] /raw
  • [x] /say
  • [x] /send
  • [x] /server
  • [x] /slap
  • [x] /topic
  • [x] /voice
  • [x] /whoami
  • [x] /whois

Events

Using Socket.IO
Events sent from the server to the browser:

// Event: "join"
// Sent when joining a new channel/query.
socket.emit("join", {
  id: 0,
  chan: {
    id: 0,
    name: "",
    type: "",
    network: "",
    count: 0,
    messages: [],
    users: [],
  }
});

// Event: "messages"
// Sent after the server receives a "fetch" request from client.
socket.emit("messages", {
  id: 0,
  msg: []
});

// Event: "msg"
// Sent when receiving a message.
socket.emit("msg", {
  id: 0,
  msg: {
    time: "",
    type: "",
    from: "",
    text: "",
  }
});

// Event: "networks"
// Sent upon connecting to the server.
socket.emit("networks", {
  networks: [{
    id: 0,
    host: "",
        name: "",
    channels: [],
  }]
});

// Event: "part"
// Sent when leaving a channel/query.
socket.emit("part", {
  id: 0
});

// Event: "users"
// Sent whenever the list of users changes.
socket.emit("users", {
  id: 0,
  users: [{
    mode: "",
    name: "",
  }]
});

License

Available under the MIT license.

npm loves you