--- layout: project title: Circle description: A thin client and server for group chat, supporting IRC & Matrix categories: projects client thumbnail: /docs/projects/images/circle-fe-term+matrix-small.png author: LeoNerd maturity: Beta --- # {{ page.title }} Circle is an IRC & Matrix client which merges the best attributes of a local client and the common screen+irssi recipe. * Keep IRC connects and state on a backend server, allowing disconnections from local UI. * Interact with a real local GUI for the frontend, instead of incurring SSH roundtrips for every keypress. * Supports IRC, Matrix, ![image](http://www.leonerd.org.uk/code/circle/circle-two-fes.png) ![image](/docs/projects/images/circle-fe-term+matrix.png) First, get the code from CPAN: ``` $ cpan Circle $ cpan Circle::Net::Matrix $ cpan Circle::FE::Term ``` Now you can run the backend. Personally I keep UNIX sockets in `$HOME/var/run` but of course feel free to use whatever path you like. ``` $ mkdir -p ~/var/run $ cd circle-be $ ./circle-be --socket ~/var/run/circle.sock ``` Now you can run the frontend, which connects to the backend server via ssh and connects to that UNIX socket. ``` $ cd circle-fe-term $ ./circle-fe-term sshunix://server/var/run/circle.sock ``` Then in the Global tab, create a new Matrix network: ``` /networks add -type matrix Matrix ``` Then in the new MyNet tab for that network, configure it and connect: ``` /set homeserver example.org /set user_id @me:example.org /set access_token MDAxABCDE... /connect ``` (for now, you'll have to steal the access token from another Matrix client, such as Riot or [App::MatrixTool](https://metacpan.org/pod/App::MatrixTool))