Hacker Dudes// alternate deck. same feed.
FEED ~10/h Δ0 ────:──── LINK ░ SIGNAL
98%
SPOOLED 0/45 CYCLE 61339.905.158.46
OpenAI CLIgithub.com
244pts/111 comments/5d/─
by armcat / hn> / « feed
▲▼ hahahacorn06:03 hn>

I imagine the play is RL your model to solve problems using your own tools which it knows how to use most efficiently until it defaults to using services like managed agents, etc.

Honestly surprised this wasn't available sooner.

▲▼ mi_lk06:11 hn>

When should I use this over Codex? Is this supposed to be called by other tools/agents?

▲▼ imdsm06:15 hn>

Codex = agent harness

OpenAI CLI = wrapper around API

▲▼ theanonymousone06:31 hn>
>wrapper around API

aka curl? :-/

─ 5 more ─
▲▼ NothingAboutAny07:14 hn>

that was my assumption, maybe you use Claude but want it to use OpenAI image generation or something. this got a physical shrug out of me.

▲▼ throw2026102206:18 hn>

Be careful getting too deep in OpenAI tooling because they end up deprecating almost everything in under two years, sometimes without even a formal notice.

Everything they make these days looks to be strongly vibecoded without a decent review or functional testing. This leads to basic avoidable bugs that annoy vast numbers of users.

Not only this, but when you point out an issue to them on GitHub, they have a history of blocking the reporting user instead of tackling the technical issue.

▲▼ xnickb06:21 hn>

Makes sense. Very hard for humans to keep up with LLM-generated code. But LLMs/Agents have no problem with this. So they are using the dev style that would drive their business towards generating more money. A funny concept for a non-profit organization.

▲▼ ywvcbk06:25 hn>

I don't see how buggy software directly leads to generating more money? A company being successful doesn't somehow magically make them infallible, 100% rational or immune to making mistakes (as you are implying).

─ 2 more ─
▲▼ lionkor08:03 hn>
>Very hard for humans to keep up with LLM-generated code

Not at all. It's hard to keep up with lines of code per day, i.e. quantity.

It's not difficult for humans to keep up with the quality, and produce far superior quality code by writing it themselves or instructing an LLM what exactly to implement, down to each function's API surface (if typing is the bottleneck).

A lot of you people are forgetting that there's an engineering aspect to programming, and LLMs are really really really terrible at it out of the box.

Let's say you can let AI design and 3D print 1 large real-life bridge per week. Would you say that humans can't keep up? Or would you point out that there's a difference between what civil engineers do and what an LLM with a 3D printer does?

▲▼ eddythompson8006:40 hn>

At this point, it’s safe to assume all net-new software is vibecoded. Who in their right mind would take a month to create an MVP when a bot can spit it out in an afternoon? Existing software isn’t necessarily immune, but there are still individuals that are fighting (or resisting the change) to keep their code base human readable. It’s a losing battle. Eventually those people are either gonna change their minds, leave or be pushed out. Then the agents will be unleashed upon those code bases too.

▲▼ orphereus07:05 hn>

This type of comments is making me insane.

─ 9 more ─
▲▼ vasco07:09 hn>

I'm so curious what you do when the providers go down. Do you tell your boss you can't fix the incident because your token quota is out?

─ 4 more ─
▲▼ anonymous90821307:11 hn>
>Who in their right mind would take a month to create an MVP when a bot can spit it out in an afternoon

The people who need something more than an MVP, I would suppose. Bot sure does spit out a prototype faster than any human can, but actually building on that dogshit prototype becomes slower than someone with a clue writing by hand.

▲▼ rkuodys07:24 hn>

While I agree with the premise, I would argue with the conclusion. Yes agents can and do code fast. But if you're integrating software in business where people work in some patterns, more often than not there are "real life" happening. You learn that only by operating a system long enough to know these things. And competence accumulates, and the value of provider increases with the learned patterns. I think many devs live in tech world which is sometimes detached from physical world, world where people actually has to do some work, which takes time and system working in technical sense, doesnt work in practical sense.

▲▼ kikdij07:24 hn>

Saying "surely, everybody does X" is a sure way to be wrong. You're even spectacularly failing at making your own point by acknowledging in the very same comment that there are, in fact, people not doing it. Some people are different from you, deal with it.

That being said, it's true than we can assume most of new software are generated. No need for hyperbole on that. An interesting fact is that it makes grandfather's concern moot: people who are generating their code don't care much if a dependency goes unmaintained, they can have it replaced by an other one in matter of minutes.

There's an other objection to openai-cli we could raise, though: why use a generalist developer tool, containing probably hundred of features we don't need, when we could make a bespoke specialized version, perfectly fit to us, in like 25 minutes? I can get that there are audiences where this would not even come to mind to the users, but we're talking about a developer tool, here. The value of that is questionable. And ironically, those who might from benefit it the most are those who don't want to generate their code.

─ 3 more ─
▲▼ pianopatrick07:29 hn>

Yeah, but then you get the user's side. Will users really trust and rely on software that was vibe coded in an afternoon? Maybe for games, but for something like a CLI you would depend on - do you want to depend on someone's vibe coded in an afternoon project?

─ 4 more ─
▲▼ Chyzwar07:35 hn>

This is not unique problem to vibecoding. Google was killing products before LLM and forcing you into deprecation churn loop for years. Problem is companies without strategy trying things and then moving to next shiny thing.

I am still salty about anthropic killing Claude design in December.

─ 1 more ─
▲▼ andai07:41 hn>

https://xkcd.com/1483/

>Eventually all the people who hate this kind of thing are going to be dead, and the ones who use it are going to be in control.

The West has fallen.

─ 1 more ─
▲▼ rusticpenn08:03 hn>

There are different ways of using AI. Experienced software developers can easily still test their "vibe coded" app for most common bugs.

▲▼ roncesvalles08:19 hn>

There is a difference between wanton "vibecoding" and AI-assisted coding.

The latter still gives you many-X productivity improvement while the quality is pretty close to handwritten code.

LLMs are still not good enough where you can unleash it upon a huge codebase and get good results btw. Quality goes to shit once a context uses up around 50k-100k tokens. That's often only enough for one feature change and whatever validation the LLM wants to do for it.

It's fair to say that most new software is written with AI help, but that doesn't mean someone just prompted a few things and pressed deploy.

─ 2 more ─
▲▼ BikiniPrince07:01 hn>

It’s all greenfield and I’m not surprised to see deprecation. Eventually tooling will distill into what works.

▲▼ krm0107:51 hn>

This has become the new standard, better get used to it. You have to stay on your feet no matter what technology you use. The time of picking one and sticking with it for years is long gone.

▲▼ lionkor08:00 hn>
>You have to stay on your feet no matter what technology you use

This was said about web technologies and crypto and every other hype cycle, and it's never been true at all. The vast majority of people are okay just picking something reasonable or a default, and sticking with it.

It's not difficult to imagine that pi.dev will be around in 10 years, and it's not difficult to imagine that vim, visual studio, vscode, linux and ext4 will still be around in 10 years.

I don't know what kind of massive innovation you see here. This is like flying cars; every couple years there's a demo of a flying car of some variety, some people immediately short mercedes, and 5 years later mercedes is still around, making slightly more modern cars than before.

If you really believe that the tech-news hype cycle reflects reality, I urge you to go solve an advent of code in a normal programming language, maybe that'll help get you back on track.

─ 2 more ─
▲▼ Yokolos08:07 hn>

It's sort of nuts how bad the Codex app is. In a month, I've "vibe-coded" my own replacement which does everything I care about significantly better, especially their remote chat functionality which just feels completely half-baked and broken. And I'm not getting a 6 figure salary to work on it. I don't understand what they're doing.

▲▼ Lucasoato08:12 hn>

In MacOS there are two ChatGPT apps. The new one and the old one called ChatGPT classic. No matter how hard I try, I can’t get the new one to work with either the “live” realtime mode or the vocal transcription feature.

It’s absurd, I have the latest OS version, a M4 MacBook, but the new app seems to be buggy as hell.

Is this the new software quality standard we should expect from a company that is worth billions (if not trillions)?

▲▼ oblio08:13 hn>
>Is this the new software quality standard we should expect from a company that is worth billions (if not trillions)?

For a while, yes.

▲▼ paxy18:07 hn>

I'm sorry but who expects an AI workflow to behave the same for 2+ years? Do you remember the state of LLMs and agentic tools two years ago? If you are expecting stability you are in the wrong segment of tech. Come back in 5 years when things have matured and you'll start to see stable, boring releases.

▲▼ albert_e07:20 hn>

Does this consume the monthly flat rate subscription quota or API credits.

Does Anthropic have something similar.

I understand "claude -p" has been unreliable to use with subscription quota and often required "extra usage" credits.

▲▼ walthamstow09:02 hn>

claude -p has never actually been charged as extra usage. They announced a plan to do so then shelved it quietly.

▲▼ threecheese16:59 hn>

My experience matches your claim, but I've seen others recently claim cli use (shelled out from another harness though) showing clear extra-data billing.

And I'm fairly sure Anthropic did implement that though, at least for Claude SDK (which is/was a wrapper around claude -p); I was using the sdk for a product, and had a demo to show/ensure it was billed via subscription. I basically unset any API env vars, ensured the cli credential was in place, and spawned agents and watched the logs. When I re-ran it during that time period, it clearly went to extra data (there are messages in response logs calling it out).

▲▼ isodev08:00 hn>

Wait, wasn't codex the "openai cli"? Their product names are so confusing (chat, vs. work ?!).. almost like the whole thing is vibecoded.

▲▼ oblio08:05 hn>

It's the logical conclusion of having as the ultimate goal vibe managing a business.

▲▼ haaz08:56 hn>

Both serve different purposes and I think it's a reasonable distinction to have between products. One is for managing your openai workspace, API, etc, the other is a consumer product. Reasonable to expect an admin to whitelist the openai cli tool but not codex

▲▼ robertlagrant09:32 hn>
>One is for managing your openai workspace, API, etc

Well, from the page:

>openai images generate --prompt "A tiny orange robot" saves images to ~/Downloads/gpt-images/ and prints their paths, including in pipes.

That doesn't look like "managing the API". It looks like "a consumer product".

I think the real answer is Conway's Law.

▲▼ raddan10:42 hn>

Codex is interactive. This appears to be batch.

▲▼ cyanydeez11:07 hn>

i still do not understand the critique of "vibecoded" when talking about organizations and products that are clearly LLM based.

▲▼ wccrawford13:16 hn>

It's a generic insult that a lot of people throw out, but when they're using the term seriously, they mean that the code doesn't get properly reviewed by a human. It probably still gets QA'd by a human, but in the final form, not reading the code.

AI-assisted generally means that a human is reviewing the code, though there's a lot of doubt about how well that can really be done with the amount of code an AI can output. It's generally capable of being as fast or faster than a human can review it.

─ 1 more ─
▲▼ vortegne11:13 hn>

How is the difference not obvious to you just from the name? Do you think that every CLI is an interactive agentic application? Sorry, but this is baffling.

▲▼ bluegatty08:14 hn>

2 trillion dollar company can't put 1 single sentence describing what something is, why it's useful, what it's for - instead barfs technical jargon.

It's like if someone handed you an arcane set of page 20-40 of an IKEA assembly manual and expected you to be excited.

About what? Exactly?

▲▼ logicallee08:17 hn>

it's a zero dollar company. OpenAI is a virus. It's a liability. The code almost certainly contains some trivial backdoors, since their entire infrastructure is backdoored.

Edit: look at this crap for example:

https://github.com/openai/openai-cli/blob/main/scripts/run

(just the first file I looked at.) it's obviously half of a backdoor. Some other process somewhere happens to give the other half.

▲▼ arbll08:26 hn>

bru what ? This is just a standard `go run` wrapper to run the CLI lol

▲▼ Traster08:18 hn>

To be fair, I don't think they do want you to be excited. They have a REST API. It does the obvious things a REST API would do with OpenAI - lets you interact with openai models via a REST API. This is a CLI for it. There's really nothing to describe that isn't in the name, it's the CLI for the OpenAI Rest API. If you don't already care about the REST API then this isn't really for you.

▲▼ bluegatty08:21 hn>

There is no conscientious reasoning here on their part - it's not 3D chess it's 0D chess.

It's lazy at a guttural level.

This is 'totally absent product management, even the utterly basic things a regular developer would think to do without professionals to support them'.

This would not even pass muster as Open Source for friends, or internal use.

─ 4 more ─
▲▼ hk__211:07 hn>

It’s right there in the description: "Official CLI for the OpenAI API". There’s nothing to be excited about, it’s just a CLI for an API.

▲▼ chaos_emergent15:00 hn>
>The official CLI for the OpenAI REST API.

If that’s not clear then you’re probably not the target audience for this.

▲▼ kristopolous08:16 hn>

I've been working on something in a similar class for about a year called llcat

It was born out of the lack of LLM-native unix-friendly tools that work like cURL, awk and sed.

I couldn't find any so I wrote one myself.

I knew I wanted a reference that is stateless, explicit, low-level, and composable without modal settings.

For instance, instead of config files, llcat can index into files with built-in jq-syntax and line numbers. Then it can the save invocations for later:

    llcat --save invocation.json \
      -k "@~/credentials.txt:12" \
      -u "@settings.json:.[3].host" \
      -s "@system_prompts:8" \
      -m "@settings.json:.[3].model" \
         "@query.txt:12" > output.txt
and then

   llcat --load invocation.json { ... parameters you want to override ... }
It's easy to send to colleagues over chat or keep them invocations in a shared network folder.

Conversations are also just JSON files. You can have a different input and output one. This means you can do stuff like

   for i in *; do 
     # use a non-mutable conversation
     # apply it over a group of files with standard unix pipes
     cat "$i" | llcat --load settings.json -cr context.json  > ../results/"${i}.output"

     # or use attachments 
     llcat --load settings.json -a "$i" -cr context.json > ../results/"${i}.output"

     # or save the whole context
     llcat --load settings.json -a "$i" -cr context.json -c ../results/"${i}.output" > /dev/null

   done
One of my favorite patterns is this one:

   llcat -k @~/secrets.json:.anthropic -u api.anthropic.com 
   llcat -k @~/secrets.json:.openrouter -u openrouter.ai/api
Since there's no hidden state you can use llcat in shell scripts and get operational guarantees.

I've put a lot of effort into it and use it daily. If you can give it a go and give me feedback and file bugs, I'd love it.

https://github.com/day50-dev/llcat

▲▼ rtaylorgarlock12:53 hn>

Cool product :) I'm still so gun-shy on using any llm tooling in prod for sysadmin, devops, etc. but frontier models walk circles around me in bash at insane tok/s. cURL and cat + json sounds nice

▲▼ Traster08:21 hn>

It's kind of interesting that they're releasing this, because anyone with access to the OpenAI RestAPI has probably already vibe coded an equivalent to this. It's a trivial thing to bootstrap.

▲▼ bluegatty08:22 hn>

It's easy to vibe code a kind of messy thing that works, very had to maintain and improve pure vibed stuff.

▲▼ SOLAR_FIELDS09:59 hn>

Is it actually hard to maintain a REST wrapper though? I think it is actually quite easy to maintain and improve something as simple as this as a pure vibe code project. I do it all the time

─ 1 more ─
▲▼ guyuedumingx08:32 hn>

The claim that the name alone explains the tool is weak: a CLI wrapper still needs one line stating what problem it solves and who should use it.

▲▼ chaos_emergent14:58 hn>

The subtitle in the readme:

>The official CLI for the OpenAI REST API.

Did you read the readme?

▲▼ bobm_kite908:53 hn>

Amazing that they're able to vibecode this kind of stuff together in a couple of days, but how is it possible there's no API for organising my ChatGPT chats at all?

Welcome to a new kind of lock-in I guess

▲▼ ckx09:57 hn>

So it's just Codex?

▲▼ qeternity11:00 hn>

No, this is an account/workspace management CLI.

▲▼ nater500013:36 hn>

For a site focused on technical users, seems like a lot of people in this thread are completely lost at the idea that a single service may offer multiple pieces of software dedicated to specific use-cases.

codex: OpenAI's agent harness. The thing you typically want to interact with when you want an agent powered by OpenAI models to do stuff on your machine. Abstracts the low-level functionality of their API so you don't have to worry about it.

openai-cli: A simple CLI exposing low-level operations against OpenAI's REST API. The thing you'd use for creating lower-level scripts to directly call the completions API, administer accounts, etc.

Honestly, this is obvious by the name alone. If it's not clear to you, then this isn't for you. No need to get worked up about OpenAI releasing a piece of software where you're not the audience.

▲▼ yipinwong14:14 hn>

The difference is clear for some humans. I dig it.

This is not AX (agent experience) friendly (and for some humans here too).

There is no "why" or "when" to use it in the documentation. We humans need to figure out why this is needed at what occassion to AIs.

So my point here is the bad README.

If there is an ambiguous in the doc, and what you conside ris "obvious" is not obvious for some. It's a bad doc.

-----

If I were to use this, I first have to instruct, hey Codex, for low-level API calls to bypass your harness,

1. Read docs on OpenAI CLI: (and you provide why Codex would need it) 2. install OpenAI CLI 3. Call low level APIs: instruct when to do this over going thru codex harness

▲▼ threecheese16:53 hn>

It supports json/jsonl output and verbose command/subcommand help; there's a lot of churn in "how do I create clis for AX" right now, I don't know if you can point to what's good or bad beyond "machine/digestible and progressively disclosed".

Recently did a quick experiment using four python cli libraries with codex, fairly big cli surface, well-typed code with docstrings, and the differences were negligible- it came down to those two qualities specifically, and the means to those ends didn't really matter. Obviously anecdata though.

─ 1 more ─
▲▼ gavinray15:09 hn>

The code examples from their own website show the use of cURL and this CLI are roughly as verbose. Not sure I understand the need for maintaining a CLI.

    openai responses create \
      --model gpt-6-astra \
      --input "Write a short bedtime story about a unicorn." \
      --raw-output \
      --transform 'output.#(type=="message").content.0.text'
Versus

    curl https://api.openai.com/v1/responses \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $OPENAI_API_KEY" \
      -d '{
        "model": "gpt-6-astra",
        "input": "Write a short bedtime story about a unicorn."
      }'

▲▼ lostmsu15:39 hn>

Presumably OpenAI CLI would handle OAuth

▲▼ phoghed15:46 hn>

you've left off the equivalent of `--transform 'output.#(type=="message").content.0.text'` from your curl operation

─ 1 more ─
▲▼ scientaster215:51 hn>

One nice part is the ability to run `-h` and get all of the commands/args. I wish that existed for rest endpoints too :)

▲▼ td521534f1216:17 hn>

The second example is leaking API keys into the OS process tree.

▲▼ itishappy17:23 hn>

Significantly improved discoverability. Also, I wonder how they handle errors:

    curl https://api.openai.com/v1/resposes \
    [...]
    "model": "gpt-6-astrai",
    [...]
    
    openai resposes create \
    --model gpt-6-astrai \
    [...]

▲▼ HardCodedBias14:55 hn>

Normally this would be a silly endeavor given the cost.

But given the cost of implementation is low, why not do this!

Good job OAI!

▲▼ paxy18:05 hn>

The interesting thing is that the cost of implementation is low for everyone, not just OpenAI. You could vibe code this project in maybe 10 minutes with a $20 Codex subscription, and a couple scheduled prompts a week would keep it up to date. So is it still valuable? Probably, but the economics of tools like these are definitely not the same anymore.

▲▼ alexkbuilds15:04 hn>

can somebody give me a few examples for what I could use this?

▲▼ seanhunter20:05 hn>

Somebody did, in TFA. https://github.com/openai/openai-cli#things-to-try

Generate an image and save it locally

  openai images generate --prompt "A tiny orange robot watering a houseplant"
...

Export API data for a script

   openai models list --format jsonl | jq '.id'
   openai files list --format json > files.json

▲▼ techgnosis16:52 hn>

Ironically enough I could have Codex make this for me in like 5 minutes. If there's a published API, a CLI is always within your grasp.

▲▼ pllbnk18:58 hn>

What's the point to provide it with Apache 2.0? It's likely going to get sucked into the LLM training or inference process sooner rather than later. By that time license is no longer going to matter.