use-cases/agent-friendly-clis.md +130 −0 added
1# Create a CLI Codex can use | Codex use cases
2
3[← All use cases](https://developers.openai.com/codex/use-cases)
4
5Ask Codex to create a composable CLI it can run from any folder, combine with repo scripts, use to download files, and remember through a companion skill.
6
7Intermediate
8
91h
10
11Related links
12
13[Codex skills](https://developers.openai.com/codex/skills) [Create custom skills](https://developers.openai.com/codex/skills/create-skill)
14
15## Best for
16
17- Repeated work where Codex needs to search, read, download from, or safely write to the same service, export, local archive, or repo script.
18- Agent tools that need paged search, exact reads by ID, predictable JSON, downloaded files, local indexes, or draft-before-write commands.
19
20## Skills & Plugins
21
22- [Cli Creator](https://github.com/openai/skills/tree/main/skills/.curated/cli-creator)
23
24 Design the command surface, build the CLI, add setup and auth checks, install the command on PATH, and verify it from another folder.
25- [Skill Creator](https://github.com/openai/skills/tree/main/skills/.system/skill-creator)
26
27 Create the companion skill that teaches later Codex tasks which CLI commands to run first and which write actions require approval.
28
29## Starter prompt
30
31Use $cli-creator to create a CLI you can use, and use $skill-creator to create the companion skill in this same thread.
32Source to learn from: [docs URL, OpenAPI spec, redacted curl command, existing script path, log folder, CSV or JSON export, SQLite database path, or pasted --help output].
33First job the CLI should support: [download failed CI logs from a build URL, search support tickets and read one by ID, query an admin API, read a local database, or run one step from an existing script].
34Optional write job: [create a draft comment, upload media, retry a failed job, or read-only for now].
35 Command name: [cli-name, or recommend one].
36Before coding, show me the proposed command surface and ask only for missing details that would block the build.
37
38## Introduction
39
40When Codex keeps using the same API, log source, exported inbox, local database, or team script, give that work a composable interface: a command it can run from any folder, inspect, narrow, and combine with `git`, `gh`, `rg`, tests, and repo scripts.
41
42Add a companion skill that records when Codex should use the CLI, what to run first, how to keep output small, where downloaded files land, and which write commands need approval.
43
44In this workflow, `$cli-creator` helps Codex build the command. `$skill-creator` helps Codex save a reusable skill such as `$ci-logs`, which future tasks can invoke by name.
45
46## How to use
47
481. [Decide whether the job needs a CLI](#choose-what-the-cli-should-do)
492. [Share the source Codex should learn from](#share-the-docs-files-or-commands)
503. [Run `$cli-creator`](#ask-codex-to-build-the-cli-and-skill)
514. [Test the installed command](#verify-the-command-works-from-any-folder)
525. [Invoke the saved skill later](#use-the-skill-later)
53
54## Choose what the CLI should do
55
56Start with the thing you want Codex to do, not the technology you want it to write. A good CLI turns a repeated read, search, download, export, draft, upload, poll, or safe write into a command Codex can run from any repo.
57
58| Situation | What Codex can do with the CLI |
59| ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- |
60| **CI logs live behind a build page.** | Take a build URL, download failed job logs to `./logs`, and return file paths plus short snippets. |
61| **Support tickets arrive as a weekly export.** | Index the newest CSV or JSON export, search by customer or phrase, and read one ticket by stable ID. |
62| **An API response is too large for context.** | List only the fields it needs, read the full object by ID, and export the complete response to a file. |
63| **A Slack export has long threads.** | Search with `--limit`, read one thread, and return nearby context instead of the whole archive. |
64| **A team script runs four different steps.** | Split setup, discovery, download, draft, upload, poll, and live write into separate commands. |
65| **A plugin finds the record, but Codex needs a file.** | Keep the plugin in the thread; use a CLI to download the attachment, trace, report, video, or log bundle and return the path. |
66
67## Share the docs, files, or commands
68
69Codex needs something concrete to learn from: docs or OpenAPI, a redacted curl command, an export or database path, a log folder, or an existing script. If you want the CLI to follow a familiar style, paste a short `--help` output from `gh`, `kubectl`, or your team's own tool.
70
71If the command needs auth, tell Codex the environment variable name, config file path, or login flow it should support. Set the secret yourself in your shell or config file. Do not paste secrets into the thread. Ask Codex to make the CLI's setup check fail clearly when auth is missing.
72
73## Ask Codex to build the CLI and skill
74
75Use the starter prompt on this page. Fill in the source Codex should learn from and the first job the CLI should support.
76
77Before Codex writes code, it should show the proposed command surface and ask only for missing details that would block the build.
78
79## Verify the command works from any folder
80
81Codex should not stop after `cargo run`, `python path/to/script.py`, or an uninstalled package command. Ask it to test the installed command from another repo or a temporary folder, the way a later task will use it.
82
83**Test the CLI like a future agent**
84
85Test [cli-name] the way you would use it in a future task.
86Please show proof that:
87- command -v [cli-name] succeeds from outside the CLI source folder
88- [cli-name] --help explains the main commands
89- the setup/auth check runs
90- one safe discovery, list, or search command works
91- one exact read command works with an ID from the discovery result
92- any large log, export, trace, or payload writes to a file and returns the path
93- live write commands are not run unless I explicitly approved them
94Then read the companion skill and tell me the shortest prompt I should use when I need this CLI again.
95
96If Codex returns a giant JSON blob, ask it to narrow the default response and add a file export for full payloads. If it forgets the approval boundary, ask it to update the companion skill before you use it in another thread.
97
98## Use the skill later
99
100When you need the CLI again, invoke the skill instead of pasting the docs again:
101
102Use $ci-logs to download the failed logs for this build URL and tell me the first failing step.
103
104Use $support-export to search this week's refund complaints and read the three highest-value tickets.
105
106Use $admin-api to find this user's workspace, read the billing record, and draft a safe account note.
107
108For recurring work, test the skill once in a normal thread, then ask Codex to turn that same invocation into an automation.
109
110## Related use cases
111
112[
113
114### Create browser-based games
115
116Use Codex to turn a game brief into first a well-defined plan, and then a real browser-based...
117
118Engineering Code](https://developers.openai.com/codex/use-cases/browser-games)[
119
120### Save workflows as skills
121
122Turn a working Codex thread, review rules, test commands, release checklists, design...
123
124Engineering Workflow](https://developers.openai.com/codex/use-cases/reusable-codex-skills)[
125
126### Upgrade your API integration
127
128Use Codex to update your existing OpenAI API integration to the latest recommended models...
129
130Evaluation Engineering](https://developers.openai.com/codex/use-cases/api-integration-migrations)