Compare commits

..

40 Commits

Author SHA1 Message Date
Ashwin Bhat
f6f98ba837 Add checkout step to issue triage workflow
Added a checkout step to the GitHub Actions workflow for issue triage
to ensure the repository is available during the triage process.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-02 08:02:26 -07:00
Ashwin Bhat
80ddbcd96d Merge pull request #2779 from anthropics/ashwin/triage
refactor: Replace custom GitHub actions with claude-code-base-action
2025-07-01 08:07:03 -07:00
GitHub Actions
390f11039c chore: Update CHANGELOG.md 2025-06-30 23:11:52 +00:00
GitHub Actions
5f9dcdb410 chore: Update CHANGELOG.md 2025-06-25 21:45:26 +00:00
GitHub Actions
a8e927ee24 chore: Update CHANGELOG.md 2025-06-24 21:59:12 +00:00
GitHub Actions
21cf5c2293 chore: Update CHANGELOG.md 2025-06-24 00:05:58 +00:00
GitHub Actions
d6503abfd9 chore: Update CHANGELOG.md 2025-06-18 20:29:20 +00:00
GitHub Actions
94bcec8740 chore: Update CHANGELOG.md 2025-06-16 22:52:17 +00:00
Robert Boyce
b6f507833d Merge pull request #1732 from anthropics/rboyce/action-dupe-comment
Revert duplicate detection in triage action
2025-06-12 14:54:27 -07:00
GitHub Actions
e39df663ca chore: Update CHANGELOG.md 2025-06-12 21:41:13 +00:00
GitHub Actions
820644f291 chore: Update CHANGELOG.md 2025-06-09 23:26:08 +00:00
Robert Boyce
78f98bb6b3 Revert "add duplicate detection to triage action"
This reverts commit bb083eea94.
2025-06-06 14:42:55 -07:00
GitHub Actions
c11fc4619b chore: Update CHANGELOG.md 2025-06-06 18:03:10 +00:00
Robert Boyce
885a36faf3 Merge pull request #1671 from anthropics/rboyce/readme-ga
Update README.md to reflect GA
2025-06-05 11:45:02 -07:00
Robert Boyce
eb0b297e11 Update README.md to reflect GA
Claude Code is no longer in beta
2025-06-05 11:43:26 -07:00
Robert Boyce
6370398030 Merge pull request #1662 from anthropics/rboyce/action-dupe
Add duplicate detection to triage action
2025-06-05 10:22:01 -07:00
Robert Boyce
bb083eea94 add duplicate detection to triage action 2025-06-05 10:15:43 -07:00
GitHub Actions
d9cc2b58a2 chore: Update CHANGELOG.md 2025-06-04 17:01:21 +00:00
GitHub Actions
0c3b9e94e1 chore: Update CHANGELOG.md 2025-06-04 16:10:22 +00:00
GitHub Actions
3cf808d1ec chore: Update CHANGELOG.md 2025-06-04 15:43:29 +00:00
GitHub Actions
e9f7c53b7c chore: Update CHANGELOG.md 2025-06-04 14:35:31 +00:00
Boris Cherny
d1510f5eef Merge pull request #1537 from anthropics/boris/xgsw
Update README with streamlined content and demo GIF
2025-06-03 10:26:18 -07:00
Boris Cherny
715ea8ed4a Update README with streamlined content and demo GIF
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-03 10:23:40 -07:00
Ashwin Bhat
0b881fcb4d Merge pull request #1310 from MadsRC/pinGhActions
pinned GitHub Actions
2025-06-03 10:14:53 -07:00
GitHub Actions
9ca3c81936 chore: Update CHANGELOG.md 2025-06-03 04:26:58 +00:00
GitHub Actions
4f162e6b79 chore: Update CHANGELOG.md 2025-06-02 16:10:56 +00:00
Mads R. Havmand
e05a423901 kept beta as per request 2025-05-31 11:04:37 +02:00
Boris Cherny
4c9bd9cd74 Merge pull request #1064 from grll/patch-1
Update Dockerfile
2025-05-28 20:45:20 -07:00
Boris Cherny
0d22403ad1 Merge pull request #991 from cg505/patch-1
fix docs link
2025-05-28 20:44:51 -07:00
Boris Cherny
931543f95f Merge pull request #1309 from licvido/fix-duplicate-comment
fix: remove duplicate comment
2025-05-28 20:44:24 -07:00
GitHub Actions
437f92b52e chore: Update CHANGELOG.md 2025-05-28 17:37:16 +00:00
Mads R. Havmand
14c8c0df32 pinned GitHub Actions 2025-05-25 17:50:57 +02:00
Filip Mikovcak
6767546666 fix: remove duplicate comment 2025-05-25 17:29:29 +02:00
GitHub Actions
5e54b4ccc1 chore: Update CHANGELOG.md 2025-05-22 17:54:14 +00:00
Lina Tawfik
895ce94465 Merge pull request #1231 from anthropics/add-claude-github-actions-1747935723354
Add Claude PR Assistant workflow
2025-05-22 10:44:47 -07:00
Lina Tawfik
7d0c29fe1a Add Claude PR Assistant workflow 2025-05-22 10:42:04 -07:00
Boris Cherny
51fecc9881 Merge pull request #1228 from anthropics/boris/pcdv
Update README.md documentation links and OAuth description
2025-05-22 10:27:35 -07:00
Guillaume Raille
e394b39220 Update .devcontainer/Dockerfile
Co-authored-by: Austin Macdonald <austin@dartmouth.edu>
2025-05-16 16:30:26 +02:00
Guillaume Raille
d337047b92 Update Dockerfile
consitent setting of env variables
2025-05-12 17:29:31 +02:00
Christopher Cooper
4adc8a066d fix docs link 2025-05-07 10:26:27 -07:00
9 changed files with 295 additions and 256 deletions

View File

@@ -54,8 +54,8 @@ USER node
ENV NPM_CONFIG_PREFIX=/usr/local/share/npm-global
ENV PATH=$PATH:/usr/local/share/npm-global/bin
# Set the default shell to bash rather than sh
ENV SHELL /bin/zsh
# Set the default shell to zsh rather than sh
ENV SHELL=/bin/zsh
# Default powerline10k theme
RUN sh -c "$(wget -O- https://github.com/deluan/zsh-in-docker/releases/download/v1.2.0/zsh-in-docker.sh)" -- \

View File

@@ -88,7 +88,6 @@ echo "Host network detected as: $HOST_NETWORK"
iptables -A INPUT -s "$HOST_NETWORK" -j ACCEPT
iptables -A OUTPUT -d "$HOST_NETWORK" -j ACCEPT
# Set default policies to DROP first
# Set default policies to DROP first
iptables -P INPUT DROP
iptables -P FORWARD DROP

View File

@@ -1,136 +0,0 @@
name: "Claude Code Action"
description: "Run Claude Code in GitHub Actions workflows"
inputs:
github_token:
description: "GitHub token with repo and issues permissions"
required: true
anthropic_api_key:
description: "Anthropic API key"
required: true
prompt:
description: "The prompt to send to Claude Code"
required: false
default: ""
prompt_file:
description: "Path to a file containing the prompt to send to Claude Code"
required: false
default: ""
allowed_tools:
description: "Comma-separated list of allowed tools for Claude Code to use"
required: false
default: ""
output_file:
description: "File to save Claude Code output to (optional)"
required: false
default: ""
timeout_minutes:
description: "Timeout in minutes for Claude Code execution"
required: false
default: "10"
install_github_mcp:
description: "Whether to install the GitHub MCP server"
required: false
default: "false"
runs:
using: "composite"
steps:
- name: Install Claude Code
shell: bash
run: npm install -g @anthropic-ai/claude-code
- name: Install GitHub MCP Server
if: inputs.install_github_mcp == 'true'
shell: bash
run: |
claude mcp add-json github '{
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server:sha-ff3036d"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${{ inputs.GITHUB_TOKEN }}"
}
}'
- name: Prepare Prompt File
shell: bash
id: prepare_prompt
run: |
# Check if either prompt or prompt_file is provided
if [ -z "${{ inputs.prompt }}" ] && [ -z "${{ inputs.prompt_file }}" ]; then
echo "::error::Neither 'prompt' nor 'prompt_file' was provided. At least one is required."
exit 1
fi
# Determine which prompt source to use
if [ ! -z "${{ inputs.prompt_file }}" ]; then
# Check if the prompt file exists
if [ ! -f "${{ inputs.prompt_file }}" ]; then
echo "::error::Prompt file '${{ inputs.prompt_file }}' does not exist."
exit 1
fi
# Use the provided prompt file
PROMPT_PATH="${{ inputs.prompt_file }}"
else
mkdir -p /tmp/claude-action
PROMPT_PATH="/tmp/claude-action/prompt.txt"
echo "${{ inputs.prompt }}" > "$PROMPT_PATH"
fi
# Verify the prompt file is not empty
if [ ! -s "$PROMPT_PATH" ]; then
echo "::error::Prompt is empty. Please provide a non-empty prompt."
exit 1
fi
# Save the prompt path for the next step
echo "PROMPT_PATH=$PROMPT_PATH" >> $GITHUB_ENV
- name: Run Claude Code
shell: bash
id: run_claude
run: |
ALLOWED_TOOLS_ARG=""
if [ ! -z "${{ inputs.allowed_tools }}" ]; then
ALLOWED_TOOLS_ARG="--allowedTools ${{ inputs.allowed_tools }}"
fi
# Set a timeout to ensure the command doesn't run indefinitely
timeout_seconds=$((${{ inputs.timeout_minutes }} * 60))
if [ -z "${{ inputs.output_file }}" ]; then
# Run Claude Code and output to console
timeout $timeout_seconds claude \
-p \
--verbose \
--output-format stream-json \
"$(cat ${{ env.PROMPT_PATH }})" \
${{ inputs.allowed_tools != '' && format('--allowedTools "{0}"', inputs.allowed_tools) || '' }}
else
# Run Claude Code and tee output to console and file
timeout $timeout_seconds claude \
-p \
--verbose \
--output-format stream-json \
"$(cat ${{ env.PROMPT_PATH }})" \
${{ inputs.allowed_tools != '' && format('--allowedTools "{0}"', inputs.allowed_tools) || '' }} | tee output.txt
# Process output.txt into JSON in a separate step
jq -s '.' output.txt > output.json
# Extract the result from the last item in the array (system message)
jq -r '.[-1].result' output.json > "${{ inputs.output_file }}"
echo "Complete output saved to output.json, final response saved to ${{ inputs.output_file }}"
fi
env:
ANTHROPIC_API_KEY: ${{ inputs.anthropic_api_key }}
GITHUB_TOKEN: ${{ inputs.github_token }}

View File

@@ -1,87 +0,0 @@
name: "Claude Issue Triage Action"
description: "Automatically triage GitHub issues using Claude Code"
inputs:
timeout_minutes:
description: "Timeout in minutes for execution"
required: false
default: "5"
anthropic_api_key:
description: "Anthropic API key"
required: true
github_token:
description: "GitHub token with repo and issues permissions"
required: true
runs:
using: "composite"
steps:
- name: Checkout repository code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Create prompt file
shell: bash
run: |
mkdir -p /tmp/claude-prompts
cat > /tmp/claude-prompts/claude-issue-triage-prompt.txt << 'EOF'
You're an issue triage assistant for GitHub issues. Your task is to analyze the issue and select appropriate labels from the provided list.
IMPORTANT: Don't post any comments or messages to the issue. Your only action should be to apply labels.
Issue Information:
- REPO: ${{ github.repository }}
- ISSUE_NUMBER: ${{ github.event.issue.number }}
TASK OVERVIEW:
1. First, fetch the list of labels available in this repository by running: `gh label list`. Run exactly this command with nothing else.
2. Next, use the GitHub tools to get context about the issue:
- You have access to these tools:
- mcp__github__get_issue: Use this to retrieve the current issue's details including title, description, and existing labels
- mcp__github__get_issue_comments: Use this to read any discussion or additional context provided in the comments
- mcp__github__update_issue: Use this to apply labels to the issue (do not use this for commenting)
- mcp__github__search_issues: Use this to find similar issues that might provide context for proper categorization and to identify potential duplicate issues
- mcp__github__list_issues: Use this to understand patterns in how other issues are labeled
- Start by using mcp__github__get_issue to get the issue details
3. Analyze the issue content, considering:
- The issue title and description
- The type of issue (bug report, feature request, question, etc.)
- Technical areas mentioned
- Severity or priority indicators
- User impact
- Components affected
4. Select appropriate labels from the available labels list provided above:
- Choose labels that accurately reflect the issue's nature
- Be specific but comprehensive
- Select priority labels if you can determine urgency (high-priority, med-priority, or low-priority)
- Consider platform labels (android, ios) if applicable
- If you find similar issues using mcp__github__search_issues, consider using a "duplicate" label if appropriate. Only do so if the issue is a duplicate of another OPEN issue.
5. Apply the selected labels:
- Use mcp__github__update_issue to apply your selected labels
- DO NOT post any comments explaining your decision
- DO NOT communicate directly with users
- If no labels are clearly applicable, do not apply any labels
IMPORTANT GUIDELINES:
- Be thorough in your analysis
- Only select labels from the provided list above
- DO NOT post any comments to the issue
- Your ONLY action should be to apply labels using mcp__github__update_issue
- It's okay to not add any labels if none are clearly applicable
EOF
- name: Run Claude Code
uses: ./.github/actions/claude-code-action
with:
prompt_file: /tmp/claude-prompts/claude-issue-triage-prompt.txt
allowed_tools: "Bash(gh label list),mcp__github__get_issue,mcp__github__get_issue_comments,mcp__github__update_issue,mcp__github__search_issues,mcp__github__list_issues"
install_github_mcp: "true"
timeout_minutes: ${{ inputs.timeout_minutes }}
anthropic_api_key: ${{ inputs.anthropic_api_key }}
github_token: ${{ inputs.github_token }}

View File

@@ -1,6 +1,5 @@
name: Claude Issue Triage
description: "Automatically triage GitHub issues using Claude Code"
description: Automatically triage GitHub issues using Claude Code
on:
issues:
types: [opened]
@@ -12,12 +11,96 @@ jobs:
permissions:
contents: read
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run Claude Issue Triage
uses: ./.github/actions/claude-issue-triage-action
- name: Create triage prompt
run: |
mkdir -p /tmp/claude-prompts
cat > /tmp/claude-prompts/triage-prompt.txt << 'EOF'
You're an issue triage assistant for GitHub issues. Your task is to analyze the issue and select appropriate labels from the provided list.
IMPORTANT: Don't post any comments or messages to the issue. Your only action should be to apply labels.
Issue Information:
- REPO: ${{ github.repository }}
- ISSUE_NUMBER: ${{ github.event.issue.number }}
TASK OVERVIEW:
1. First, fetch the list of labels available in this repository by running: `gh label list`. Run exactly this command with nothing else.
2. Next, use the GitHub tools to get context about the issue:
- You have access to these tools:
- mcp__github__get_issue: Use this to retrieve the current issue's details including title, description, and existing labels
- mcp__github__get_issue_comments: Use this to read any discussion or additional context provided in the comments
- mcp__github__update_issue: Use this to apply labels to the issue (do not use this for commenting)
- mcp__github__search_issues: Use this to find similar issues that might provide context for proper categorization and to identify potential duplicate issues
- mcp__github__list_issues: Use this to understand patterns in how other issues are labeled
- Start by using mcp__github__get_issue to get the issue details
3. Analyze the issue content, considering:
- The issue title and description
- The type of issue (bug report, feature request, question, etc.)
- Technical areas mentioned
- Severity or priority indicators
- User impact
- Components affected
4. Select appropriate labels from the available labels list provided above:
- Choose labels that accurately reflect the issue's nature
- Be specific but comprehensive
- Select priority labels if you can determine urgency (high-priority, med-priority, or low-priority)
- Consider platform labels (android, ios) if applicable
- If you find similar issues using mcp__github__search_issues, consider using a "duplicate" label if appropriate. Only do so if the issue is a duplicate of another OPEN issue.
5. Apply the selected labels:
- Use mcp__github__update_issue to apply your selected labels
- DO NOT post any comments explaining your decision
- DO NOT communicate directly with users
- If no labels are clearly applicable, do not apply any labels
IMPORTANT GUIDELINES:
- Be thorough in your analysis
- Only select labels from the provided list above
- DO NOT post any comments to the issue
- Your ONLY action should be to apply labels using mcp__github__update_issue
- It's okay to not add any labels if none are clearly applicable
EOF
- name: Setup GitHub MCP Server
run: |
mkdir -p /tmp/mcp-config
cat > /tmp/mcp-config/mcp-servers.json << 'EOF'
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server:sha-7aced2b"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${{ secrets.GITHUB_TOKEN }}"
}
}
}
}
EOF
- name: Run Claude Code for Issue Triage
uses: anthropics/claude-code-base-action@beta
with:
prompt_file: /tmp/claude-prompts/triage-prompt.txt
allowed_tools: "Bash(gh label list),mcp__github__get_issue,mcp__github__get_issue_comments,mcp__github__update_issue,mcp__github__search_issues,mcp__github__list_issues"
timeout_minutes: "5"
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}
mcp_config: /tmp/mcp-config/mcp-servers.json
claude_env: |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

37
.github/workflows/claude.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]
jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
fetch-depth: 1
- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

View File

@@ -1,5 +1,161 @@
# Changelog
## 1.0.38
- Released [hooks](https://docs.anthropic.com/en/docs/claude-code/hooks). Special thanks to community input in [Github Issues](https://github.com/anthropics/claude-code/issues/712)
## 1.0.37
- Remove ability to set `Proxy-Authorization` header via ANTHROPIC_AUTH_TOKEN or apiKeyHelper
## 1.0.36
- Web search now takes today's date into context
- Fixed a bug where stdio MCP servers were not terminating properly on exit
## 1.0.35
- Added support for MCP OAuth Authorization Server discovery
## 1.0.34
- Fixed a memory leak causing a MaxListenersExceededWarning message to appear
## 1.0.33
- Improved logging functionality with session ID support
- Added undo functionality (Ctrl+Z and vim 'u' command)
- Improvements to plan mode
## 1.0.32
- Updated loopback config for litellm
- Added forceLoginMethod setting to bypass login selection screen
## 1.0.31
- Fixed a bug where ~/.claude.json would get reset when file contained invalid JSON
## 1.0.30
- Custom slash commands: Run bash output, @-mention files, enable thinking with thinking keywords
- Improved file path autocomplete with filename matching
- Added timestamps in Ctrl-r mode and fixed Ctrl-c handling
- Enhanced jq regex support for complex filters with pipes and select
## 1.0.29
- Improved CJK character support in cursor navigation and rendering
## 1.0.28
- Slash commands: Fix selector display during history navigation
- Resizes images before upload to prevent API size limit errors
- Added XDG_CONFIG_HOME support to configuration directory
- Performance optimizations for memory usage
- New attributes (terminal.type, language) in OpenTelemetry logging
## 1.0.27
- Streamable HTTP MCP servers are now supported
- Remote MCP servers (SSE and HTTP) now support OAuth
- MCP resources can now be @-mentioned
- /resume slash command to switch conversations within Claude Code
## 1.0.25
- Slash commands: moved "project" and "user" prefixes to descriptions
- Slash commands: improved reliability for command discovery
- Improved support for Ghostty
- Improved web search reliability
## 1.0.24
- Improved /mcp output
- Fixed a bug where settings arrays got overwritten instead of merged
## 1.0.23
- Released TypeScript SDK: import @anthropic-ai/claude-code to get started
- Released Python SDK: pip install claude-code-sdk to get started
## 1.0.22
- SDK: Renamed `total_cost` to `total_cost_usd`
## 1.0.21
- Improved editing of files with tab-based indentation
- Fix for tool_use without matching tool_result errors
- Fixed a bug where stdio MCP server processes would linger after quitting Claude Code
## 1.0.18
- Added --add-dir CLI argument for specifying additional working directories
- Added streaming input support without require -p flag
- Improved startup performance and session storage performance
- Added CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR environment variable to freeze working directory for bash commands
- Added detailed MCP server tools display (/mcp)
- MCP authentication and permission improvements
- Added auto-reconnection for MCP SSE connections on disconnect
- Fixed issue where pasted content was lost when dialogs appeared
## 1.0.17
- We now emit messages from sub-tasks in -p mode (look for the parent_tool_use_id property)
- Fixed crashes when the VS Code diff tool is invoked multiple times quickly
- MCP server list UI improvements
- Update Claude Code process title to display "claude" instead of "node"
## 1.0.11
- Claude Code can now also be used with a Claude Pro subscription
- Added /upgrade for smoother switching to Claude Max plans
- Improved UI for authentication from API keys and Bedrock/Vertex/external auth tokens
- Improved shell configuration error handling
- Improved todo list handling during compaction
## 1.0.10
- Added markdown table support
- Improved streaming performance
## 1.0.8
- Fixed Vertex AI region fallback when using CLOUD_ML_REGION
- Increased default otel interval from 1s -> 5s
- Fixed edge cases where MCP_TIMEOUT and MCP_TOOL_TIMEOUT weren't being respected
- Fixed a regression where search tools unnecessarily asked for permissions
- Added support for triggering thinking non-English languages
- Improved compacting UI
## 1.0.7
- Renamed /allowed-tools -> /permissions
- Migrated allowedTools and ignorePatterns from .claude.json -> settings.json
- Deprecated claude config commands in favor of editing settings.json
- Fixed a bug where --dangerously-skip-permissions sometimes didn't work in --print mode
- Improved error handling for /install-github-app
- Bugfixes, UI polish, and tool reliability improvements
## 1.0.6
- Improved edit reliability for tab-indented files
- Respect CLAUDE_CONFIG_DIR everywhere
- Reduced unnecessary tool permission prompts
- Added support for symlinks in @file typeahead
- Bugfixes, UI polish, and tool reliability improvements
## 1.0.4
- Fixed a bug where MCP tool errors weren't being parsed correctly
## 1.0.1
- Added `DISABLE_INTERLEAVED_THINKING` to give users the option to opt out of interleaved thinking.
- Improved model references to show provider-specific names (Sonnet 3.7 for Bedrock, Sonnet 4 for Console)
- Updated documentation links and OAuth process descriptions
## 1.0.0
- Claude Code is now generally available

View File

@@ -4,44 +4,31 @@
[npm]: https://img.shields.io/npm/v/@anthropic-ai/claude-code.svg?style=flat-square
Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.
Some of its key capabilities include:
- Edit files and fix bugs across your codebase
- Answer questions about your code's architecture and logic
- Execute and fix tests, lint, and other commands
- Search through git history, resolve merge conflicts, and create commits and PRs
Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows -- all through natural language commands. Use it in your terminal, IDE, or tag @claude on Github.
**Learn more in the [official documentation](https://docs.anthropic.com/en/docs/claude-code/overview)**.
<img src="./demo.gif" />
## Get started
1. If you are new to Node.js and Node Package Manager (`npm`), then it is recommended that you configure an NPM prefix for your user.
Instructions on how to do this can be found [here](https://docs.anthropic.com/en/docs/claude-code/troubleshooting#recommended-solution-create-a-user-writable-npm-prefix).
1. Install Claude Code:
_Important_ We recommend installing this package as a non-privileged user, not as an administrative user like `root`.
Installing as a non-privileged user helps maintain your system's security and stability.
```sh
npm install -g @anthropic-ai/claude-code
```
2. Install Claude Code:
2. Navigate to your project directory and run `claude`.
```sh
npm install -g @anthropic-ai/claude-code
```
## Reporting Bugs
3. Navigate to your project directory and run `claude`.
We welcome your feedback. Use the `/bug` command to report issues directly within Claude Code, or file a [GitHub issue](https://github.com/anthropics/claude-code/issues).
4. Complete the one-time OAuth process with your Claude Max or Anthropic Console account.
### Reporting Bugs
We welcome feedback during this beta period. Use the `/bug` command to report issues directly within Claude Code, or file a [GitHub issue](https://github.com/anthropics/claude-code/issues).
### Data collection, usage, and retention
## Data collection, usage, and retention
When you use Claude Code, we collect feedback, which includes usage data (such as code acceptance or rejections), associated conversation data, and user feedback submitted via the `/bug` command.
#### How we use your data
### How we use your data
We may use feedback to improve our products and services, but we will not train generative models using your feedback from Claude Code. Given their potentially sensitive nature, we store user feedback transcripts for only 30 days.

BIN
demo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 MiB