Home

Awesome

My IRC client

Build Status

Library

This package is split into a generic IRC modeling library and a VTY-base text client using that library.

Client Features

TLS

I've added TLS support. You can enable it with the -t flag. Note that Freenode (and other networks) will allow you to authenticate to NickServ via a client certificate. This is configurable via --tls-client-cert.

I use the x509-store for decoding certificates and private key files. This library seems to support PEM formatted files and does not seem to support encrypted private key files. If the key and certificate are both contained in the certificate file the private key command line argument is unnecessary.

Identifying with CERTFP

Startup

glirc <options> SERVER
  -c FILENAME  --config=FILENAME       Configuration file path (default ~/.glirc/config)
  -p PORT      --port=PORT             IRC Server Port
  -n NICK      --nick=NICK             Nickname
  -u USER      --user=USER             Username
  -r REAL      --real=REAL             Real Name
               --sasl-user=USER        SASL username
  -d FILE      --debug=FILE            Debug log filename
  -i USERINFO  --userinfo=USERINFO     CTCP USERINFO Response
  -t           --tls                   Enable TLS
               --tls-client-cert=PATH  Path to PEM encoded client certificate
               --tls-client-key=PATH   Path to PEM encoded client key
               --tls-insecure          Disable server certificate verification
  -h           --help                  Show help

Environment variables
IRCPASSWORD=<your irc password>
SASLPASSWORD=<your sasl password>

Configuration file

A configuration file can currently be used to provide some default values instead of using command line arguments. If any value is missing the default will be used.

Learn more about this file format at config-value

-- Optional file to dump raw server messages
debug-file: "debug.txt"
download-dir: "~/downloads"

-- Defaults used when not specified on command line
defaults:
  port:            6667
  nick:            "yournick"
  username:        "yourusername"
  realname:        "Your real name"
  password:        "IRC server password"
  sasl-username:   "sasl_username"
  sasl-password:   "sasl_password"
  userinfo:        "user info string"
  tls:             yes -- or: no
  tls-client-cert: "/path/to/cert.pem"
  tls-client-key:  "/path/to/cert.key"

-- Override the defaults when connecting to specific servers
servers:
  * hostname:      "chat.freenode.net"
    sasl-username: "someuser"
    sasl-password: "somepass"
    socks-host:    "socks5.example.com"
    socks-port:    8080 -- defaults to 1080

  * hostname:      "example.com"
    port:          7000
    connect-cmds:
      * "JOIN #favoritechannel,#otherchannel"
      * "PRIVMSG mybot another command"

    -- Specify additional certificates beyond the system CAs
    server-certificates:
      * "/path/to/extra/certificate.pem"

Commands

Filters

DCC commands

Keyboard Shortcuts