@@ -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
241286Ask 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```
463520src/
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