Skip to content

🕴 An IRC server that is actually a Matrix client. Use your favourite IRC client to communicate with the Matrix.

License

Notifications You must be signed in to change notification settings

nilsding/AgentSmith

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🕴 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.

About

🕴 An IRC server that is actually a Matrix client. Use your favourite IRC client to communicate with the Matrix.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published