The experiment
I like trying new things. At work I use AI all the time, but as an assistant: I am in the loop for every feature. I agree with the agent on what it is going to write, correct it as it goes, and keep its work in line with the bigger picture of the project. This works very well. What I had never tried is the opposite: let the model work on its own from start to finish, choose the solutions, find its own mistakes and improve its own code.
At the same time I wanted to use my own experience. A model works better when its work is structured: there is a problem statement, a breakdown into tasks, steps that end with tests and a review of the design. Not “make it good”, but a process that looks like the classic way of building software, the one I know works. There is nothing new here. It is only a formalisation of what already exists, written down precisely enough to be run without me.
And I did not want to spend thousands of dollars on it. So the third thing I wanted to see is how the models work together when each one does the job that fits its price:
- Claude is the organiser and planner: it designs the interfaces, writes the tests and splits the work into small tasks.
- Jev, a small and very cheap decision model, is the orchestrator: it checks the result against the task and decides what happens next.
- Bonsai, a 27B model running locally on my GPU, does all the grunt work.
I had heard about this kind of setup, but I had never used it in practice.
The project
Then the question was what to build. I did not want another to-do application or another proof of concept. I have made too many pet projects like that, and they led nowhere. This time it had to be something I really need and will use every day.
I chose a desktop client for Matrix. Matrix is an open, federated chat protocol: anyone can run a server (I run my own), servers talk to each other the way email servers do, rooms can be end-to-end encrypted, and any client works with any server.
This may look like a strange choice, because there are already many Matrix desktop clients. But each of them has something that does not work for me:
- Element is the closest to what I need, but it runs only on Electron, which is heavy, and on my Hyprland desktop the left Alt key opens its menu, while I switch keyboard layouts with left Alt.
- FluffyChat is poor in features: it turns message HTML into its own widgets, so formatting comes out badly, and it has no threads.
- With the others there were other unpleasant things: no custom themes in Nheko, no text selection with the mouse in Fractal.
These are all good clients, and I have no big complaints about them. I could live with their shortcomings or send pull requests. The closest to my wishes was Tesseract, but it develops fast enough that keeping a fork would be expensive, and I did not want to carry its Windows and macOS code.
So two things came together: the wish to try a process where models write the code, and the wish to have a good client made for my needs, one I can change in any direction without depending on the plans, means or taste of its maintainers. That is how Exerakt was born: a Matrix desktop client for Wayland, written in Rust.
How it is going is the subject of the next posts.