Skip to Content
👋 Welcome to Claude Code Tutorials! Learn more
📚 TutorialTools IntegrationBash Tools

Bash Tools

Claude Code provides powerful integration with command-line tools through the Bash tool, allowing you to execute shell commands and work with various CLI utilities.

Basic Bash Tool Usage

Simple Commands

Claude can execute basic shell commands:

Run `ls -la` to see all files in the current directory

Claude executes:

ls -la

Complex Commands

Check git status and show recent commits

Claude executes:

git status git log --oneline -5

Common Development Workflows

1. Package Management

npm/yarn/pnpm Operations

Install new dependencies and update package.json

Claude executes:

npm install lodash @types/lodash npm update

Version Management

Check current Node.js and npm versions

Claude executes:

node --version npm --version

2. Git Operations

Repository Status

Show current branch, status, and recent changes

Claude executes:

git branch git status git diff --stat

Branch Management

Create a new feature branch and switch to it

Claude executes:

git checkout -b feature/new-dashboard git push -u origin feature/new-dashboard

3. Build and Test Commands

Running Tests

Run unit tests and generate coverage report

Claude executes:

npm test npm run test:coverage

Build Operations

Build the project and check for errors

Claude executes:

npm run build npm run type-check

Advanced Bash Integration

1. Piped Commands

Find all TypeScript files and search for specific function

Claude executes:

find . -name "*.ts" -type f | xargs grep -l "useEffect"

2. Environment Management

Set environment variables and run development server

Claude executes:

export NODE_ENV=development export DEBUG=true npm run dev

3. File Operations

Create directory structure and initialize files

Claude executes:

mkdir -p src/components/Dashboard/{components,hooks,utils} touch src/components/Dashboard/index.ts touch src/components/Dashboard/Dashboard.tsx

Tool Integration Examples

Docker Operations

Build and run Docker container for the application

Claude executes:

docker build -t my-app . docker run -p 3000:3000 my-app

Database Management

Run database migrations and seed data

Claude executes:

npx prisma migrate dev npx prisma db seed

Linting and Formatting

Fix code formatting and linting issues

Claude executes:

npm run lint -- --fix npm run format

Best Practices

1. Command Validation

Claude validates commands before execution:

  • Checks for potentially dangerous operations
  • Confirms file paths exist
  • Validates command syntax

2. Error Handling

When commands fail, Claude:

  • Analyzes error output
  • Suggests alternative approaches
  • Provides troubleshooting steps

3. Path Management

Absolute vs Relative Paths

# Claude prefers absolute paths when possible cd /full/path/to/project npm install # Rather than relative navigation cd ../../../project && npm install

Security Considerations

Allowed Operations

  • File system navigation and inspection
  • Package management operations
  • Git repository management
  • Build and test commands
  • Development server operations

Restricted Operations

  • System-level modifications
  • User account management
  • Network configuration changes
  • Destructive operations without confirmation

Configuration Options

Tool Permissions

Configure allowed Bash commands in your Claude Code settings:

{ "allowedTools": [ "Bash(npm:*)", "Bash(git:*)", "Bash(docker:*)", "Bash(ls:*)", "Bash(cd:*)" ] }

Command Timeouts

Set timeout limits for long-running commands:

{ "bashTimeout": 300000, "buildTimeout": 600000 }

Troubleshooting

Common Issues

Command Not Found

  • Verify tool is installed
  • Check PATH environment variable
  • Use absolute path to executable

Permission Denied

  • Check file permissions
  • Verify write access to directory
  • Consider using sudo (if allowed)

Command Timeouts

  • Increase timeout settings
  • Break down into smaller commands
  • Use background processes for long operations

Next: MCP Servers - Learn about Model Context Protocol server integration.

Last updated on: