About the Project
Inspiration
The inspiration for this project came from a desire to build a modern, customizable terminal experience that breaks away from the limitations of traditional console windows. We wanted something lightweight, extensible, and visually clean, something that felt more like a code editor's integrated terminal than a raw system shell. We saw it as a chance to dive deeper into UI/UX within the context of a developer tool. We also really wanted to integrate a Git Client that could handle commits, pushes, and merges like a modern IDE.
What We Learned
Through this project, we learned a about pain of making GUIs. Furthermore, we deepened our knowledge of the way terminals work, which was significantly more complicated than we had expected.
How We Built It
The app is built using WinUI 3. The Git Client is integrated through a separate window and was made using Github's "oauth application" service. The way the terminal works is it uses Microsoft's pseudoconsoles, which allow our terminal to easily pipe information to and from stdin/stdout. Then we built an ANSI escape sequence parser to handle the most common escape sequences programs uses to interact with the console.
Challenges
Understanding exactly how consoles work was difficult. Specifically being able to interact with cmd.exe, since there is very little documentation online about how pseudoconsoles work. Getting the GUI to work was shockingly difficult. The autocomplete and mixing asynchronous with a GUI created a lot of strange errors that were hard to root out.
Log in or sign up for Devpost to join the conversation.