diff --git a/README.md b/README.md index b2f0c47..981bddb 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ A Bun-based CLI tool for LLM chats with terminal native streaming. - **Conversation persistence** — chat history saved to JSON - **Model configuration** — persist model preferences to JSON - **Reasoning display** — thinking tokens rendered _in style_ on stderr -- **Usage stats** — input/output tokens and elapsed time after each response +- **Usage stats** — input/output tokens and tokens/sec rate after each response - **TTY-aware** — automatically disables markdown rendering when output is piped - **Text-to-speech** — `ttsc` sub-command for streaming TTS via Kokoro model @@ -38,22 +38,22 @@ _Package to come later_ lmc [options] ``` -| Flag | Short | Type | Description | -| ------------ | ----- | ------- | ------------------------------------------------- | -| `--new` | `-n` | boolean | Start a new conversation (clear history) | -| `--model` | `-m` | string | Set model name for this session | -| `--save` | `-s` | boolean | Save the specified model (--model) as the default | -| `--plain` | — | boolean | Disable markdown rendering (plain text output) | -| `--plainOut` | — | boolean | Disable markdown rendering for stdout only | -| `--plainErr` | — | boolean | Disable markdown rendering for stderr only | +| Flag | Short | Type | Description | +| ------------ | ----- | ------- | ----------------------------------------------------- | +| `--new` | `-n` | boolean | Start a new conversation (clear history) | +| `--model` | `-m` | string | Set model name for this session | +| `--config` | `-c` | boolean | Initialize a new config file (`~/.lmc_config.json`) | +| `--plain` | — | boolean | Disable markdown rendering for both stdout and stderr | +| `--plainOut` | — | boolean | Disable markdown rendering for stdout only | +| `--plainErr` | — | boolean | Disable markdown rendering for stderr only | **Examples:** ```bash +lmc --config # Initialize/edit config lmc --new "Introduce yourself." # New conversation lmc "What is TypeScript?" # Continue most recent chat -lmc -m llama3 "Explain quantum computing" # Chat with specific model -lmc --model llama3 --save # Set default model +lmc -m llama3 "Explain quantum computing" # Chat with specific model on-the-fly lmc --plain "Plain text output" # No markdown rendering ``` @@ -66,12 +66,14 @@ echo "text" | ttsc [options] | Flag | Short | Type | Description | | -------- | ----- | ------- | -------------------------------------------------------- | | `--wait` | `-w` | boolean | Wait for all processing before exiting (don't auto-play) | +| `--url` | `-u` | boolean | Fetch text from a URL instead of stdin | **Examples:** ```bash echo "Hello, world!" | ttsc echo "Read this aloud" | ttsc --wait +echo "https://example.com" | ttsc --url ``` Requires: [uv](https://docs.astral.sh/uv/) @@ -113,8 +115,10 @@ out/ — Bundled output (index.js, tts.js) | Package | Purpose | | --------------------------- | ----------------------------------------- | | `ai` (Vercel AI SDK) | Streaming text/usage | -| `@ai-sdk/openai-compatible` | OpenAI-compatible API client | -| `shiki` | Syntax highlighting (kanagawa-wave theme) | -| `cli-table3` | ASCII table rendering | +| `@clack/prompts` | Interactive prompts and spinner | +| `@cliffy/table` | ASCII table rendering | +| `@mozilla/readability` | HTML-to-text extraction (ttsc) | | `chalk` | Terminal string styling | +| `happy-dom` | DOM parsing for URLs (ttsc) | +| `shiki` | Syntax highlighting (kanagawa-wave theme) | | `terminal-link` | Clickable terminal hyperlinks |