You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dinosaure ae7763ef95 Merge pull request ', roburio ->, robur-coop' (#3) from into main
Reviewed-on: #3
3 weeks ago
bin Lint a bit the codebase (intf.) 4 months ago
mirage Apply ocamlformat 5 months ago
src Lint a bit the codebase (intf.) 4 months ago
test/rope Fix the rope implementation and the safe_iter_range 4 months ago
.gitignore Rename the project to catty 5 months ago
.ocamlformat Upgrade 6 months ago, roburio ->, robur-coop 3 weeks ago
catty.opam, roburio ->, robur-coop 3 weeks ago
dune-project First commit 7 months ago

Ca-tty, an IRC client as an unikernel

catty is an unikernel which launches an SSH server with an IRC client. The goal of this unikernel is to provide an easy way to deploy and run an IRC client and let the user to idle in IRC with the smallest resource as he/she can have.

The project is experimental.

How to test it?

Currently, we provide also a simple binary which can be used as an IRC client:

$ git clone
$ cd catty
$ opam pin add -yn .
$ opam install --deps-only catty
$ dune exec bin/catty.exe -- \
  --nickname dinosaure --nickname dinosaure1 --nickname dinosaure2 \
  --realname "Romain Calascibetta"

The executable produces a log.txt to help to debug.

How to use the interface?

The UI is like a Vim interface:

  • you have a mode
    1. the normal mode (the default one)
    2. the insertion mode (from the normal mode, you can tap i)
    3. the command mode (from the normal mode, you can tap :)
    4. you can come back to the normal mode with Esc

The normal mode let you to set the input. We advise the user to look into src/ to see modes and key bindings.

Possible commands?

Currently, catty implements few commands:

  • connect <server> to connect to an IRC server via TLS
  • whoami [<server>] to know which nickname you got
  • join [<server>] <channel> to join a channel

A basic usage will be:

  1. :, connect
  2. join #mirage
  3. Esc, i, tap your message

How to participate?

The most interesting way to participate is to try it and ask to implement features or implement by yourself what you want and propose a PR!

Currently, we use:

GitHub mirror

Currently, the GitHub repository is a mirror to You can make a pull-request on GitHub or directly on if you want.