Hi all!
I first learned about Nim last August because it was presented to me as the "language that is powerful, and LLMs have limited training data option" and I noted that. Full disclosure I rely entirely on AI for coding, and I have learned most of what I know from an intro C++ course in college and tinkering on side projects. I never felt comfortable trying to ship any of these side projects for a quick buck and was having more fun learning without the distribution hassle.
Fast forward a few months, and I wanted to give LLMs a chance to work with Nim after all the recent agentic innovations. The agentic CLI tools have made terminals the spotlight again, so I decided to see if we could build a terminal in Nim. What we ended up with was: Waymark
Waymark | GitHub | YouTube Demo

Waymark is a Nim terminal built on the foundations of the OpenGL, GLFW, and Pixie Nimble packages. It currently builds and runs on both Linux (Fedora tested) and Windows. The Linux version includes a Valgrind ran report with 0 definite/indirect/possible lost bytes in the tested parent-process paths (see /tests/memory/reports directory for details). Building off the packages, to become a real working terminal emulator we had to build in a few key pieces. The main legwork included a working PTY/ConPTY with a DEC-compatible VT parser. Valgrind was brand new to me so if anyone has suggestions for paths that are missing that would be great! I'm interested to know if the AI actually built a real piece of systems software or if it's hiding parts I need to know about.
This is not xterm parity by any means, and it's most mature in modern shells and TUIs since that is where I spend most of my time. I've ran basics like htop, vim, nano, Claude Code, and Opencode in it. I do actually wanna try it as my daily driver because it does everything I need, and I can uncover more bugs.
This directory houses the secret to why I attempted this build finally. I've been working on a workflow engine for my AIs that forces code to run through a validation gate and gets stored for reuse later. The theory is that if we store these independent snippets, improve upon them overtime, and keep using in projects to find edge cases, we will stomp out the slop and be left with golden implementations. For those who love critiquing this is the directory I would love the most feedback on! All of that code can be enforced to achieve certain validation metrics compared to the "glue code". You can find custom rules for Waymark at the .cartograph/rules/rules.nim and the baseline rules in the linked Cartograph repo in the readme.
If anyone wants to know more about my workflow I'd be happy to share! Everything I built and used is Open Source and MIT, so no trade secrets being kept!
