diff --git a/README.md b/README.md index ed367b0..e48e3d1 100644 --- a/README.md +++ b/README.md @@ -17,9 +17,11 @@ Generate **Conventional Commits** messages using AI — based on your project co ## Features +- **Interactive menu** — `gai` opens a menu, select actions with ↑/↓ + space/enter - **3-layer context** — project overview, staged diff, and recent commit history - **Conventional Commits** — `feat(scope): description` format by default - **Interactive file selection** — ↑/↓ to navigate, space to select, top-level "Select all" +- **Inline editing** — edit AI-generated messages right in the terminal with cursor movement - **OpenAI-compatible API** — works with DeepSeek, OpenAI, Ollama, and more - **Review before commit** — confirm, edit, or abort the generated message - **Zero dependencies** — built entirely on Bun native APIs @@ -31,36 +33,56 @@ Generate **Conventional Commits** messages using AI — based on your project co bun install # Configure your API key -bun run gai config +gai config -# Generate a commit message -bun run gai +# Open interactive menu +gai + +# Or directly generate a commit message +gai commit ``` ## Usage ``` -gai Generate commit message (interactive file selection) -gai --auto Auto-stage all changed files -gai --dry-run Generate message without committing +gai Open interactive menu +gai commit Generate commit message (interactive file selection) +gai commit --auto Auto-stage all changed files +gai commit -d Generate message without committing gai config Configure API settings gai --help Show help gai --version Show version ``` -### Interactive Flow +### Interactive Menu ``` $ gai + gai + + ↑/↓ navigate, space/enter select + + ❯ ◉ commit Generate AI commit message +``` + +### Commit Flow + +``` +$ gai commit + + Staged files (will be included): + ✓ src/git.ts (modified) + + Unstaged files: + 1. src/ai.ts (modified) + 2. src/newfile.ts (new) + Select files to stage: ❯ ◉ Select all - ◉ src/git.ts (modified) ○ src/ai.ts (modified) ◉ src/newfile.ts (new) - ↑/↓ navigate, space select, enter confirm - Generating commit message... Generated commit message: @@ -68,7 +90,9 @@ $ gai Use this message? [Y/n/e] Y - Committed successfully! + ✔ Committed successfully! + [main a3f7c2b] feat(git): add interactive file staging and commit wrapper + 1 file changed, 45 insertions(+), 12 deletions(-) ``` ## Configuration @@ -76,7 +100,7 @@ $ gai ### Via `gai config` (interactive) ```bash -bun run gai config +gai config ``` ### Via environment variables @@ -85,7 +109,7 @@ bun run gai config |---|---|---| | `GAI_API_KEY` | — | **Required.** Your API key | | `GAI_API_BASE` | `https://api.deepseek.com/v1` | API base URL | -| `GAI_MODEL` | `deepseek-v4-flash` | Model name | +| `GAI_MODEL` | `deepseek-chat` | Model name | | `GAI_MAX_TOKENS` | `500` | Max response tokens | | `GAI_TEMPERATURE` | `0.7` | Sampling temperature | @@ -96,7 +120,7 @@ Bun auto-loads `.env` — no dotenv needed: ```bash GAI_API_KEY=sk-your-key GAI_API_BASE=https://api.deepseek.com/v1 -GAI_MODEL=deepseek-v4-flash +GAI_MODEL=deepseek-chat ``` ### Using other providers