Remix.run Logo
▲ kevin_thibedeau 2 hours ago

It's a product of the scope limited interface granted to agents. They get a terminal stream so everything goes into the stream. Piling on more in-band signaling is just going to become a security nightmare. It would be better to have a safe way to query process state that can be locked down as needed.

▲danudey 2 hours ago | parent [-]

As someone who works on a lot of CLI tools at work I actually like the idea of implementing this in some of our long-running tooling, completely independent of the AI agent use case.

I actually created a separate golang library with something like this in mind: https://github.com/danudey/ansipants

The original idea I had being that CI environments, or anywhere that shows terminal output, could use a streaming ANSI parsing library to detect when a program sent a 'change window title' OSC event and then start a new collapsable section in its output. This would let programs update the actual terminal window title with its current state when running locally and update the CI interface when running in CI.

Adding in the ability to specify the program's current status and (optionally) progress could be extremely useful in CI environments as well. Imagine, for example, a long-running analysis task which uses OSC 7501 to say that it's currently running and is 75% of the way done. CI could expose that in the UI to provide useful information to the end-user without having to print a progress bar or multiple progress lines to the fake terminal it's being run in.

▲paaloeye 32 minutes ago | parent | next [-]

Is https://github.com/danudey/ansipants private?

▲paaloeye an hour ago | parent | prev [-]

long-running analysis task can use osc9;4 for progress reporting

spec: https://ghostty.org/docs/vt/osc/conemu