AgentSmith

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
nilsding/AgentSmith
38 2 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

Features

  • 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

Installation

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

Usage

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

Development

Basically:

  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)

Contributing

  1. Fork it (https://github.com/nilsding/AgentSmith/fork)
  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

Contributors

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.

AgentSmith:
  github: nilsding/AgentSmith
  
License MIT
Crystal 0.29.0

Authors

Dependencies 2

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

Development Dependencies 0

Dependents 0

Last synced .
search fire star recently