Personally, I’m not that great with the terminal 🤣. But I love it.

When copilot CLI came out (I’m poor and get my tokens through work), I felt very much like… I don’t need to use VS Code anymore. There’s nothing wrong with VS Code. I just have always wanted to live in the terminal.

I’m a huge fan of LazyVim and sidekick. LazyVim for Ambitious Developers is also an amazing resource I heavily recommend.

Once you have your terminal set up, it’s all magic 🪄.

But let’s be a bit more serious. You don’t use agents on your local machine, you use them in devcontainers or other forms of “sandboxes” (some good, some bad, some partial, eh…).

Now this is where the problem starts.

It turns out, once you have a containerized environment, you need a way to forward ports in and out of the sandbox (or use dev-tunnels, pick your poison).

At Microsoft, we heavily use GitHub Codespaces, and I ended up writing/vibing gh-ado-codespaces, which handles a lot of fancy stuff for me:

  • Reverse Port forwarding (get access to local LLMs, services, chromium debug ports, etc…)
  • Automatic port forwarding (I write a lot of web apps…)
  • Some auth tunnelling goodness (I don’t need this for personal projects)

I also have a Linux server at home that I ssh into, but never really made my life that much easier for utilizing it. A big blocker with gh-ado-codespaces is tied to the GitHub CLI.

The other day, I just asked copilot to make an ssh clone of gh-ado-codespaces, and remove the azure auth bits… And it one shotted it 🤣. I get it’s not overly impressive, but I was impressed!

Previous models would kind of lose their minds at some point and I’d just give up. You’d see them drop a ton of knowledge/tasks whenever they hit compaction (which in the past was all the time). Now, it could actually one shot a new CLI tool based on another (it’s kind of scary). I was really expecting a lot of things to just be flat out broken or missing.

This vibe port is called devssh and is just useful for doing dev work through ssh 🤣. It turns out for me, my laptop is the most powerful machine I have… so when I remote into my home desktop, I actually serve inference from my laptop to my desktop 😵‍💫.

Lately too, I’ve been vibing a wrapper on devpod that utilizes devssh called redev. Definitely a work in progress 🤣, but I’m using it right now to right this post 🤔 (realistically, devssh can work with devpod directly since it supports ssh already, so why another wrapper wrapper…).

All in all, it’s fun seeing how amazing CLI tooling is and can be. So many have existed for so long, mildly disappeared, and are now making crazy comebacks. Others are modern takes on historic tools. We see folks developing new libraries and frameworks to make writing TUIs easier and more approachable for folks.