An open source, MIT-licensed framework for building command-line tools that AI agents use to reach SaaS platforms: one grammar, self-describing commands, declared safety metadata, and a runtime that runs the same…

35 points•chris_marino•13 days ago•18 comments•
Simple discovery of the provider's default schemas is possible without any credentials (since they are built into the binary). If you want it to fetch customizations of your specific instance, give it credentials to your org.

The repo has more details. https://github.com/agent-cli-framework/aclif

18 comments

chris_marino13 days ago
We found after deploying many enterprise agents that letting the model choose tools at run time can cause problems. The agent holds the credential and sometimes chooses the wrong tool. Using the same tool every time prevents this.
tikimcfee13 days ago
Absolutely in love. I'll be testing this after the daily grind.

I've had nothing but success with converting daily work into "notes" that then translate into runnable, deterministic application CLIs to completely sidestep "what do I need to say to you to make you do the thing??"

I'm interested in how this spreads across enterprise flows, because the issue is always discovery and usability.

How deep do you usually go with CLI composition and layering? Do you tend to find a flat list of commands and sub command help works most? Have you experimented with connecting CLIs Linux-pipe-style as if it was a dynamic application in the OS?

chris_marino13 days ago
The objectives are to reduce/eliminate as much inference variability as possible. A side benefit is that inference costs collapse as well.

It is used internally for what we call 'compiled workflow agents' where no inference is necessary. An agent composer determines the exact command at design time. That is part of a discovery loop that can introspect the service to construct the command.

More here. https://www.promptone.ai/resources/downloads/

chris_marino13 days ago
The command structure is provider/topic/command. Taken literally from the oclif framework, with the provider simply being a topic namespace. Haven't needed to pipe anything since in our deployments, the agent makes a call to the gateway via a command API so a pipe wouldn't be possible between commands
agentdev00113 days ago
"The agent holds the credential"

Huh? It shouldn't. Am I misunderstanding, or is this referencing poor practices?

"Using the same tool every time prevents this"

What does this mean? I looked at the project, im not sure what this means.

chris_marino13 days ago
In many cases, the agent does hold the credential. When you authorize OpenClaw to read your gMail, OpenClaw has the credential. This is absolutely a poor practice, but common, nevertheless.

As for using the 'same tool', what I meant was that you the agent doesn't have to pick the tool at all. There is just one: the aclif CLI. Not separate tools for Salesforce, Docusign, Workday, etc that the agent needs to learn (and possibly mess up). Just the one aclif tool. Same grammar for all external services. Less agent inference the better.

Finally, alif CLIs support individual auth so a request can use SSO identities and fetch a token from a secrets value. The CLI holds the secret. If you deploy the CLI on a host or gateway, the agent never sees it.

charlie_martin913 days ago
I have to build a cli for every provider? Seems like a lot of effort.
chris_marino13 days ago
Yes. But any coding agent can do this in a matter of minutes. There is an example prompt and corresponding Skill.md in the repo.

https://github.com/agent-cli-framework/aclif/blob/main/docs/...

https://github.com/agent-cli-framework/aclif/blob/main/.clau...

pixl9713 days ago
Tell your providers to stop building workspaces with conflicting identifiers and namespaces.
chris_marino13 days ago
LOL.
rvz13 days ago
This does not make any sense whatsoever.
chris_marino13 days ago
I thought I made it clear right up front. 'Why agents need their own CLI'

What's not clear about that?

sunir13 days ago
Here's a good set of questions for any write up:

Who are we talking about? What's their role? (What agent? What is the job to be done?)

What is the status quo? What's the problem with the status quo? What else has been tried? What's the consequence of not solving the problem? What more important problem do you need to work on that you're blocked because of this problem? What's the ideal solution? What's the current offer? Why would someone say no to any given solution? How have you addressed those problems?

Cameri13 days ago
How does this differ from the printing press?
Cameri12 days ago
This is a legitimate question so I don't understand why it would get downvoted. The Printing Press _already exists_ (https://github.com/mvanhorn/cli-printing-press) and it's not limited to SaaS providers like Aclif seems to be.
chris_marino9 days ago
I downvoted it because I thought it was a bot response. Did not realize you were referring to cli-printing-press. The main difference is that printing press caches a local copy of data heavy sites like Discord channels, ESPN, etc. and creates a CLI for that API.

aclif produces a single CLI with a unified grammar for all APIs, plus support for canonical names (fed by external semantic data layers) and unified auth. It targets enterprise SaaS APIs.

Read the full thread on Hacker News →

Related stories