{"id":47243718,"url":"https://github.com/sunilp/jam-cli","last_synced_at":"2026-04-02T13:02:22.556Z","repository":{"id":339914503,"uuid":"1163796904","full_name":"sunilp/jam-cli","owner":"sunilp","description":"Developer-first AI CLI for cross-language code intelligence. Trace call graphs, impact analysis, agentic execution across Java, SQL, Python, TypeScript. 40+ commands. Zero vendor lock-in.","archived":false,"fork":false,"pushed_at":"2026-03-25T04:17:01.000Z","size":1954,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-27T01:51:58.846Z","etag":null,"topics":["agentic","ai","ai-cli","call-graph","cli","code-intelligence","code-review","cross-language","developer-tools","impact-analysis","java","llm","ollama","open-source","python","sql","terminal","trace","typescript"],"latest_commit_sha":null,"homepage":"https://github.com/sunilp/jam-cli/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sunilp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":null},"created_at":"2026-02-22T06:45:24.000Z","updated_at":"2026-03-25T04:17:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sunilp/jam-cli","commit_stats":null,"previous_names":["sunilp/jam-cli"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/sunilp/jam-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunilp%2Fjam-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunilp%2Fjam-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunilp%2Fjam-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunilp%2Fjam-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sunilp","download_url":"https://codeload.github.com/sunilp/jam-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunilp%2Fjam-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31306708,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic","ai","ai-cli","call-graph","cli","code-intelligence","code-review","cross-language","developer-tools","impact-analysis","java","llm","ollama","open-source","python","sql","terminal","trace","typescript"],"created_at":"2026-03-14T03:09:52.748Z","updated_at":"2026-04-02T13:02:22.535Z","avatar_url":"https://github.com/sunilp.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cpre\u003e\n    ██╗  █████╗  ███╗   ███╗\n    ██║ ██╔══██╗ ████╗ ████║\n    ██║ ███████║ ██╔████╔██║\n██  ██║ ██╔══██║ ██║╚██╔╝██║\n╚████╔╝ ██║  ██║ ██║ ╚═╝ ██║\n ╚═══╝  ╚═╝  ╚═╝ ╚═╝     ╚═╝\n\u003c/pre\u003e\n\n# jam\n\n**The developer-first AI CLI.** Cross-language code intelligence from your terminal.\n\nTrace call graphs across Java, SQL, Python, and TypeScript. Impact analysis.\nAI-powered agentic execution. Works with Copilot \u0026 Gemini. Windows, macOS, Linux.\n\n[![CI](https://github.com/sunilp/jam-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/sunilp/jam-cli/actions/workflows/ci.yml)\n[![npm](https://img.shields.io/npm/v/@sunilp-org/jam-cli.svg)](https://www.npmjs.com/package/@sunilp-org/jam-cli)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n[Docs](https://jam.sunilprakash.com) · [Install](#install) · [VSCode Extension](https://marketplace.visualstudio.com/items?itemName=sunilp.jam-cli-vscode)\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/demo.svg\" alt=\"jam CLI — trace, git wtf, agent\" width=\"720\"\u003e\n\u003c/div\u003e\n\n---\n\n## What Jam Does\n\nJam isn't a generic AI assistant. It's the senior dev who's seen everything — direct, opinionated, and warm. Every message, error, and prompt speaks with the same voice: concise, specific, developer-aligned.\n\n- 🔍 **Call graph tracing** — trace any symbol's callers, callees, and upstream chain across languages\n- 💥 **Impact analysis** — \"if I change this, what breaks?\" with column-level SQL dependency tracking\n- 🤖 **Agentic execution** — `jam go` (interactive) and `jam run` (one-shot) decompose tasks into parallel subtasks\n- 💬 **AI chat \u0026 ask** — streaming responses, multi-turn sessions, stdin/pipe support\n- 🩹 **Patch workflow** — generate diffs, validate, preview, apply with confirmation\n- 📊 **Code intelligence** — explain files, search code, review diffs, generate Mermaid diagrams\n- 🔧 **Git toolkit** — `wtf` explains state, `undo` reverses mistakes, `standup` shows your work\n- ✅ **Verification** — scan for secrets, lint, type-check before you commit\n- 🧰 **19 zero-LLM utilities** — `ports`, `stats`, `deps`, `todo`, `hash`, `json`, `env`, and more\n- 🔌 **Any provider** — Copilot, Gemini, Ollama, OpenAI, Anthropic, Groq — or bring your own\n- 🏠 **Local-first** — your code never leaves your machine unless you choose a remote provider\n- 🖥️ **Cross-platform** — Windows (PowerShell, cmd), macOS, Linux\n- 🔗 **MCP + plugins** — connect to Model Context Protocol servers, drop in custom commands\n\n---\n\n## Install\n\n```bash\n# npm\nnpm install -g @sunilp-org/jam-cli\n\n# Homebrew\nbrew tap sunilp/tap \u0026\u0026 brew install jam-cli\n\n# Try without installing\nnpx @sunilp-org/jam-cli doctor\n```\n\nJam auto-detects the best available AI provider — **no API keys needed** if you have Copilot or Gemini:\n\n| Priority | Provider | Setup |\n|----------|----------|-------|\n| 1 | **GitHub Copilot** | VSCode extension — zero config |\n| 2 | **Gemini Code Assist** | VSCode extension — zero config |\n| 3 | **Anthropic** | `export ANTHROPIC_API_KEY=sk-ant-...` |\n| 4 | **OpenAI** | `export OPENAI_API_KEY=sk-...` |\n| 5 | **Ollama** (default) | `ollama serve` + `ollama pull llama3.2` |\n\n```bash\njam doctor           # verify everything works\njam models list      # see available models\njam models set gpt-4o  # set your preferred model\n```\n\n---\n\n## Cookbook\n\n### Ask \u0026 Chat\n\n```bash\njam ask \"explain the builder pattern in Go\"\n\n# pipe anything\ncat schema.sql | jam ask \"what tables have no foreign keys?\"\ngit log --since=\"1 week\" -p | jam ask \"summarize this week's changes\"\n\n# interactive chat with history\njam chat\n```\n\n### Agent Engine\n\n```bash\n# interactive agent console — reads, writes, runs commands\njam go\njam\u003e add retry logic to the HTTP client with exponential backoff\n\n# one-shot autonomous task\njam run \"add input validation to all API endpoints\" --yes\n\n# fully autonomous with parallel workers\njam run \"refactor auth module into separate files\" --auto --workers 4\n```\n\n### Code Intelligence\n\n```bash\n# trace a function's call graph\njam trace createProvider\njam trace updateBalance --impact       # what breaks if this changes?\njam trace handleRequest --mermaid      # output as Mermaid diagram\njam trace PROC_PAYMENT --depth 8       # deeper upstream chain\n\n# explain any file\njam explain src/auth/middleware.ts\n\n# search with AI understanding\njam search \"where is the rate limiter configured?\"\n\n# generate architecture diagram from code\njam diagram\n```\n\n### Git Toolkit\n\n```bash\njam git wtf          # \"3 files staged, 2 conflicts, 1 stash. Here's what happened...\"\njam git undo         # undo last commit, last stash, or last merge\njam git standup      # your commits from the last 3 days\njam git cleanup      # preview and delete merged branches\njam git oops         # fix common mistakes (wrong branch, bad commit message)\n```\n\n### Dev Utilities (zero LLM)\n\n```bash\njam stats            # LOC, languages, complexity hotspots\njam deps             # import dependency graph\njam todo             # find all TODO/FIXME/HACK comments\njam verify           # pre-commit checks: secrets, lint, types\njam ports            # what's listening on which port\njam env              # environment variable diff between shells\njam hash \u003cfile\u003e      # MD5/SHA1/SHA256 of any file\njam json \u003cfile\u003e      # validate, format, query JSON\njam recent           # recently modified files\njam convert 5kg lb   # unit conversions\njam http GET /users  # quick HTTP requests\njam pack             # analyze npm/pip/cargo package size\n```\n\n### Patch \u0026 Review\n\n```bash\n# AI-powered diff summary\njam diff\n\n# code review with risk assessment\njam review\n\n# generate and apply a patch\njam patch \"add error handling to the database module\"\n\n# auto-generate commit message matching your project's convention\njam commit\n```\n\n---\n\n## VSCode Extension\n\n[Install from Marketplace](https://marketplace.visualstudio.com/items?itemName=sunilp.jam-cli-vscode)\n\n- All commands in the Command Palette\n- `@jam` chat participant in GitHub Copilot Chat\n- TODO tree in the sidebar with click-to-navigate\n- **Copilot or Gemini** auto-detected — zero configuration, no API keys\n- Status bar indicator shows connection state\n- Keeps jam-cli updated automatically\n\n---\n\n## Configuration\n\n```bash\njam init              # interactive setup wizard\njam config show       # show resolved config\n```\n\n```json\n// .jamrc (per-project)\n{\n  \"defaultProfile\": \"work\",\n  \"profiles\": {\n    \"work\": { \"provider\": \"anthropic\", \"model\": \"claude-sonnet-4-20250514\" },\n    \"local\": { \"provider\": \"ollama\", \"model\": \"llama3.2\" }\n  }\n}\n```\n\n```bash\njam ask \"hello\" --profile work     # use Anthropic\njam ask \"hello\" --profile local    # use Ollama\n```\n\nSupports HTTP proxy (`HTTP_PROXY`), custom CA certificates (`tlsCaPath`), configurable timeouts, MCP servers, and plugin loading. [Full configuration docs →](https://jam.sunilprakash.com)\n\n---\n\n## Links\n\n- 📖 [Documentation](https://jam.sunilprakash.com)\n- 🧩 [VSCode Extension](https://marketplace.visualstudio.com/items?itemName=sunilp.jam-cli-vscode)\n- 🍺 [Homebrew Tap](https://github.com/sunilp/homebrew-tap)\n- 🐛 [Issues](https://github.com/sunilp/jam-cli/issues)\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md). PRs welcome.\n\n## License\n\nMIT\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunilp%2Fjam-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunilp%2Fjam-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunilp%2Fjam-cli/lists"}