@openuidev/cli
v0.0.5
Published
CLI for OpenUI — scaffold generative UI chat apps and generate LLM system prompts from component libraries
Downloads
636
Readme
@openuidev/cli
Command-line tool for OpenUI — scaffold AI-powered generative UI chat apps and generate LLM system prompts from your React component libraries.
It currently supports two workflows:
- scaffolding a new OpenUI Chat app
- generating a system prompt or JSON Schema from a
createLibrary()export
Install
Run the CLI with your package manager of choice:
npx @openuidev/cli --help
pnpm dlx @openuidev/cli --help
bunx @openuidev/cli --helpQuick Start
Create a new chat app:
npx @openuidev/cli@latest createGenerate a prompt from a library file:
npx @openuidev/cli generate ./src/library.tsGenerate JSON Schema instead:
npx @openuidev/cli generate ./src/library.ts --json-schemaCommands
openui create
Scaffolds a new Next.js app with OpenUI Chat.
openui create [options]Options:
-n, --name <string>: Project name--no-interactive: Fail instead of prompting for missing required input
What it does:
- prompts for the project name if you do not pass
--name - copies the bundled
openui-chattemplate into a new directory - rewrites
workspace:*dependencies in the generatedpackage.jsontolatest - installs dependencies automatically using the detected package manager
Examples:
openui create
openui create
openui create --no-interactiveopenui generate
Generates a system prompt or JSON Schema from a file that exports a createLibrary() result.
openui generate [options] [entry]Arguments:
entry: Path to a.ts,.tsx,.js, or.jsxfile that exports a library
Options:
-o, --out <file>: Write output to a file instead of stdout--json-schema: Output JSON Schema instead of the system prompt--export <name>: Use a specific export name instead of auto-detecting the library export--prompt-options <name>: Use a specificPromptOptionsexport name (auto-detected by default)--no-interactive: Fail instead of prompting for a missingentry
What it does:
- prompts for the entry file path if you do not pass one
- bundles the entry with
esbuildbefore evaluating it in Node - supports both TypeScript and JavaScript entry files
- stubs common asset imports such as CSS, SVG, images, and fonts during bundling
- auto-detects the exported library by checking
library,default, and then all exports - auto-detects a
PromptOptionsexport (withexamples,additionalRules, orpreamble) and passes it tolibrary.prompt()
Examples:
openui generate ./src/library.ts
openui generate ./src/library.ts --json-schema
openui generate ./src/library.ts --export library
openui generate ./src/library.ts --out ./artifacts/system-prompt.txt
openui generate ./src/library.ts --prompt-options myPromptOptions
openui generate --no-interactive ./src/library.tsHow generate resolves exports
openui generate expects the target module to export a library object with both prompt() and toJSONSchema() methods.
If --export is not provided, it looks for exports in this order:
librarydefault- any other export that matches the expected library shape
PromptOptions auto-detection
If --prompt-options is not provided, the CLI looks for a PromptOptions export in this order:
promptOptionsoptions- any export whose name ends with
PromptOptions(case-insensitive)
A valid PromptOptions object has at least one of: examples (string array), additionalRules (string array), or preamble (string).
Local Development
Build the CLI locally:
pnpm run buildRun the built CLI:
node dist/index.js --help
node dist/index.js create --help
node dist/index.js generate --helpNotes
- interactive prompts can be cancelled without creating output
createrequires the template files to be present in the built packagegenerateexits with a non-zero code if the file is missing or no valid library export is found
Documentation
Full documentation and guides are available at openui.com.
