@ -3,6 +3,7 @@ layout: project
title: Circle
title: Circle
description: A thin client and server for group chat, supporting IRC & Matrix
description: A thin client and server for group chat, supporting IRC & Matrix
categories: projects client
categories: projects client
thumbnail: /docs/projects/images/circle-fe-term+matrix-small.png
author: LeoNerd
author: LeoNerd
maturity: Beta
maturity: Beta
---
---
@ -12,7 +13,49 @@ Circle is an IRC & Matrix client which merges the best attributes of a local cli
* Keep IRC connects and state on a backend server, allowing disconnections from local UI.
* 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.
* 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 ](http://www.leonerd.org.uk/code/circle/circle-two-fes.png )
![image ](/docs/projects/images/circle-fe-term+matrix.png )
Get the code from [LeoNerd's Bazaar ](http://www.leonerd.org.uk/code/circle/obtain.html ).
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 ))