v0.11 — Windows support · Copilot + Gemini auto-detect · Clean output

Developer-first AI CLI.
Cross-language code intelligence.

Jam is the senior dev who's seen everything — direct, opinionated, and helpful without being corporate. Trace call graphs across Java, SQL, Python, and TypeScript. Impact analysis tells you what breaks before you change it. Agentic execution writes code that matches your conventions. Works with GitHub Copilot, Gemini, or any provider. Windows, macOS, Linux.

Install GitHub →
Runs locally by default Code never leaves your machine Swap providers with one flag
~/my-project
$ jam trace updateBalance --impact
Impact Analysis for updateBalance
═══════════════════════════════════
Direct callers:
→ PaymentService.processRefund() [Java]
→ BATCH_NIGHTLY_RECONCILE [SQL]
Column dependents:
→ VIEW v_customer_summary (reads customer.balance)
→ PROC_MONTHLY_STATEMENT (reads customer.balance)
Risk: HIGH — 2 callers across 2 languages, 2 column dependents

Works Everywhere You Do

Windows support. Copilot and Gemini auto-detection. No API keys required — if you have a VSCode AI extension, Jam uses it.

Copilot + Gemini

Jam auto-detects GitHub Copilot or Gemini Code Assist in VSCode. No API key, no config — just works. Status bar shows connection state.

Windows Native

Full support for PowerShell, cmd.exe, and Windows Terminal. Tab completions, port scanning via netstat, cross-platform process management.

Model Selection

jam models list shows available models. jam models set gpt-4o sets your default. Or use --model per command.

Clean Output

No more verbose planning logs. Clean, focused answers by default. Use --verbose when you want to see the agent's thinking.

Cross-Language Impact Analysis

"If I change this function, what breaks?" Jam traces call graphs across Java, SQL, Python, and TypeScript — then tells you exactly what depends on it, down to individual SQL columns.

Trace any symbol

Follow a function through its callers, callees, and upstream chain. Works across language boundaries — a Java service calling a SQL procedure, a Python script importing TypeScript.

TypeScript Python Java SQL
~/my-project
$ jam trace createProvider --depth 5
createProvider (function) src/providers/factory.ts:24
callers:
runAsk src/commands/ask.ts:31
runDoctor src/commands/doctor.ts:52
runGo src/commands/go.ts:44
callees:
OllamaAdapter src/providers/ollama.ts:8
CopilotAdapter src/providers/copilot.ts:12

Impact before you change

The --impact flag shows every caller, every SQL column dependent, and a risk assessment. Know exactly what breaks before you touch a line of code. No other CLI tool does this.

--impact --mermaid --json --depth N
~/my-project
$ jam trace updateBalance --impact
Impact Analysis for updateBalance
───────────────────────────────────
Direct callers:
PaymentService.processRefund() [Java]
BATCH_NIGHTLY_RECONCILE [SQL]
Column dependents:
VIEW v_customer_summary (reads balance)
Risk: HIGH — 2 callers, 2 languages, column deps

The Agent Engine

Give it a task. It plans, decomposes, dispatches parallel workers, and writes code that matches your conventions. Two modes: interactive console or one-shot autonomous.

Your Task
Workspace
Intelligence
Planner
⚙⚙⚙
Parallel
Workers
Merge &
Verify

jam go — Interactive Agent

An always-on console session. Type tasks, watch workers execute in parallel, give feedback mid-flight. Session memory carries context between tasks.

Parallel workers Session memory /stop /status
jam go
jam> Add user auth with JWT and tests
--- Plan: Add JWT auth (3 subtasks) ---
[Worker 1] Creating auth middleware...
[Worker 1] Done: src/middleware/auth.ts
[Worker 2] Creating JWT utils...
[Worker 3] Writing tests...
[Worker 2] Done: src/utils/jwt.ts
[Worker 3] Done: src/auth.test.ts
[3/3 complete | 2,400 tokens]
jam> _

jam run — One-Shot Autonomous

Give it a task, it runs to completion. Decomposes, executes, validates, exits. Perfect for CI/CD pipelines and scripts.

--auto --image --json
~/my-project
$ jam run "Fix the pagination bug" --auto
Profiling workspace... TypeScript/vitest/2-space
--- Plan: Fix pagination (2 subtasks) ---
[Worker 1] Reading src/api/paginate.ts
[Worker 1] Fixed off-by-one in offset calc
[Worker 1] Done
[Worker 2] Added regression test
[Worker 2] npm test passed
[2/2 complete | 1,800 tokens]

Workspace Intelligence

Before writing a single line, the agent profiles your project. Code style, test patterns, naming conventions, frameworks — all detected and cached. The code it writes looks like yours.

Cached Convention-aware Style matching
workspace profile
Working in a TypeScript/Express project.
- Style: 2-space, single quotes, semicolons
- Files: kebab-case.ts with barrel exports
- Tests: vitest, co-located *.test.ts
- Imports: relative paths (../utils/)
- Commits: conventional (feat:, fix:)
- Errors: custom JamError class
- Package: npm, tsc, eslint

See it in action

Ask about your codebase

Jam searches, reads, and synthesizes. It doesn't guess — it reads the actual code before answering.

~/my-project
$ jam ask "How does error handling work?"
── Planning ──────────────────────────
│ Step 1: read_file src/utils/errors.ts
── Searching codebase ─────────────────
▸ read_file(path="src/utils/errors.ts")
── Answer ─────────────────────────────
JamError extends Error with typed error
codes, retryable flags, and actionable
hints for each error scenario.

Smart commits

Auto-detects your project's convention. Conventional Commits, Jira prefixes, or custom patterns.

~/my-project
$ jam commit
Detected convention: {type}({scope}): {desc}
Generating commit message...
Generated commit message:
feat(providers): add quota detection
[main a1b2c3d] feat(providers): add quota detection

Architecture diagrams

Static analysis maps modules, dependencies, and cycles. Generates Mermaid output. AI refinement optional.

~/my-project
$ jam diagram --type architecture
Analyzing codebase...
Found 93 files, 12 modules, 310 imports
graph TD
commands[commands — 37 files]
utils[utils — 14 files]
providers[providers — 7 files]
commands -->|70| utils
commands -->|39| config

Validate before you ship

Secrets, lint, and AI review in one command. Catches problems before they reach your repo.

~/my-project
$ jam verify
Running checks...
[✓] No secrets detected
[✓] Lint passed — 0 warnings
[✓] TypeScript — 0 errors
[✓] AI review — no issues found
All checks passed.

Your model, your choice

Ollama OpenAI Anthropic Groq Copilot ProviderAdapter jam

Auto-detects your best provider: Copilot → Anthropic → OpenAI → Ollama. No --provider needed.

Default is localhost. Your code stays on your machine.

Up and running in 60 seconds

1

Try instantly

npx @sunilp-org/jam-cli doctor
2

Install

npm install -g @sunilp-org/jam-cli

or brew tap sunilp/tap && brew install jam-cli

3

First command

jam ask "How does auth work in this project?"