I love running and programming.
What I'm working on
When we started developing Mordecai a few months ago, we knew that there was one problem we were intent on being a part of solving: programming with LLMs. We had used products such as GitHub Copilot, Codeium, and Cursor and weren't totally happy with their design philosophy. These apps take the approach of LLM integrations directly inside of your text editor, and none of us liked this. I use Neovim, and one of my co-founders uses Helix; neither of us were prepared to switch to a different way of editing code just so we could get an LLM integration, so we decided to build Mordecai, a browser-based programming tool — not just another VS Code fork.
Why should I use Mordecai?
If you use Neovim, Helix, Emacs, or any unconventional text editor, Mordecai is one of the easiest ways to program with LLMs. You certainly don't need to use one of these editors to use Mordecai; many of our users don't use them. The beauty of Mordecai is that you can use it irrespective of your text editor.
Linking a live repository
There have previously been attempts made to integrate coding with LLM apps in the browser, but they all lacked one key ingredient: live code sync. We have created a CLI tool that can be run in a local code repo; this will give Mordecai context of your code repo and update as you change/write files. We have found this to be one of the most elegant approaches to this complex problem. You can see how to do that here.
The interface
Let me paint you a picture: you're using ChatGPT, Cursor, or Claude; you've asked a question and got a great answer; you have a whole lot of different questions you want to ask about the response, but at the same time you don't want to muddy the chat with a bunch of questions because the original context will eventually be lost. Well, we all had the same problem.
Surely there has to be a better way to do this? After a few different attempts, we have come up with a solution that we love: threads. The core of the Mordecai interface is the concept of threads. Within each chat, you can open up multiple different threads. Each new thread that you open will have the context of the previous one, so if you want to quickly ask a question about a response you were given, you can open a new thread, ask a question about it, then delete it.
An example of our multi-thread interface.
We didn't stop there... By using threads, a whole new world of interactions opens up, including the generation of what we call internal links. Within a thread, you will see certain headings and words underlined; this means that you can click them. If you click on one, it will open up a new thread explaining the topic in greater detail.
An example of how internal-links work.
Organisation
Trying to navigate through previous chats has always been a pain for us, so we created spaces, a way for you to organise your chats. Each space can have different context too, so if you want to keep the code context for the back-end, and the front-end, of a new app you're working on separate from all your other chats, you can simply create a new space and sync your code to that new space.
Different types of context
If you navigate to the context menu, you will notice that you can also upload files directly; this allows all the same file types as we allow with our CLI tool, as well as PDFs. You can see the full list of file types that we support here. If there are file types you don't see on that list that you would like to see us support, please don't hesitate to get in touch.
Using Mordecai
If you encounter any issues with Mordecai, you can let us know here. If you would like to know more about how Mordecai can best fit your use case, you can also book a call with me on Cal