2025-08-04 10:05:43 +01:00
# π
2025-08-04 16:05:07 +00:00
[](https://github.com/sunglocto/pi/actions/workflows/go.yml)
2025-07-30 16:01:44 +00:00
Experimental and extremely weird XMPP client made with Go. No solicitors.
2025-07-30 16:04:05 +00:00
pi is currently pre-pre-pre-pre alpha software which you should not use right now.
2025-08-04 10:05:43 +01:00
pi uses [Fyne ](https://fyne.io ) for the frontend and uses the [Oasis SDK ](https://github.com/jjj333-p/oasis-sdk ) for XMPP functionality.
pi is an extremely opinionated client. It aims to have as little extra windows as possible, instead using alt-menus to perform many of the actions you'd see in a typical client.
## διαμόρφωση
(configuration)
In order to use pi, you currently have to create a `pi.json` file in the working directory of the executable. Here is how one looks like:
```json
{
"Host":"example.com:5222",
"User":"user@example .com",
"Password":"123456",
"DisplayName":"user",
"NoTLS":false,
"StartTLS":true,
2025-08-04 15:52:11 +00:00
"Mucs":["room@muc .example.com"]
}
2025-08-04 10:05:43 +01:00
```
Edit this file as necessary.
Currently joining and saving DM tabs is not supported, nor is getting avatars, reactions, encryption of media embed.
As of writing, pi supports basic message sending and receiving, replies and file upload.
## ν α χτίσω
(building)
To build pi, you will need the latest version of Go, at least 1.21. You can grab it [here ](https://go.dev ).
The build instructions are very simple. Simply clone the repo, fetch the repositories and build the program:
Here is a summary of the commands you would need to use to build and run the program:
```bash
git clone https://github.com/sunglocto/pi
cd pi
go mod tidy
go build .
vim pi.json
./pi
```
Static executable snapshots are also provided for GNU/Linux systems.
## χρήση
(usage)
TODO
2025-08-04 18:07:37 +00:00
# επιπλέον
(extra)
Pi version numbers are the digits of Pi followed by a letter indicating the phase of development the program is in.
2025-08-04 18:08:37 +00:00
2025-08-04 18:07:37 +00:00
For example, the version string:
2025-08-04 18:08:37 +00:00
2025-08-04 18:07:37 +00:00
`3.14a`
2025-08-04 18:08:37 +00:00
2025-08-04 18:07:37 +00:00
Is the third version produced in the alpha phase.
2025-08-04 18:08:37 +00:00
2025-08-04 18:07:37 +00:00
The digits of Pi will reset back to `3` when moving to a new phase.
2025-08-04 18:08:37 +00:00
If the number gets too long, it will reset to one digit of 2π. Once that gets to long, it will be digits of 3π and etc.