Skip to content

Commit c2c8494

Browse files
committed
break up README intro into shorter paragraphs
1 parent 746a206 commit c2c8494

2 files changed

Lines changed: 20 additions & 4 deletions

File tree

README.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,17 @@ const docker = await convertCliToJs("docker");
2525
await docker.build({ tag: `my-app:${commits[0].slice(0, 7)}`, file: "Dockerfile", _: ["."] });
2626
```
2727

28-
No manual wrappers. No codegen step. No config. One function call turns `git`, `docker`, `kubectl`, `ffmpeg`, or anything with `--help` into a typed, callable API. Compose them together with plain JavaScript.
28+
No manual wrappers. No codegen step. No config.
2929

30-
**Why this matters for AI agents.** LLM-powered agents need to call CLI tools, but they work best with structured APIs, not raw shell strings. `cli-to-js` lets an agent introspect any binary on the system, get a typed interface, and call it safely. `$validate` catches hallucinated flag names before spawning a process and returns did-you-mean suggestions the agent can self-correct from in a single retry. `$spawn` returns a standard async iterator, so streaming and piping is just a `for await` loop, the most common JS pattern in any model's training data.
30+
One function call turns `git`, `docker`, `kubectl`, `ffmpeg`, or anything with `--help` into a typed, callable API. Compose them together with plain JavaScript.
31+
32+
**Why this matters for AI agents.**
33+
34+
LLM-powered agents need to call CLI tools, but they work best with structured APIs, not raw shell strings.
35+
36+
`cli-to-js` lets an agent introspect any binary on the system, get a typed interface, and call it safely. `$validate` catches hallucinated flag names before spawning a process and returns did-you-mean suggestions the agent can self-correct from in a single retry.
37+
38+
`$spawn` returns a standard async iterator, so streaming and piping is just a `for await` loop, the most common JS pattern in any model's training data.
3139

3240
## Install
3341

packages/cli-to-js/README.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,17 @@ const docker = await convertCliToJs("docker");
2525
await docker.build({ tag: `my-app:${commits[0].slice(0, 7)}`, file: "Dockerfile", _: ["."] });
2626
```
2727

28-
No manual wrappers. No codegen step. No config. One function call turns `git`, `docker`, `kubectl`, `ffmpeg`, or anything with `--help` into a typed, callable API. Compose them together with plain JavaScript.
28+
No manual wrappers. No codegen step. No config.
2929

30-
**Why this matters for AI agents.** LLM-powered agents need to call CLI tools, but they work best with structured APIs, not raw shell strings. `cli-to-js` lets an agent introspect any binary on the system, get a typed interface, and call it safely. `$validate` catches hallucinated flag names before spawning a process and returns did-you-mean suggestions the agent can self-correct from in a single retry. `$spawn` returns a standard async iterator, so streaming and piping is just a `for await` loop, the most common JS pattern in any model's training data.
30+
One function call turns `git`, `docker`, `kubectl`, `ffmpeg`, or anything with `--help` into a typed, callable API. Compose them together with plain JavaScript.
31+
32+
**Why this matters for AI agents.**
33+
34+
LLM-powered agents need to call CLI tools, but they work best with structured APIs, not raw shell strings.
35+
36+
`cli-to-js` lets an agent introspect any binary on the system, get a typed interface, and call it safely. `$validate` catches hallucinated flag names before spawning a process and returns did-you-mean suggestions the agent can self-correct from in a single retry.
37+
38+
`$spawn` returns a standard async iterator, so streaming and piping is just a `for await` loop, the most common JS pattern in any model's training data.
3139

3240
## Install
3341

0 commit comments

Comments
 (0)