chore(docs): update README.md

This commit is contained in:
mitchell 2026-06-12 03:28:01 -04:00
parent 4674cca337
commit 0e07268bfb

View file

@ -1,6 +1,6 @@
# lmc # lmc
A Bun-based CLI tool for LLM chats with terminal native streaming. A CLI tool for LLM chats with terminal native streaming.
## Features ## Features
@ -14,15 +14,20 @@ A Bun-based CLI tool for LLM chats with terminal native streaming.
## Requirements ## Requirements
- [Bun](https://bun.com) v1.3+ - [pnpm](https://pnpm.io) v11+
- [Node.js](https://nodejs.org) v22+
- [uv](https://docs.astral.sh/uv/) — only for `ttsc` (text-to-speech) - [uv](https://docs.astral.sh/uv/) — only for `ttsc` (text-to-speech)
## Installation ## Installation
```bash ```bash
bun install # Bundle and install locally
bun build:js pnpm build
bun link pnpm add --global .
# Build a single-file exe
pnpm build:bin
cp dist/lmc dist/ttsc /somewhere/bin/
# For ttsc only # For ttsc only
cp -r tts ~/.ttsc cp -r tts ~/.ttsc
@ -67,6 +72,7 @@ echo "text" | ttsc [options]
| -------- | ----- | ------- | -------------------------------------------------------- | | -------- | ----- | ------- | -------------------------------------------------------- |
| `--wait` | `-w` | boolean | Wait for all processing before exiting (don't auto-play) | | `--wait` | `-w` | boolean | Wait for all processing before exiting (don't auto-play) |
| `--url` | `-u` | boolean | Fetch text from a URL instead of stdin | | `--url` | `-u` | boolean | Fetch text from a URL instead of stdin |
| `--edit` | `-e` | boolean | Edit the input with your $EDITOR before processing |
**Examples:** **Examples:**
@ -86,9 +92,8 @@ Wants:
## Development ## Development
```bash ```bash
bun run dev # dev run pnpm run dev # dev run
bun run prod # run bundled output pnpm run check # biome lint + format + organize imports
bun run check # biome lint + format + organize imports
``` ```
## Architecture ## Architecture
@ -97,7 +102,7 @@ bun run check # biome lint + format + organize imports
index.ts — LMC entry point, orchestration index.ts — LMC entry point, orchestration
tts.ts — TTSC entry point, orchestration tts.ts — TTSC entry point, orchestration
src/render/index.ts — Renderer class: streams LLM response, buffers markdown src/render/index.ts — Renderer class: streams LLM response, buffers markdown
src/render/markdown.ts — renderMarkdown(): syntax-highlighted markdown via Bun.markdown + Shiki src/render/markdown.ts — renderMarkdown(): syntax-highlighted markdown via Marked + Shiki
src/conversation/ — Conversation persistence src/conversation/ — Conversation persistence
src/config/ — App config persistence src/config/ — App config persistence
tts/ — TTS python stub (Kokoro pipeline) tts/ — TTS python stub (Kokoro pipeline)
@ -113,12 +118,13 @@ out/ — Bundled output (index.js, tts.js)
## Dependencies ## Dependencies
| Package | Purpose | | Package | Purpose |
| --------------------------- | ----------------------------------------- | | ---------------------- | ------------------------------- |
| `ai` (Vercel AI SDK) | Streaming text/usage | | `ai` (Vercel AI SDK) | Streaming text/usage |
| `@clack/prompts` | Interactive prompts and spinner | | `@clack/prompts` | Interactive prompts and spinner |
| `@cliffy/table` | ASCII table rendering | | `@cliffy/table` | ASCII table rendering |
| `@mozilla/readability` | HTML-to-text extraction (ttsc) | | `@mozilla/readability` | HTML-to-text extraction (ttsc) |
| `chalk` | Terminal string styling | | `chalk` | Terminal string styling |
| `happy-dom` | DOM parsing for URLs (ttsc) | | `happy-dom` | DOM parsing for URLs (ttsc) |
| `shiki` | Syntax highlighting (kanagawa-wave theme) | | `shiki` | Syntax highlighting |
| `terminal-link` | Clickable terminal hyperlinks | | `terminal-link` | Clickable terminal hyperlinks |
| `marked` | Markdown parsing |