{"_id":"@alexmchan/azure-claude-review","_rev":"5-9532726b7ce1c7ebac512fc78ef43e7b","name":"@alexmchan/azure-claude-review","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@alexmchan/azure-claude-review","version":"1.0.0","keywords":["claude","code-review","git","cli"],"author":"","license":"MIT","_id":"@alexmchan/azure-claude-review@1.0.0","maintainers":[{"name":"alexanderchan","email":"alexander.m.chan@gmail.com"}],"bin":{"claude-review":"bin/claude-review.js","azure-claude-review":"bin/claude-review.js"},"dist":{"shasum":"0660a27ca6f0a4d28bc22a886e9eebfe2d39bc70","tarball":"https://registry.npmjs.org/@alexmchan/azure-claude-review/-/azure-claude-review-1.0.0.tgz","fileCount":5,"integrity":"sha512-cqBNbjprAztz2xs0zQgNjM/hu0X6ya13/fB+sRqmma7Gn0swqQ7t7rGJr9qOdCyYf31Cc0M5DX8pymlN9itUsA==","signatures":[{"sig":"MEUCIQC8P4OklGM4dR1GLdEfyGQoudNTzgW7jXySSIB3SX4A+AIgUVMCuKlx3SNx0GjJfUpgBaPguAiHhqhKHSFXGjvE2ls=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24338},"main":"index.js","engines":{"node":">=14.0.0"},"gitHead":"6fa7d4ab82cfe68cb3b7acc492d9ce1cf20e3ce9","scripts":{"test":"echo \"No tests yet\" && exit 0","start":"node bin/claude-review.js"},"_npmUser":{"name":"alexanderchan","email":"alexander.m.chan@gmail.com"},"_npmVersion":"11.2.0","description":"CLI tool to review code changes using Claude Code","directories":{},"_nodeVersion":"22.14.0","dependencies":{"chalk":"^4.1.2","commander":"^11.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/azure-claude-review_1.0.0_1753397533128_0.02704154123237279","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@alexmchan/azure-claude-review","version":"1.1.1","keywords":["claude","code-review","git","cli"],"author":"","license":"MIT","_id":"@alexmchan/azure-claude-review@1.1.1","maintainers":[{"name":"alexanderchan","email":"alexander.m.chan@gmail.com"}],"homepage":"https://github.com/alexanderchan/azure-claude-review#readme","bugs":{"url":"https://github.com/alexanderchan/azure-claude-review/issues"},"bin":{"claude-review":"bin/claude-review.js","azure-claude-review":"bin/claude-review.js"},"dist":{"shasum":"f5320c2aca613921fe34059bd936aeb07155c71e","tarball":"https://registry.npmjs.org/@alexmchan/azure-claude-review/-/azure-claude-review-1.1.1.tgz","fileCount":5,"integrity":"sha512-jkW7mAxLKihA3mIVJfevOpwTn+E4/lDwKD6GV44ezbHLfx8LM9u/tplTti3jGTDzSmOFYEeBh1orEnyl69CqFA==","signatures":[{"sig":"MEUCIQCqI6b37IKSFs5UTN2hYpWDIdQcXplB9B62F5gevN41wQIgZnRV7waryBGkl361h/aRq8zi0j3NHibysOZ3EFFQJBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24446},"main":"index.js","engines":{"node":">=14.0.0"},"gitHead":"1d9bea8c5cb90c67c70c20597190fb2fbfccf9cc","scripts":{"test":"echo \"No tests yet\" && exit 0","start":"node bin/claude-review.js"},"_npmUser":{"name":"alexanderchan","email":"alexander.m.chan@gmail.com"},"repository":{"url":"git+https://github.com/alexanderchan/azure-claude-review.git","type":"git"},"_npmVersion":"11.2.0","description":"CLI tool to review code changes using Claude Code","directories":{},"_nodeVersion":"22.14.0","dependencies":{"chalk":"^4.1.2","commander":"^11.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/azure-claude-review_1.1.1_1753397717704_0.061949535707083836","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@alexmchan/azure-claude-review","version":"1.1.2","keywords":["claude","code-review","git","cli"],"author":"","license":"MIT","_id":"@alexmchan/azure-claude-review@1.1.2","maintainers":[{"name":"alexanderchan","email":"alexander.m.chan@gmail.com"}],"homepage":"https://github.com/alexanderchan/azure-claude-review#readme","bugs":{"url":"https://github.com/alexanderchan/azure-claude-review/issues"},"bin":{"claude-review":"bin/claude-review.js","azure-claude-review":"bin/claude-review.js"},"dist":{"shasum":"56a173280ae1621609f72c2e49bb035aeee3a845","tarball":"https://registry.npmjs.org/@alexmchan/azure-claude-review/-/azure-claude-review-1.1.2.tgz","fileCount":4,"integrity":"sha512-scql0hR3ZpdknvOSUx7L3neGROlv4wzWDf9K3y5V85utCzcDEMIlKhD6Gqw6ePhnpc4Dn3UtT6/riWUKtSkSZA==","signatures":[{"sig":"MEQCIAcDYoDspS941Bg7CFTKYJv0+MBrZJyWZXh4r5otzLN0AiACiB8uV3vMzKdqUrGGGKH/pOec6jnlISKK1+8EPEClDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24451},"main":"bin/claude-review.js","engines":{"node":">=14.0.0"},"gitHead":"436130f565ad7db844d3df327eceb4f8542d5757","scripts":{"test":"echo \"No tests yet\" && exit 0","start":"node bin/claude-review.js"},"_npmUser":{"name":"alexanderchan","email":"alexander.m.chan@gmail.com"},"repository":{"url":"git+https://github.com/alexanderchan/azure-claude-review.git","type":"git"},"_npmVersion":"11.2.0","description":"CLI tool to review code changes using Claude Code","directories":{},"_nodeVersion":"22.14.0","dependencies":{"chalk":"^4.1.2","commander":"^11.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/azure-claude-review_1.1.2_1753397927756_0.6362938558836329","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@alexmchan/azure-claude-review","version":"1.1.3","keywords":["claude","code-review","git","cli"],"author":"","license":"MIT","_id":"@alexmchan/azure-claude-review@1.1.3","maintainers":[{"name":"alexanderchan","email":"alexander.m.chan@gmail.com"}],"homepage":"https://github.com/alexanderchan/azure-claude-review#readme","bugs":{"url":"https://github.com/alexanderchan/azure-claude-review/issues"},"bin":{"claude-review":"bin/claude-review.js","azure-claude-review":"bin/claude-review.js"},"dist":{"shasum":"0df7bf5ffcc0e5e98cbb17cee6465f5af2dc3087","tarball":"https://registry.npmjs.org/@alexmchan/azure-claude-review/-/azure-claude-review-1.1.3.tgz","fileCount":4,"integrity":"sha512-ZgMDizEx/3T6HJ5AJgKRBCz4z8vqaQcDvKlIZEzGiU294vqq/6BRLQxF3u+XITyBID3IfZbdzZFW6KT/m+0sWQ==","signatures":[{"sig":"MEUCIQD1v8ffRZySgDUxpfJ6ZmYW6euswC7ki3YcJ60IV1e7zwIgOtgg6Ye8mZZPGCgMXuMcDvfFjMwt9IpP2L4ig7BGd5g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24539},"main":"bin/claude-review.js","engines":{"node":">=14.0.0"},"gitHead":"2d59b340b2eeb363aaf3c6938ae1834dcc4de36e","scripts":{"test":"echo \"No tests yet\" && exit 0","start":"node bin/claude-review.js"},"_npmUser":{"name":"alexanderchan","email":"alexander.m.chan@gmail.com"},"repository":{"url":"git+https://github.com/alexanderchan/azure-claude-review.git","type":"git"},"_npmVersion":"11.2.0","description":"CLI tool to review code changes using Claude Code","directories":{},"_nodeVersion":"22.14.0","dependencies":{"chalk":"^4.1.2","commander":"^11.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/azure-claude-review_1.1.3_1753398037880_0.4872598363778373","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alexmchan/azure-claude-review","version":"1.2.0","description":"CLI tool to review code changes using Claude Code","type":"module","main":"bin/claude-review.js","repository":{"type":"git","url":"git+https://github.com/alexanderchan/azure-claude-review.git"},"bin":{"claude-review":"bin/claude-review.js","azure-claude-review":"bin/claude-review.js"},"scripts":{"build":"node build.mjs","prepublish":"npm run build","start":"node bin/claude-review.js","test":"echo \"No tests yet\" && exit 0"},"engines":{"node":">=22.0.0"},"keywords":["claude","code-review","git","cli"],"author":"","license":"MIT","publishConfig":{"access":"public"},"devDependencies":{"@types/node":"^24.1.0","esbuild":"^0.25.8","typescript":"^5.8.3"},"dependencies":{"@commander-js/extra-typings":"^14.0.0","@types/prompts":"^2.4.9","commander":"~14.0.0","execa":"^9.6.0","ora":"^8.2.0","prompts":"^2.4.2"},"_id":"@alexmchan/azure-claude-review@1.2.0","gitHead":"4526c3ad22624e795ac03df8a5a9012be15c6c15","bugs":{"url":"https://github.com/alexanderchan/azure-claude-review/issues"},"homepage":"https://github.com/alexanderchan/azure-claude-review#readme","_nodeVersion":"22.14.0","_npmVersion":"11.2.0","dist":{"integrity":"sha512-2BVEYMY8/2YQRhAe3MQwOgMUO0zVxR2j0jDVZXtJx3yOW0CMVkQafHH1NyMS4VmqGl+c8HFMWrXEwcBsmdJ0Kw==","shasum":"04638e180c70a495cdd94183df96a56caaa16692","tarball":"https://registry.npmjs.org/@alexmchan/azure-claude-review/-/azure-claude-review-1.2.0.tgz","fileCount":5,"unpackedSize":41712,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDO0jTiqR/POJHTn3lhqNLnKzVrF9KDRJSCLn4X+PDm9gIgRABIKU+L+TEHQL9XceTLIjxMsSssROg4O7fQOclBlgc="}]},"_npmUser":{"name":"alexanderchan","email":"alexander.m.chan@gmail.com"},"directories":{},"maintainers":[{"name":"alexanderchan","email":"alexander.m.chan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/azure-claude-review_1.2.0_1753399775191_0.8496800627291667"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-24T22:52:13.054Z","modified":"2025-07-24T23:29:35.606Z","1.0.0":"2025-07-24T22:52:13.324Z","1.1.1":"2025-07-24T22:55:17.910Z","1.1.2":"2025-07-24T22:58:47.948Z","1.1.3":"2025-07-24T23:00:38.097Z","1.2.0":"2025-07-24T23:29:35.403Z"},"bugs":{"url":"https://github.com/alexanderchan/azure-claude-review/issues"},"license":"MIT","homepage":"https://github.com/alexanderchan/azure-claude-review#readme","keywords":["claude","code-review","git","cli"],"repository":{"type":"git","url":"git+https://github.com/alexanderchan/azure-claude-review.git"},"description":"CLI tool to review code changes using Claude Code","maintainers":[{"name":"alexanderchan","email":"alexander.m.chan@gmail.com"}],"readme":"# Claude Code Review CLI\n\nA command-line tool to review code changes using Claude Code and optionally post reviews to Azure DevOps PRs.\n\n## Installation\n\n### From npm (recommended):\n\n```bash\nnpm install -g @alexmchan/azure-claude-review\n```\n\n### From this repository:\n\n```bash\n# Clone the repo and install the CLI tool locally\ngit clone <repo-url>\ncd claude-code-action/cli-tool\nnpm install\nnpm link\n```\n\n### Prerequisites\n\n- Node.js 14+\n- [Claude CLI](https://docs.anthropic.com/en/docs/claude-code) installed globally:\n  ```bash\n  bun install -g @anthropic-ai/claude-code@latest\n  ```\n- Git repository with changes to review\n- `ANTHROPIC_API_KEY` environment variable set\n\n## Usage\n\n### Basic Usage\n\n```bash\n# Review changes in current directory against main branch\nclaude-review\n\n# Review specific directory\nclaude-review -d /path/to/project\n\n# Compare against different branch\nclaude-review -c develop\n\n# Use custom prompt file\nclaude-review -p /path/to/custom-prompt.md\n```\n\n### Azure DevOps Integration\n\nSet environment variables:\n\n```bash\nexport AZURE_DEVOPS_TOKEN=\"your-pat-token\"\n```\n\nOr use CLI options:\n\n```bash\nclaude-review --azure-org myorg --azure-project myproject --azure-repo myrepo --azure-pr 123\n```\n\nThe tool will ask for confirmation before posting to Azure DevOps.\n\n### Comment Behavior\n\nBy default, the tool uses **sticky comments** - it will find and update any existing \"Claude Code Review\" comment instead of creating multiple comments.\n\n- **Default**: `claude-review` → Updates existing comment (or creates new if none exists)\n- **Append**: `claude-review --append` → Adds new review to existing comment with separator\n- **New Comment**: `claude-review --new-comment` → Always creates a new comment thread\n\n### Options\n\n```\nOptions:\n  -V, --version                    output the version number\n  -d, --directory <path>           Directory to review (default: current directory)\n  -c, --compare-branch <branch>    Branch to compare against (default: \"main\")\n  -p, --prompt-file <file>         Custom prompt file (default: built-in prompt)\n  --no-post                        Skip posting to Azure DevOps (just show review)\n  --azure-pr <id>                  Azure DevOps PR ID (will auto-detect if not provided)\n  --use-env-vars                   Use environment variables instead of Azure CLI auto-detection\n  --use-existing-review            Use existing claude-review.md file instead of running Claude again\n  --append                         Append to existing Claude review comment instead of replacing it\n  --new-comment                    Always create a new comment instead of updating existing one\n  -h, --help                       display help for command\n```\n\n## Environment Variables\n\n| Variable            | Description            | Required |\n| ------------------- | ---------------------- | -------- |\n| `ANTHROPIC_API_KEY` | Your Anthropic API key | Yes      |\n\n## Azure DevOps Environment Variables\n\nThese should all be derived if logged on with `az` cli.\n\n| Variable               | Description                        | Required                    |\n| ---------------------- | ---------------------------------- | --------------------------- |\n| `AZURE_DEVOPS_TOKEN`   | Azure DevOps Personal Access Token | For posting to Azure DevOps |\n| `AZURE_DEVOPS_ORG`     | Azure DevOps organization name     | For posting to Azure DevOps |\n| `AZURE_DEVOPS_PROJECT` | Azure DevOps project name          | For posting to Azure DevOps |\n| `AZURE_DEVOPS_REPO`    | Azure DevOps repository name       | For posting to Azure DevOps |\n| `AZURE_DEVOPS_PR_ID`   | Pull Request ID number             | For posting to Azure DevOps |\n\n## Examples\n\n```bash\n# Simple review of current changes\nclaude-review\n\n# Just show review, don't post anywhere\nclaude-review --no-post\n```\n\n## How it works\n\n1. **Git Diff**: Generates diff between current branch and target branch\n2. **Context Creation**: Creates markdown context file with changes\n3. **Claude Review**: Runs Claude Code with the prompt and context\n4. **Display Results**: Shows the review in terminal with nice formatting\n5. **Optional Posting**: Asks user if they want to post to Azure DevOps PR\n\n## Customizing the Prompt\n\nCreate your own prompt file and use it with `-p`:\n\n```markdown\n# my-custom-prompt.md\n\nPlease review this code focusing on:\n\n- Security vulnerabilities\n- Performance issues\n- Code maintainability\n\nBe extra strict about error handling.\n```\n\n```bash\nclaude-review -p my-custom-prompt.md\n```\n","readmeFilename":"README.md"}