feat(cli): add initial CLI implementation with argument parsing and prompt handling
- Created package.json and package-lock.json for CLI package. - Implemented argument parsing in args.ts to handle various flags and commands. - Developed main CLI logic in cli.ts to execute commands and handle errors. - Added configuration loading from a JSON file in config.ts, with environment variable support. - Implemented prompt resolution and provider interaction in prompt.ts. - Added usage documentation for the CLI. - Configured TypeScript settings in tsconfig.json for the CLI package. - Updated README in vscode package to reflect the new CLI functionality. - Refactored root tsconfig.json to streamline project structure.
This commit is contained in:
88
packages/cli/README.md
Normal file
88
packages/cli/README.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# LexAI CLI — Prompt Builder
|
||||
|
||||
Part of the [LexAI monorepo](../../README.md) (`packages/cli`). Complements the [Chrome](../chrome/README.md) and [VS Code](../vscode/README.md) packages.
|
||||
|
||||
Improve a rough idea into a **paste-ready engineered prompt** before you fire it at Claude Code, Cursor, or another agent.
|
||||
|
||||
BYO-LLM only — no LexAI servers. Uses the same Prompt Builder core as the Chrome and VS Code extensions.
|
||||
|
||||
## Install (from this repo)
|
||||
|
||||
```bash
|
||||
# from repo root
|
||||
npm run cli:install
|
||||
npm run cli:build
|
||||
|
||||
# make `lexai` available on your PATH
|
||||
cd packages/cli && npm link
|
||||
```
|
||||
|
||||
Or run without linking:
|
||||
|
||||
```bash
|
||||
node packages/cli/out/cli.js prompt "your rough idea"
|
||||
```
|
||||
|
||||
## Setup
|
||||
|
||||
```powershell
|
||||
# PowerShell
|
||||
$env:LEXAI_API_KEY = "sk-..."
|
||||
$env:LEXAI_PROVIDER = "openai" # optional: openai | anthropic | groq | openrouter
|
||||
$env:LEXAI_MODEL = "gpt-4o" # optional
|
||||
```
|
||||
|
||||
Optional defaults file (no API key allowed here): `~/.lexai/config.json`
|
||||
|
||||
```json
|
||||
{
|
||||
"provider": "openai",
|
||||
"model": "gpt-4o",
|
||||
"pattern": "role",
|
||||
"persona": "Expert Developer",
|
||||
"format": "Markdown",
|
||||
"style": "Concise"
|
||||
}
|
||||
```
|
||||
|
||||
Precedence: **flags > config file > env > defaults**. Key is always from `LEXAI_API_KEY`.
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
lexai prompt "add rate limiting to the express auth routes"
|
||||
|
||||
echo "debug flaky playwright on CI" | lexai prompt --pattern role --persona "Expert Developer"
|
||||
|
||||
lexai prompt -f draft.txt --format Markdown --model gpt-4o
|
||||
|
||||
lexai prompt --list
|
||||
lexai prompt --help
|
||||
```
|
||||
|
||||
The engineered prompt is written to **stdout** (pipe-safe). Progress and errors go to **stderr**.
|
||||
|
||||
```powershell
|
||||
# Windows: copy to clipboard
|
||||
lexai prompt "write a unit test for parseConfig" | Set-Clipboard
|
||||
```
|
||||
|
||||
### Flags
|
||||
|
||||
| Flag | Meaning |
|
||||
| --- | --- |
|
||||
| `-f, --file <path>` | Read input from file |
|
||||
| `--pattern <id>` | Pattern id (`auto`, `role`, `cot`, …) — see `--list` |
|
||||
| `--persona <name\|text>` | Persona preset or free text |
|
||||
| `--format <name>` | Output format hint |
|
||||
| `--style <name>` | Style the engineered prompt should request |
|
||||
| `--provider` / `--model` | Provider overrides |
|
||||
| `-l, --list` | List patterns, personas, formats, styles |
|
||||
| `-h, --help` | Help |
|
||||
|
||||
Exit codes: `0` success · `1` user/config error · `2` provider/network error
|
||||
|
||||
## Scope
|
||||
|
||||
**In:** Make Prompt / Prompt Builder only.
|
||||
**Out:** Fix/Rephrase/Code Assist, reading VS Code/Chrome keys, auto-running shell commands.
|
||||
Reference in New Issue
Block a user