You should try those! You can easily create your own few examples of complex behavior (like the ones you already have), add them to a prompt file, load that prompt and try some other hard queries. I've been quite surprised at what it can handle with the right few examples
Disclaimer - I worked on this Codex CLI prototype.
This is totally valid. We built it such that you are still in charge of whether or not you accept the command - what you see are just suggestions, not code that will automatically run. That said, there will be people who accept something they don't understand. We've been thinking about detecting dangerous commands and warning the user to proceed with caution - would this seem like a tenable approach for you?
Disclaimer - I worked on this Codex CLI prototype.
As someone who's worked on natural language interfaces for years this hits hard. The long tail of ways that people express themselves have always made it near impossible to truly build systems that understand our intent and can act on it. I don't think LLMs are a silver bullet that nullify this, but I do think they're exceptionally better than what we've had in the past and that with the right user interface can help us take strides in the right direction.
In the case of the Codex CLI - the goal isn't to eliminate PowerShell, Bash or zsh as computer interfaces, but to assist developers (new and old) as they're using them. The Codex CLI is using Codex off-the-shelf (no customization), and is already quite capable of helping me handle complex shell tasks that I would have taken me much longer to handle in the past. That it can rely on my NL->Code dialog history also gives it context about my task that StackOverflow could never have.
I think the key here will boil down to the user experience - a UX that eliminates shell languages and just takes natural language would be awful, but one that thoughtfully helps you express yourself in terse languages can be helpful.
Disclaimer - I worked on this Codex CLI prototype.
You definitely do have to press enter to execute the command - as with Copilot, you - the developer - can, and should, retain control.
I also like figuring things out myself, but find myself using this tool to help me do so. If I'm using kubectl to run some esoteric command, I'd rather not leave the shell to figure it out - my usage pattern is usually to ask once or twice, and then use that knowledge to handle it on my own the next time