noUI()

// Written by // // Read it in about 5 minutes // RE: AI

This post is brought to you by Clerk. Add secure, native iOS authentication in minutes with Clerk’s pre-built SwiftUI components.

Lately, I’ve been thinking a lot about the concept of a user interface. Like, weirdo, existential stuff. Why did we even make them in the first place?

Remember the good old days of Microsoft DOS? Just a welcoming, plain and greenish terminal. Alawys complete with a blinking green cursor inviting you to press enter, and a list of options:

Microsoft(R) MS-DOS Version 6.22 (C) Copyright Microsoft Corp 1981-1994.   C:\>NOUI   SWIFTJECTIVE-C AGENT HARNESS ----------------------------------------   Select option:

I guess the idea of a user interface is to help people get something done, perform a certain task, accomplish whatever it is they have in mind. And the easiest way to do that, is…well, visually.

Though recently, I’ve started to have a weird realization that maybe the best UI in this world of agents is sometimes… not having one at all. In fact, I dictated this post all in Codex’s mac app (yes, I know — which is a UI! Hang with me though):

A screenshot of writing a blog post in Codex for Mac.

Here are few things I would’ve made an admin dashboard, custom interface, or any interface at all for about a year ago:

  1. Customizing a server driven “Event” in a bespoke upcoming app.
  2. Reviewing feature requests for Elite Hoops.
  3. Managing blog posts for the company blog at Superwall.

Of course, in all three instances, I realized each of these things are agent driven processes. So why bother? I just tell the agent what I need. The only UI, at any stage, is the harness running the agent.

So I’m curious — is this a prominent direction the world is headed? I don’t think it’ll go so far to where we get to a place of “An ad-hoc agent and your prompt is the app for the given task”, as some people tend to think. I am, naturally, using an agent, without an extra UI in the target “thing” I’m working on, to produce some sort of output for an existing app.

Buuuuuut, it is also a little bit more in that direction than I would’ve thought. For me, a prompt can have the verisimilitude of an app: it’s a place to express intent, then I make revisions, and finally end up with the thing I wanted. Or maybe DOS had it right all along?

Until next time ✌️

···

Spot an issue, anything to add?

Reach Out.