Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In game design we used to call this opacity “hunt the verb” in text adventures.

All chat bots suffer this flaw.

GUIs solve it.

CLIs could be said to have it, but there is no invitation to guess, and no one pretends you don’t need the manual.





For CLIs - most reasonable commands either have a `-h`, `--help`, `-help`, `/?`, or what have you. And manpages exist. Hunt the verb isn't really a problem for CLIs.

And furthermore - aren't there shells that will give you the --help if you try to tab-complete certain commands? Obviously there's the issue of a lack of standardization for how command-line switches work, but broadly speaking it's not difficult to have a list of common (or even uncommon) commands and how their args work.

(spends a few minutes researching...)

This project evidently exists, and I think it's even fairly well supported in e.g. Debian-based systems: https://github.com/scop/bash-completion.


> For CLIs - most reasonable commands either have a `-h`, `--help`, `-help`, `/?`, or what have you. And manpages exist. Hunt the verb isn't really a problem for CLIs.

"Hunt the verb" means that the user doesn't know which commands (verbs) exist. Which a neophyte at a blank console will not. This absolutely is a problem with CLIs.


Discoverability is quite literally the textbook problem with CLIs, in that many textbooks on UI & human factors research over the last 50 years discuss the problem.

"Hunt the verb" can be alleviated to some degree for programs that require parameters by just showing the manpage when invalid or missing parameters are specified. It's highly frustrating when programs require you to go through every possible help parameter until you get lucky.

I think this is a naming problem. CLI is usually the name for the interface to an application. A Shell is the interface to the OS. Nonetheless agree with your post but this might be part of the difficulty in the discussion

To be super pedantic, wouldn’t the interface to a shell itself be a Command Line Interface? ;)

that’s the ambiguity that I think is tripping the discussion up a little. Also the idea of a CLI/Shell/Terminal is also quite coupled to a system, rather than services. Hence the whole ‘web service’ hope to normalise remote APIs that if you squint hard enough become ‘curl’ on the command line

But the point is none of that is intrinsic or interesting to the underlying idea, it’s just of annoying practical relevance to interfacing with APIs today


Wow, I now feel old.

Per the thread OP, nobody pretends that CLIs do not need a manual.

Many users like myself enjoy a good manual and will lean into a CLI at every opportunity. This is absolutely counter to the value proposition of a natural language assistant.


Yes. But I think the point is a good one. With CLI there is a recognition that there must be a method of learning what the verbs are. And there are many traditions which give us expectations and defaults. That doesn’t exist in the chat format.

Every time I try to interact with one of these llm gatekeepers I just say what I want and hope it figures out to send me to a person. The rest of the time I’m trying to convince the Taco Bell to record a customer complaint about how its existence itself is dystopian.


> And manpages exist.

For older tools, sure. Newer tools eschew man pages and just offer some help flag, even though there are excellent libraries that generate manpages like https://crates.io/crates/clap_mangen or https://crates.io/crates/mandown (for Rust, but I am sure most languages have one) without requiring you to learn troff.


Newer in maturity though, I'd say, no not like 'modern' tools vs. only vintage tools have them. It's just not something people tend to consider early on I think, but popular stuff gets there. (For one thing, at some point someone points it out in the issue tracker!)

All of this is true. “Invitation to guess” is the key phrase in my comment. CLIs present as cryptic, which is a UX _advantage_ over chat wrappers because the implied call to action is “go do some reading before you touch this”.

An AI wrapper typically has few actual capabilities, concealed behind a skeuomorphic “fake person” UX. It may have a private list of capabilities but it otherwise doesn’t know if it knows something or not and will just say stuff.

It really needs to be 100% before it’s useful and not just frustrating.


the comment you're replying to said:

> but there is no invitation to guess, and no one pretends you don’t need the manual

which is basically what you're saying too? the problem with voice UIs and some LLM tools is that it's unclear which options and tools exist and there's no documentation of it.


Siri does have documentation: https://support.apple.com/en-ca/guide/iphone/ipha48873ed6/io.... This list (recursively) contains more things than probably 95% of users ever do with Siri. The problem really boils down to the fact that a CLI is imposing enough that someone will need a manual (or a teacher), whereas a natural language interface looks like it should support "basically any query" but in practice does not (and cannot) due to fundamental limitations. Those limitations are not obvious, especially to lay users, making it impossible in practice to know what can and cannot be done.

CLI + small LLM (I am aware of the oxymoron) trained on docs could be fun

If you like deleting all your files, sure. LLMs, especially small ones, have far too high a propensity for consequential mistakes to risk them on something like that.

I was thinking more in context of interactive help that will just find and display relevant manual info (to get around the problem of "it remembered wrong") rather than vibe coder favourite of "just run what you hallucinated immediately"

The lack of an advertised set of capabilities is intentional so that data can be gathered on what users want the system to do (even if it can't). Unfortunately, this is a terrible experience for the user as they are frustrated over and over again.

Given that they made no apparent use of such information in practice, the unfortunate thing is that they had the idea to begin with.

This is a problem all over our industry:

- almost every search field (when an end user modifies the search instead of clicking one of the results for the second time that should be a clear signal that something is off.)

- almost every chat bot (Don't even get me started about the Fisher Price toy level of interactions provided by most of them. And worse: I know they can be great, one company I interact with now has a great one and a previous company I worked for had another great one. It just seems people throw chatbots at the page like it is a checkbox that needs to be checked.)

- almost all server logs (what pages are people linking to that now return 404?)

- referer headers (you product is being discussed in an open forum and no one cares to even read it?)

We collect so much data and then we don't use it for anything that could actually delight our users. Either it is thrown away or worse it is fed back into "targeted" advertising that besides being an ugly idea also seems to be a stupid idea in many cases: years go by betweeen each time I see a "targeted" ad that actually makes me want to buy something, much less actually buy something.



That's explain why there is a limited set of recommended verbs in PowerShell.

Instead, you get to hunt the nouns.

Very well written, I'm wondering when current "cli haxxxor assistant" FAD will fade away and focus will move into proper, well thought out and adjusted to changed paradigm IDEs instead of wasting resources. Well, maybe not completely wasting as this is probably still part of discovery process.

>GUIs solve it.

Very charitable, but rarely true.


A lot of AI models also suffer this flaw.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: