IRC server that is actually a Matrix client. Use your favourite IRC client to communicate with the Matrix matrix-client irc-server lolwut matrix-org
HEAD Latest release released
35 1 2
Georg Gadinger

🕴 AgentSmith

AgentSmith allows you to communicate with the Matrix using your favourite IRC client (or bot).

This is just a silly proof of concept for now, but it looks promising. It is not yet recommended to use this in production.

Screenshot of KVIrc displaying a conversation within a Matrix room


  • Communicate with rooms which have set a main alias
  • ~~Annoy~~ Delight others with colours
  • File attachments are expanded as a HTTP link, ready to be opened by a browser

Features that still need to be done/would be nice to have

  • ~~Rooms without main aliases (this perhaps also covers private messages)~~
  • Maybe support multiple homeservers at once
  • A nicer way to log in to your homeserver
  • Several IRC commands (e.g. ~~WHO~~, ~~NAMES~~, LIST)
  • ~~Map permissions to IRC channel modes (e.g. Admin (100) -> +o, Moderator (50) -> +h etc.)~~
  • File uploads (DCC?)
  • TLS


Install crystal using your favourite package manager as guided by the Crystal docs. After that, building AgentSmith should be as easy as:

shards build

The resulting binary is then located in ./bin/AgentSmith.

macOS Mojave note: You may run into an error saying the compiler could not find OpenSSL. To fix that, install openssl from Homebrew and point PKG_CONFIG_PATH to OpenSSL's pkgconfig directory:

# zsh, bash:
export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig

# tcsh:
setenv PKG_CONFIG_PATH /usr/local/opt/openssl/lib/pkgconfig


After building (see Installation section above), run it:

# Authenticate with your home server for the first time
./bin/AgentSmith -s https://your_homeserver_url

# Once you got your access token and exported the MATRIX_ACCESS_TOKEN variable,
# run it again to start the IRC server:
./bin/AgentSmith -s https://your_homeserver_url

Once the server is running, you can point your favourite IRC client to it and connect to the Matrix!

mIRC server options



  1. Write new code
  2. (optionally) Write specs for your code
  3. Make sure it compiles and the specs work: shards build + crystal spec
  4. And, of course, make sure it starts up like it should (see Usage section above)


  1. Fork it (
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Run the Crystal formatter (crystal tool format)
  4. Commit your changes (git commit -am 'Add some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create a new Pull Request


Code of Conduct

Everyone interacting in the AgentSmith project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

  github: nilsding/AgentSmith
License MIT
Crystal 0.29.0


Dependencies 2

  • crest
    {'github' => 'mamantoha/crest'}
  • secrets
    {'github' => 'faustinoaq/secrets'}

Development Dependencies 0

Dependents 0

Last synced .
search fire star recently