Skip to content

Commit 48fe367

Browse files
committed
docs: sync README with actual implementation
- Add jam review command section (--base, --pr, --json) - Add jam commit command section (--dry, --yes, --amend) - Add jam context command section (init, show) - Add --no-tools flag to jam ask options table - Clarify --no-color as a global flag - Collapse project structure to directory-level (no per-file churn) - Remove jam commit and jam review from Roadmap (already shipped)
1 parent 3677241 commit 48fe367

1 file changed

Lines changed: 66 additions & 47 deletions

File tree

README.md

Lines changed: 66 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,8 @@ jam ask "Hello" --profile work
162162
| `--provider <name>` | Override provider |
163163
| `--base-url <url>` | Override provider base URL |
164164
| `--profile <name>` | Use a named config profile |
165-
| `--no-color` | Strip ANSI colors from output |
165+
| `--no-tools` | Disable read-only tool use (file discovery) |
166+
| `--no-color` | Strip ANSI colors from output (global flag) |
166167

167168
---
168169

@@ -236,6 +237,50 @@ jam diff --staged --json # JSON output
236237

237238
---
238239

240+
### `jam review`
241+
242+
Review a branch or pull request with AI.
243+
244+
```bash
245+
jam review # review current branch against main
246+
jam review --base develop # diff against a different base branch
247+
jam review --pr 42 # review a specific PR (requires GitHub CLI)
248+
jam review --json # JSON output
249+
```
250+
251+
**Options:**
252+
253+
| Flag | Description |
254+
|------|-------------|
255+
| `--base <ref>` | Base branch or ref to diff against (default: `main`) |
256+
| `--pr <number>` | Review a specific PR number (requires `gh` CLI) |
257+
| `--json` | Machine-readable JSON output |
258+
259+
---
260+
261+
### `jam commit`
262+
263+
Generate an AI-written commit message from staged changes and commit.
264+
265+
```bash
266+
jam commit # generate message, confirm, then commit
267+
jam commit --dry # generate message only, do not commit
268+
jam commit --yes # skip confirmation prompt
269+
jam commit --amend # amend the last commit with a new AI message
270+
```
271+
272+
**Options:**
273+
274+
| Flag | Description |
275+
|------|-------------|
276+
| `--dry` | Generate the message but do not commit |
277+
| `--yes` | Auto-confirm without prompting |
278+
| `--amend` | Amend the last commit with a new AI-generated message |
279+
280+
Messages follow the [Conventional Commits](https://conventionalcommits.org) specification.
281+
282+
---
283+
239284
### `jam patch`
240285

241286
Ask the AI to generate a unified diff patch, validate it, and optionally apply it.
@@ -302,6 +347,18 @@ jam config init --global # create ~/.config/jam/config.json
302347

303348
---
304349

350+
### `jam context`
351+
352+
Manage the `JAM.md` project context file. This file is auto-read by `jam ask` and `jam chat` to give the model awareness of your project's architecture, conventions, and goals.
353+
354+
```bash
355+
jam context init # generate JAM.md at the workspace root
356+
jam context init --force # overwrite an existing JAM.md
357+
jam context show # display the current JAM.md contents
358+
```
359+
360+
---
361+
305362
### `jam models list`
306363

307364
```bash
@@ -461,50 +518,14 @@ npm run test:coverage # coverage report
461518

462519
```
463520
src/
464-
├── index.ts # CLI entry point (commander, lazy imports)
465-
├── commands/ # One file per command
466-
│ ├── ask.ts # jam ask
467-
│ ├── chat.ts # jam chat
468-
│ ├── run.ts # jam run (agentic loop)
469-
│ ├── explain.ts # jam explain
470-
│ ├── search.ts # jam search
471-
│ ├── diff.ts # jam diff
472-
│ ├── patch.ts # jam patch
473-
│ ├── auth.ts # jam auth
474-
│ ├── config.ts # jam config
475-
│ ├── models.ts # jam models
476-
│ ├── history.ts # jam history
477-
│ ├── completion.ts # jam completion
478-
│ └── doctor.ts # jam doctor
479-
├── providers/ # LLM adapter layer
480-
│ ├── base.ts # ProviderAdapter interface
481-
│ ├── ollama.ts # Ollama adapter (NDJSON streaming)
482-
│ └── factory.ts # createProvider()
483-
├── tools/ # Model-callable local tools
484-
│ ├── types.ts # ToolDefinition, ToolResult interfaces
485-
│ ├── registry.ts # ToolRegistry + permission enforcement
486-
│ ├── read_file.ts
487-
│ ├── list_dir.ts
488-
│ ├── search_text.ts
489-
│ ├── git_diff.ts
490-
│ ├── git_status.ts
491-
│ ├── apply_patch.ts
492-
│ └── write_file.ts
493-
├── config/ # Config loading and schema
494-
│ ├── schema.ts # Zod schema
495-
│ ├── defaults.ts # Built-in defaults
496-
│ └── loader.ts # cosmiconfig + deep merge
497-
├── storage/
498-
│ └── history.ts # Chat session persistence (JSON files)
499-
├── ui/
500-
│ ├── chat.tsx # Ink chat REPL (React TUI)
501-
│ └── renderer.ts # Markdown + streaming renderer
502-
└── utils/
503-
├── errors.ts # JamError class
504-
├── stream.ts # withRetry, collectStream
505-
├── logger.ts # Logger (stderr, redaction)
506-
├── secrets.ts # keytar + env fallback
507-
└── workspace.ts # Git root detection
521+
├── index.ts # CLI entry point — command registration (Commander)
522+
├── commands/ # One file per command (ask, chat, run, review, commit, …)
523+
├── providers/ # LLM adapter layer — ProviderAdapter interface + Ollama impl
524+
├── tools/ # Model-callable tools + registry + permission enforcement
525+
├── config/ # Zod schema, cosmiconfig loader, built-in defaults
526+
├── storage/ # Chat session persistence (JSON files)
527+
├── ui/ # Ink/React TUI (chat REPL) + Markdown/streaming renderer
528+
└── utils/ # Shared helpers: streaming, logger, secrets, agent loop, tokens
508529
```
509530

510531
---
@@ -587,8 +608,6 @@ We take security seriously. If you discover a vulnerability, please **do not** o
587608
- [ ] OpenAI / Azure OpenAI provider
588609
- [ ] Anthropic Claude provider
589610
- [ ] Groq provider
590-
- [ ] `jam commit` — AI-generated commit messages
591-
- [ ] `jam review` — PR review workflow
592611
- [ ] Plugin system for custom tools
593612
- [ ] Token usage tracking and budgets
594613
- [ ] Web UI companion

0 commit comments

Comments
 (0)