Node tries to ship AI, ships a flag instead
If you've been living under a rock, Node 24 dropped last week and the release notes had a one-liner buried at the bottom: `--ai` is now a built-in subcommand. Spoiler: barely anyone in the ecosystem noticed.
The Setup
`node --ai "your prompt here"` does a one-shot LLM call against whatever provider you configure via env vars. It's basically curl-to-OpenAI as a stdlib feature.
{`# one-shot prompt from the terminal
export NODE_AI_PROVIDER=openai
export NODE_AI_MODEL=gpt-4o-mini
export OPENAI_API_KEY=sk-...
node --ai "fix this regex: /^[a-z+@.com$/"
# or pipe a file in
cat broken.ts | node --ai "find the bug and explain"`}The Money Pattern
The actually useful angle is shell scripting. Pipe stdin in, pipe answer out, compose it with grep and awk like any other unix tool. I bolted it into a pre-commit hook on a CMS repo for spell-checking blog posts and it's quietly useful.
{`// .nodeai.json — config lives at repo root
{
"provider": "anthropic",
"model": "claude-haiku-4-7",
"systemPrompt": "you are a strict reviewer. respond in 3 bullets max.",
"maxTokens": 256
}
// then in package.json
{
"scripts": {
"review": "git diff main | node --ai 'review this diff'"
}
}`}The Catch
This feels like a marketing checkbox more than a feature. It's a thin wrapper around fetch with the env-var dance baked in. Bun's `bun:llm` runs actual models locally. Deno ships typed FFI. Node ships a CLI flag that calls an API. The framing matters.
The Verdict
Useful for one-liners, embarrassing as a strategic response. Node is the default runtime for most of my client work and I want it to win, but this isn't the move. Hopefully Node 26 ships something with teeth — local inference, agent tooling, anything but a fetch wrapper with a flag.