The Last Best Coding Agent CLI
Why we built a CLI on top of the big agent providers
Claude Code was released a bit over half a year ago, single handedly creating the ‘AI agent CLI’ product category. Since then, the Nori team has collectively put in hundreds (thousands?) of hours figuring out how to get the most juice out of terminal coding agents tools like Claude Code, OpenAI Codex, and Gemini CLI. We’ve had some amazing results.
The whole team is AI-first, leveraging agents to aggressively parallelize feature development.
We are regularly landing 10+ PRs per person per day.
We have been able to pump out entire products in ~ a dozen days. Most of these tools are solving problems that we face ourselves.
We are all in on coding agent CLI tools. These things are obviously the future of software engineering, and we are extremely excited to bring other people along on that journey.
But also, coding agent CLIs suck.
For a long time, coding agent CLIs sucked because coding agents sucked. They sucked for lots of reasons. They hallucinated, forgot context, wrote buggy code, didn’t verify their solutions, didn’t have memory. They were, bluntly, too hard to wrangle. That’s why we spent the last three months solving those problems, and now we can turn any team that works with us into agentic coding masters using nori-skillsets. Nori skillets is a tool that makes it easy to set up and switch between many different model configurations, complete with powerful out of the box defaults. I wrote about it more here:
We were left with the CLI itself. And we had a dawning realization: the CLI also sucked.
A good dev tool should make it easy to do the right thing. And coding agent CLIs just don’t do that. Have you ever read how power users talk about their usage of agentic AI? There is so much setup. Nori-skillsets contains a bunch of config, but it also fundamentally modifies the experience of using Claude Code by hacking together hooks, slash commands, the status line, and more. In fact, roughly half of the logic in nori-skillsets is just dealing with random bullshit that Claude Code should have built in. That’s before you get into things like constant screen flickering and the inability to switch model providers, both strategic choices that are systematic in the Claude Code CLI.
I unironically think this needs to come with an epilepsy warning.1
We didn’t set out to make a CLI, but the core of our company is “build the things that make us faster at building the things that make us faster.”2 Building our own CLI went from a nice-to-have to a screaming necessity, especially when we needed to switch between Gemini, Codex, and Claude to stay at the frontier. So I’m very proud to announce nori-cli,3 which is, in my opinion, the best CLI tool on the market.
Nori-cli is a coding agent CLI, in the vein of Claude Code or GPT Codex. You open it up in a terminal and ask it to do things. You can ask it to solve programming tasks, like writing features or fixing bugs. You can also ask it to do a wide range of other things, like writing a newsletter, updating a website, doing your taxes, etc. It’s fast, it’s stable, and it puts control back in the hands of the user when it comes to model choice.
Nori-CLI is, primarily, a presentation layer. The big model providers fine tune their models to their specific agents. For example, Anthropic’s Opus model is trained to use the specific tools that come bundled with Claude Code. We do not want to lose the obvious quality improvements that fine with using a model in the right harness. So nori-cli sits on top of the agent layer. This comes with a bunch of other benefits, like properly respecting the authorization of the various agentic tools so that we do not have to have hacks like spoofing the agent prompt to support subscription features.
The CLI is still early,4 but there’s an old saying in the valley: if you’re not shipping too early, you’re shipping too late. Our main focus with the CLI is to rapidly get it to feature parity. But we’re already using this thing in-house, and have been for weeks.
We are extremely excited about the opportunities that this affords us. We’re looking forward to building out deep integrations with nori-skillsets, while also giving a lot more customization options — hooks, UI changes, and more. If any of this is interesting to you, please feel free to get in touch! We’d love to hear feature requests and desired workflows.
You can read more about the implementation here: https://news.ycombinator.com/item?id=46616562
Check out the repo here: https://github.com/tilework-tech/nori-cli
And you can install through NPM here: https://www.npmjs.com/package/nori-ai-cli
Huge props to the very talented Clifford for his vision in bringing this together!
Note: I purposely didn’t record my own set up because I wanted to show that this isn’t just a me problem. This video came from here, and you can find a lot of other examples if you search ‘Claude Code flicker’.
And then find a way to sell those things.
Technically I guess I mentioned this in yesterday’s Tech Things post, but this is the official post?
We mostly battle tested it with Claude Code as the backing agent.



