2025-08-04 18:11:24 +00:00
< center >
2025-08-08 07:59:19 +00:00
< img width = "100" height = "100" src = "https://github.com/sunglocto/pi/blob/255bc3749c089e3945871ddf19dd17d14a83f9ff/pi.png" >
2025-08-04 18:11:24 +00:00
< / center >
2025-08-12 11:04:53 +00:00
[](https://github.com/sunglocto/pi/actions/workflows/linux.yml)
[](https://github.com/sunglocto/pi/actions/workflows/windows.yml)
[](https://github.com/sunglocto/pi/actions/workflows/macos.yml)
[](https://github.com/sunglocto/pi/actions/workflows/freebsd.yml)
2025-08-08 07:59:19 +00:00
< img width = "1920" height = "1080" alt = "image" src = "https://github.com/user-attachments/assets/9e2d9209-6ad5-4f22-94d0-4cc18c835372" / >
2025-08-06 09:29:30 +00:00
2025-08-05 09:16:48 +00:00
## the XMPP client from hell
2025-08-06 00:07:54 +01:00
> it's 10% code. 20% ai
2025-07-30 16:01:44 +00:00
2025-08-06 00:07:54 +01:00
Experimental and extremely weird XMPP client written in Go. No solicitors.
2025-07-30 16:04:05 +00:00
2025-08-06 00:07:54 +01:00
pi is currently pre-pre-pre-pre alpha software which you should not use as your primary XMPP client.
2025-07-30 16:04:05 +00:00
2025-08-08 16:07:17 +00:00
pi uses [Fyne ](https://fyne.io ) for the frontend and uses the [Oasis SDK ](https://github.com/jjj333-p/oasis-sdk ) by [Joseph Winkie ](https://pain.agency ) for XMPP functionality.
2025-08-04 10:05:43 +01:00
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)
2025-08-05 11:58:55 +00:00
When you launch pi, you will be greeted with a create account screen. You will then be able to enter your XMPP account details and then relaunch the application to log in.
2025-08-06 00:07:54 +01:00
If you want to add MUCs or DMs, you must configure the program by editing the pi.xml file. Here is an example configuration:
2025-08-05 17:49:29 +01:00
```xml
< piConfig >
< Login >
< Host > example.com:5222< / Host >
< User > user@example .com</ User >
< Password > 123456789< / Password >
< DisplayName > sunglocto< / DisplayName >
< TLSoff > false< / TLSoff >
< StartTLS > true< / StartTLS >
< MucsToJoin > room1@muc .example.com</ MucsToJoin >
< MucsToJoin > room2@muc .example.com</ MucsToJoin >
< / Login >
< Notifications > true< / Notifications >
2025-08-08 16:07:17 +00:00
< DMs > person1@example .com</ DMs >
2025-08-05 17:49:29 +01:00
< / piConfig >
2025-08-04 10:05:43 +01:00
```
2025-08-08 16:07:17 +00:00
The file is usually located at, on GNU/Linux systems:
```
~/.config/fyne/pi-im/Documents/pi.xml
```
This will be changed eventually, likely before a 3b release.
2025-08-06 00:22:32 +01:00
Currently joining and saving DM tabs is not supported, nor is getting avatars, reactions or encryption.
2025-08-04 10:05:43 +01:00
2025-08-08 16:07:17 +00:00
As of writing, pi supports basic message sending and receiving, replies, file upload and corrections.
2025-08-04 10:05:43 +01:00
## ν α χτίσω
(building)
To build pi, you will need the latest version of Go, at least 1.21. You can grab it [here ](https://go.dev ).
2025-08-08 16:12:43 +00:00
The build instructions are very simple. Simply clone the repo, fetch the repositories and build the program.
2025-08-04 10:05:43 +01:00
2025-08-08 16:10:26 +00:00
Here is a summary of the commands you would need to use:
2025-08-04 10:05:43 +01:00
```bash
2025-08-08 16:10:26 +00:00
git clone https://github.com/sunglocto/pi-im
cd pi-im
2025-08-04 10:05:43 +01:00
go mod tidy
go build .
2025-08-08 16:10:26 +00:00
./pi-im
2025-08-04 10:05:43 +01:00
```
2025-08-04 18:14:05 +00:00
> Uh, Windows???
2025-08-10 12:40:45 +00:00
The commands above should be virtually identical, aside from changing `./pi-im` to `pi-im.exe` . If you compile it, it will most likely work with no issues:
2025-08-10 12:36:27 +00:00
< img width = "1627" height = "1022" alt = "image" src = "https://github.com/user-attachments/assets/5a6c188f-e890-4398-856c-e88f5804e9d2" / >
2025-08-04 10:05:43 +01:00
2025-08-10 12:36:27 +00:00
Static executable snapshots are also provided for GNU/Linux systems on every new version, and CI runs on every commit, producing a binary on every successful build, for Linux, Windows and MacOS.
You're welcome.
2025-08-04 10:05:43 +01:00
2025-08-08 16:07:17 +00:00
## εγκατάσταση
(installation)
2025-08-08 16:08:19 +00:00
Pi currently has no consolidated way of installing it. There is an [Arch User Repository package available ](https://aur.archlinux.org/pi-im ), which is maintained by [snit ](https://isekai.rocks/~snit ).
2025-08-04 18:07:37 +00:00
2025-08-06 00:07:54 +01:00
## υποστήριξη
2025-08-05 23:52:35 +01:00
(support)
You can file an issue and explain the problem you are having.
If you would like a more instant method of communication, join the [pi XMPP room. ](xmpp:pi@room.sunglocto.net?join )
2025-08-06 00:07:54 +01:00
## μαρτυρίες
(testimonials)
From fellow insane and schizophrenic XMPP users:
> anyways this is your "just IM" client things ig.
> this looks like shit
> fyne is the best UI toolkit (sarcastic)
> i am going to explode you
> pi devstream when
2025-08-06 21:05:15 +00:00
< img width = "361" height = "66" alt = "image" src = "https://github.com/user-attachments/assets/5a926f6b-1005-4795-a6ef-4e0538bb4d5a" / >
< img width = "316" height = "73" alt = "image" src = "https://github.com/user-attachments/assets/52309c60-8110-43eb-9c45-56c9cfd82cc4" / >
2025-08-06 00:07:54 +01:00
## επιπλέον
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
2025-08-06 00:22:32 +01:00
If the number gets too long, it will reset to one digit of 2π. Once that gets too long, it will be digits of 3π and etc.
2025-08-04 18:15:28 +00:00
Named after [Psi ](https://github.com/psi-im/psi ).