Build a Project with Claude Code on Bedrock

Set up Claude Code with AWS Bedrock and use it to build a Python CLI tool.

Introduction

30 Second Summary

AI coding assistants can write entire programs for you. But in professional settings, companies need to control where their code and data flow. That's where running an AI assistant through your own cloud account comes in.

In this project, you will install Claude Code on Windows, connect it to AWS Bedrock so all AI requests route through your own AWS account, and then use it to build a Python command-line weather tool from scratch.

What You'll Build

A fully configured Claude Code environment running through AWS Bedrock, plus a Python CLI project built entirely by an agentic coding assistant.

By the end of this project, you'll have:

  • A Claude Code installation on Windows connected to AWS Bedrock for enterprise-grade AI routing.
  • An IAM policy granting Claude Code the exact permissions it needs to invoke models on Bedrock.
  • A Python CLI weather tool built autonomously by Claude Code, demonstrating its agentic coding capabilities.
  • Secret Mission: Create a custom Claude Code skill that generates project documentation on demand.

Are there any prerequisites?

You'll need an AWS account with billing enabled and basic familiarity with using a terminal. No prior experience with Claude Code or AWS Bedrock is required.

Install Claude Code and AWS CLI

Before you can use Claude Code with AWS Bedrock, you need two tools on your machine: Claude Code itself, and the AWS CLI that lets Claude Code authenticate with your AWS account.

In this step, you'll install both tools, configure your AWS credentials, and confirm everything is working.

In this step, get ready to:
  • Install Claude Code on Windows and verify it works.
  • Install and configure the AWS CLI with your credentials.
  • Verify your AWS identity is set up correctly.
Install Claude Code on Windows

Claude Code is an agentic coding assistant that runs in your terminal. It can plan, write, and debug code autonomously.

  • Press the Windows key to open your search bar.
  • Type PowerShell and press Enter to open it.
  • Install Claude Code by running this command:
irm https://claude.ai/install.ps1 | iex

What does this command do?

irm (Invoke-RestMethod) downloads the installer script from Anthropic's servers. The | iex pipe passes it to PowerShell's Invoke-Expression to run it immediately.

Native installations automatically update in the background to keep you on the latest version.

  • Once the installer finishes, verify it worked by running:
claude --version

✔️ I see a version number

Claude Code is installed and ready. Next, you'll install Git for Windows.

ⓧ Command not found

PowerShell may not have refreshed its path after the install.

  • Close PowerShell completely and reopen it.
  • Run claude --version again.
  • If it still fails, try the alternative install method:
winget install Anthropic.ClaudeCode

Close and reopen PowerShell after installing, then try claude --version again.

Git for Windows is recommended so Claude Code can use the Bash tool. Without it, Claude Code falls back to PowerShell as its shell tool.

  • Install Git for Windows by running:
winget install --id Git.Git -e --source winget

Why install Git for Windows?

Git for Windows bundles a Bash shell environment. Claude Code prefers Bash for running shell commands because it has richer scripting capabilities.

If Git for Windows is not installed, Claude Code uses PowerShell as the shell tool instead. Both work, but Bash gives Claude Code more flexibility.

  • Follow any prompts the installer shows, accepting the defaults.
  • Close and reopen PowerShell after the install completes.

Winget not recognized?

If PowerShell does not recognize winget, you may be on an older version of Windows that does not include App Installer. Download Git for Windows directly from git-scm.com/download/win instead.

Help me troubleshoot my Git for Windows installation

Install and configure the AWS CLI

The AWS CLI is the command-line tool that lets you interact with AWS services from your terminal. Claude Code uses your AWS CLI credentials to authenticate with Bedrock.

  • Install the AWS CLI by running:
winget install Amazon.AWSCLI
  • Close and reopen PowerShell after the installation finishes.
  • Verify the installation by running:
aws --version

✔️ I see version 2.x

You should see output starting with aws-cli/2. followed by version details. The AWS CLI is ready.

ⓧ I see version 1.x

You have an older version of the AWS CLI installed. This project requires version 2.

  • Uninstall the old version through Settings > Apps > Apps & features. Search for "AWS CLI" and uninstall it.
  • Then install version 2 by running:
winget install Amazon.AWSCLI
  • Close and reopen PowerShell, then run aws --version again to confirm it shows version 2.

ⓧ Command not found

PowerShell may not have picked up the new path entry yet.

  • Make sure you closed and reopened PowerShell after installing.
  • If it still does not work, download the installer directly from the official AWS CLI install page and run the MSI installer.
  • Reopen PowerShell and try aws --version once more.

Now you'll configure the AWS CLI with your credentials so it can authenticate with AWS services.

  • Run the configuration wizard:
aws configure

What will this command ask me?

The aws configure command prompts you for four values. You'll need your IAM user's access key and secret key from the AWS console.

  • Enter your AWS Access Key ID when prompted.
  • Enter your AWS Secret Access Key when prompted.
  • Enter us-east-1 for the Default region name.
  • Press Enter to accept the default output format (leave it blank).

Why us-east-1?

The us-east-1 region has the broadest Bedrock model availability. Using this region ensures you can access all the Anthropic models Claude Code needs.

Don't have an access key yet?

You need an IAM user with programmatic access. In the AWS console, go to IAM > Users, select your user, click Security credentials, then Create access key. Copy both the access key ID and secret access key before closing the dialog.

Help me create an IAM access key for the AWS CLI

Verify your AWS identity

With your credentials configured, you can confirm the AWS CLI is connected to the right account.

  • Verify your identity by running:
aws sts get-caller-identity

What should I see?

You should see a JSON response with three fields: UserId, Account (your 12-digit AWS account number), and Arn (your IAM user's Amazon Resource Name).

If these match your AWS account, your CLI is configured correctly and Claude Code will be able to use these credentials.

Seeing an access denied or invalid credentials error?

  • Double-check that you pasted the access key and secret key correctly during aws configure. Run it again to re-enter them.
  • Confirm the access key is active in the AWS console under your IAM user's Security credentials tab.
  • Make sure the region is set to us-east-1 (run aws configure to check).

Help me fix my AWS CLI credentials

Your tools are installed and your AWS identity is confirmed. Next up, you'll enable Claude models on Bedrock and create the IAM policy that gives Claude Code permission to use them.

Enable Bedrock Models and Configure IAM

Claude Code is installed and your AWS CLI is configured, but AWS Bedrock doesn't let you invoke AI models by default. You need to explicitly request access to Anthropic's models and grant your IAM user the right permissions.

In this step, you'll enable Claude models in the Bedrock console and create an IAM policy that gives Claude Code everything it needs to make requests on your behalf.

In this step, get ready to:
  • Enable Anthropic Claude models in the Bedrock console.
  • Create and attach an IAM policy with the required Bedrock permissions.
  • Verify that your account can see and invoke Claude models.
Enable Anthropic models in Bedrock

First-time users of Anthropic models are required to submit use case details before invoking a model. This is done once per AWS account.

  • In the AWS Management Console, search for Bedrock in the top search bar and open the Amazon Bedrock service.
  • In the left sidebar, click Model catalog.
  • Search for or scroll to an Anthropic model. Select Claude Sonnet 4.6.
  • Complete the use case form (the First Time Use form) and submit it.

Access is granted immediately after submission.

What is the First Time Use form?

AWS requires a brief description of how you plan to use Anthropic models. This is a one-time step per AWS account. Once submitted, the models become available for invocation across your account immediately.

Don't see Claude Sonnet 4.6 in the catalog?

Make sure your console is set to the us-east-1 region. You can check this in the top-right corner of the AWS console. Not all models are available in every region.

Help me find Claude models in the Bedrock catalog

Create the IAM policy for Claude Code

Claude Code needs specific permissions to invoke models, list inference profiles, and manage marketplace subscriptions through Bedrock. You'll create a dedicated IAM policy with these permissions.

  • In the AWS console search bar, search for IAM and open the IAM service.
  • In the left sidebar, click Policies.
  • Click Create policy.
  • Switch to the JSON tab in the policy editor.
  • Delete any existing content in the editor and paste the following policy document:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowModelAndInferenceProfileAccess",
      "Effect": "Allow",
      "Action": [
        "bedrock:InvokeModel",
        "bedrock:InvokeModelWithResponseStream",
        "bedrock:ListInferenceProfiles",
        "bedrock:GetInferenceProfile"
      ],
      "Resource": [
        "arn:aws:bedrock:*:*:inference-profile/*",
        "arn:aws:bedrock:*:*:application-inference-profile/*",
        "arn:aws:bedrock:*:*:foundation-model/*"
      ]
    },
    {
      "Sid": "AllowMarketplaceSubscription",
      "Effect": "Allow",
      "Action": [
        "aws-marketplace:ViewSubscriptions",
        "aws-marketplace:Subscribe"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:CalledViaLast": "bedrock.amazonaws.com"
        }
      }
    }
  ]
}

What does this policy do?

This policy has two permission groups:

  • AllowModelAndInferenceProfileAccess grants permission to invoke models and list available inference profiles. Claude Code needs these to send prompts and discover which models your account can use.
  • AllowMarketplaceSubscription allows Bedrock to manage marketplace subscriptions on your behalf. The condition restricts this so only Bedrock itself can trigger the action.
  • Click Next.
  • Enter ClaudeCodeBedrockPolicy as the policy name.
  • Click Create policy.

Now attach this policy to your IAM user.

  • In the IAM left sidebar, click Users.
  • Click on your IAM user name (the one you configured the AWS CLI with in the previous step).
  • Click the Permissions tab.
  • Click Add permissions, then Attach policies directly.
  • Search for ClaudeCodeBedrockPolicy, select it, and click Add permissions.

Can't find your IAM user?

If you don't see your user in the list, make sure you're looking at Users (not Roles) in the left sidebar. Your user name should match the one shown when you ran aws sts get-caller-identity in the previous step.

Help me find my IAM user to attach the policy

Verify Bedrock model access

With the policy attached, your IAM user can now list the inference profiles available in your account. This confirms that both the FTU form and the IAM policy are working together.

  • Switch back to your PowerShell window and verify your Bedrock model access by running:
aws bedrock list-inference-profiles --region us-east-1
  • Look through the output for us.anthropic.claude-sonnet-4-6. This confirms Anthropic Claude models are accessible in your account.

What are inference profiles?

Inference profiles are cross-region model endpoints that AWS manages for you. Claude Code uses inference profile IDs (prefixed with us.) to route requests to the right model. Seeing these profiles in the output means your account is fully set up to invoke Claude models.

Don't see any Anthropic models in the output?

Make sure you submitted the FTU form earlier in this step. Access is granted immediately, but you must complete the form for models to appear.

Also confirm you're querying the correct region. If you enabled models in us-east-1, your command must include --region us-east-1.

Help me troubleshoot missing Bedrock models

Your AWS account is now fully set up to run Claude models through Bedrock. Next, you'll connect Claude Code itself to Bedrock so it routes all AI requests through your account.

Connect Claude Code to Bedrock

Your AWS account now has the right IAM permissions and Bedrock model access in place. The final piece is telling Claude Code to route all its AI requests through your Bedrock account instead of Anthropic's servers directly.

Claude Code includes a setup wizard that detects your AWS credentials, verifies which models you can access, and saves everything to a local settings file. You'll run it once, and the connection is ready for every future session.

In this step, get ready to:
  • Launch Claude Code and connect it to Amazon Bedrock through the setup wizard.
  • Verify the connection works by sending a test prompt and checking the provider status.
  • Understand the configuration file the wizard created.
Launch Claude Code and select Bedrock

Claude Code needs to know which AI provider to use. The first time you run it, it presents a login prompt where you pick your provider and authenticate.

  • Launch Claude Code in your PowerShell window by running:
claude
  • At the login prompt, select 3rd-party platform.
  • Select Amazon Bedrock.

What happens next?

The setup wizard will ask how you want to authenticate to AWS. It can detect an AWS profile from your ~/.aws directory, accept a Bedrock API key, use an access key and secret, or pick up credentials already in your environment.

Since you configured the AWS CLI with aws configure in the previous step, the wizard should detect your credentials automatically.

  • Follow the wizard prompts to authenticate using your AWS profile.
  • The wizard will detect your region, verify which Claude models your account can invoke, and let you pin them.
  • Confirm the model pin for Claude Sonnet 4.6 when prompted.

Why pin a model version?

Pinning locks Claude Code to a specific model version so you get predictable behaviour. Without pinning, aliases like "sonnet" resolve to the latest version, which might not be available in your account yet.

Seeing a credentials error?

If you see a message about credentials not loading, your AWS CLI may not be authenticated in this PowerShell session. Run aws sts get-caller-identity to confirm your credentials are valid. If that fails, re-run aws configure and enter your access key and secret key again.

Help me troubleshoot my AWS credentials for Claude Code on Bedrock

Verify the connection

Once the wizard finishes, Claude Code drops you into an interactive session. Every prompt you type now goes through your AWS Bedrock account.

  • Type a simple test prompt into Claude Code:
Hello, what model are you running on?
  • Claude Code should respond through Bedrock. You should see it reply with information about the model it's using.
  • Confirm the provider by running this command inside the Claude Code session:
/status
  • Look for the provider line in the status output. It should show Amazon Bedrock.

What does /status show?

The /status command opens a settings view showing your Claude Code version, active model, account info, and connectivity. It's the quickest way to confirm everything is wired correctly.

Provider not showing Amazon Bedrock?

If /status doesn't show Amazon Bedrock as the provider, the environment variable may not have been saved correctly. Exit Claude Code by pressing Ctrl+D, then re-run claude and go through the login flow again.

If you continue to have issues, you can re-run the Bedrock wizard at any time by typing /setup-bedrock inside an active Claude Code session.

Help me fix my Claude Code Bedrock connection

Understand the configuration

The setup wizard saved all your Bedrock settings to a local file so you never have to re-enter them. Understanding this file helps if you ever need to change regions or update model pins.

  • Open the settings file at C:\Users\<YourName>\.claude\settings.json in any text editor.

What's in this file?

The wizard configured several environment variables in this file's env block:

  • CLAUDE_CODE_USE_BEDROCK tells Claude Code to route all requests through Bedrock.
  • AWS_REGION specifies which AWS region to use (in your case, us-east-1).
  • ANTHROPIC_DEFAULT_SONNET_MODEL pins the model to us.anthropic.claude-sonnet-4-6 so Claude Code uses that specific version.

Why is AWS_REGION in the settings file?

AWS_REGION is a required environment variable for Claude Code. Claude Code does not read from the .aws config file for this setting, even though the AWS CLI uses it. The wizard saves it here so Claude Code always knows which region to target.

Your Claude Code environment is now fully connected to Amazon Bedrock. Next up, you'll put it to work by asking Claude Code to build a complete Python project from scratch.

Build a Python Weather CLI with Claude Code

Claude Code is connected to AWS Bedrock and ready to write real code for you.

In this step, you will direct Claude Code to build a complete Python command-line tool that fetches live weather data. The tool uses the Open-Meteo API, which is free and requires no API key.

In this step, get ready to:
  • Create a project directory for your weather CLI tool.
  • Use Claude Code to generate a Python CLI that fetches 3-day weather forecasts.
  • Test the tool and confirm it displays formatted weather output.
Create a project directory and initialize

Claude Code creates and edits files in whichever directory you launch it from. You need a dedicated folder so all the generated code lands in one place.

  • Return to your PowerShell window.
  • If you are still inside the Claude Code interactive session from the previous step, exit it by typing:
exit
  • Move to your Desktop by running this command:
cd ~/Desktop
  • Create your project folder and move into it by running these commands:
mkdir weather-cli
cd weather-cli
  • Confirm the folder exists by running:
ls

You should see the empty weather-cli directory listed on your Desktop.

  • Launch Claude Code inside this project folder by running:
claude

Why launch Claude Code from inside the folder?

Claude Code treats the current directory as your project root. Any files it creates will land here, and it reads nearby files for context.

Claude Code opens its interactive session. Now give it your first prompt to build the weather tool.

  • Type the following prompt into Claude Code and press Enter:
Initialize a Python project for a command-line weather tool that uses the Open-Meteo API (free, no API key needed). Create a main.py that accepts a city name and shows a 3-day forecast with temperature and conditions.

What does this prompt ask for?

You are giving Claude Code a high-level goal and letting it figure out the implementation details. It will plan how to structure the project, choose which Open-Meteo endpoints to call, and write all the code.

The Open-Meteo API provides free weather data with no sign-up or API key required. It uses a geocoding endpoint to convert city names to coordinates, then a forecast endpoint to return weather data.

Claude Code not responding?

If Claude Code shows an error about model access, run /status to confirm the provider shows Amazon Bedrock. If not, re-run the setup wizard with /setup-bedrock.

help me debug why Claude Code isn't connecting to Bedrock

Watch Claude Code work and review the result

This is where you see agentic coding in action. Claude Code does not just auto-complete a line. It plans, writes, and structures an entire project.

  • Watch your terminal as Claude Code works. It will explain its approach, then propose file changes.
  • Claude Code will ask for permission to create or write files. Approve each proposed change by pressing y or following the on-screen prompt.

What is Claude Code doing behind the scenes?

  • Planning the project structure (what files to create, what libraries to use).
  • Writing main.py with logic to accept a city name argument, call the Open-Meteo geocoding API to get coordinates, then call the forecast API for a 3-day weather report.
  • Formatting the output so it displays temperature and weather conditions in a readable way.
  • Once Claude Code finishes, review the generated code in the terminal output.
  • Confirm that a main.py file now exists in your weather-cli folder.

Reading Claude Code's output

Claude Code shows a diff-style view of what it changed. Green lines are additions. You can scroll up to see its full plan and reasoning.

Test the tool

The code is written, but you need to verify it actually runs and produces a correct forecast. You can ask Claude Code to run the tool for you directly inside the session.

  • Type this prompt into Claude Code:
Run the weather tool for London and show me the output
  • Claude Code will execute the Python script and display the result.
  • If there are errors, tell Claude Code to fix them by typing:
Fix the error and try again

Why might there be errors?

AI-generated code can have bugs on the first try, just like human-written code. The difference is that Claude Code can read its own error output, diagnose the issue, and fix it without you needing to understand the traceback.

This debug-and-retry loop is what makes it an agentic coding assistant rather than a simple code generator.

  • Confirm you see a formatted 3-day weather forecast for London in the terminal output. It should include temperatures and weather conditions for each day.

Still not seeing a forecast?

If Claude Code cannot resolve the error after one retry, try asking it directly: "What error are you seeing and what is causing it?" This gives it a chance to explain the issue and attempt a different fix.

If the issue is network-related (cannot reach the Open-Meteo API), check that your machine has internet access and try again.

help me troubleshoot why my weather CLI is not producing output

Your weather CLI is working. Next up, you will customize how Claude Code behaves in this project by creating a CLAUDE.md file that sets coding standards.

Customize Claude Code with CLAUDE.md

Your weather CLI is working. Claude Code proved it can plan, write, and debug code autonomously.

There is a gap, though. Without explicit guidance, Claude Code writes code in whatever style it chooses. One function might use type hints while another skips them. A CLAUDE.md file solves this by giving Claude Code persistent project standards it reads at the start of every session.

In this step, get ready to:
  • Create a CLAUDE.md file that sets coding standards for your project.
  • Verify Claude Code follows those standards when writing new code.
  • Explore essential Claude Code commands for daily use.
Create a CLAUDE.md file

CLAUDE.md is a markdown file you add to your project root that Claude Code reads at the start of every session. Use it to set coding standards, architecture decisions, preferred libraries, and review checklists.

  • In your Claude Code session (still open in the weather-cli directory), type the following prompt and press Enter:
Create a CLAUDE.md file for this project that sets coding standards: use type hints in all Python functions, prefer f-strings for formatting, and always include docstrings.

What does this do?

Claude Code reads your prompt, creates a CLAUDE.md file at the project root, and fills it with the coding standards you specified.

From now on, every time Claude Code starts a session in this folder, it loads CLAUDE.md into its context. Your standards become persistent project memory.

  • Review the proposed changes and approve them when Claude Code asks for permission.
  • Confirm that CLAUDE.md now exists in your weather-cli folder by checking Claude Code's output. It should show the file was created with your three coding standards listed.

Claude Code didn't create the file?

Make sure you approved the file creation when Claude Code asked for permission. If you declined, re-type the prompt and approve this time.

If Claude Code is no longer running, start it again by typing claude in PowerShell while inside the weather-cli directory.

Help me troubleshoot why Claude Code didn't create my CLAUDE.md file

Why use CLAUDE.md instead of repeating instructions?

Without CLAUDE.md, you would need to remind Claude Code of your coding standards at the start of every conversation. The file persists across sessions and survives context compaction, so your standards never get lost.

In a team setting, you commit CLAUDE.md to version control so every collaborator's Claude Code sessions follow the same conventions.

Test the CLAUDE.md effect

Now you can prove that Claude Code respects your new standards. You will ask it to add a function and verify the output follows your rules.

  • Type the following prompt in Claude Code and press Enter:
Add a function that converts temperature from Celsius to Fahrenheit
  • Review the proposed changes. Claude Code should add a new function to your project.
  • Approve the changes when prompted.

What should I see?

The new function should follow all three standards from your CLAUDE.md:

  • Type hints on both the parameter and the return value (e.g. def celsius_to_fahrenheit(celsius: float) -> float:).
  • A docstring explaining what the function does.
  • f-strings for any string formatting inside the function.
  • Verify that all three standards are present in the generated function. If any are missing, tell Claude Code what to fix and it will update the code.

Function missing type hints or docstring?

If Claude Code did not follow your CLAUDE.md standards, it may not have loaded the file. Type the following prompt to check:

Read my CLAUDE.md file and tell me what standards are listed

If Claude Code cannot find the file, it may have been created in the wrong directory. Ask Claude Code to move it to the project root.

Help me fix my CLAUDE.md so Claude Code follows my coding standards

Explore Claude Code commands

Claude Code has built-in commands that help you manage sessions, get help, and work efficiently. Knowing a few key commands makes you faster at directing the AI.

  • View all available commands by typing this in your Claude Code session:
/help

What does /help show?

The /help command displays all available built-in commands and skills. You will see commands for clearing history, managing permissions, switching models, and more.

You can also type / followed by any letters to filter the command list in real time.

  • Exit your current Claude Code session by typing exit or pressing Ctrl+D.
  • Continue your most recent conversation by running this command in PowerShell:
claude -c

What does claude -c do?

The -c flag continues the most recent conversation in the current directory. Claude Code picks up exactly where you left off, with all context intact. This is useful when you accidentally close a session or need to step away.

  • Now ask Claude Code to commit your changes with a descriptive message by typing:
Commit all changes with a descriptive commit message
  • Approve the git commands when Claude Code asks for permission.
  • Confirm you see a success message showing your changes were committed.

What just happened?

Claude Code ran git add and git commit on your behalf, writing a meaningful commit message based on the changes it made. This demonstrates how Claude Code handles Git operations conversationally.

Git commit failed?

If you see an error about git not being initialized, ask Claude Code to initialize a git repository first:

Initialize a git repository and then commit all files with a descriptive message

If git is not installed, Claude Code will use PowerShell commands instead. You can skip this step if git is unavailable.

Help me fix a git commit error in Claude Code

Essential commands to remember

  • claude starts a new interactive session.
  • claude -c continues your most recent conversation.
  • claude -r resumes any previous conversation (shows a list to choose from).
  • /help shows all available commands inside a session.
  • /clear clears conversation history when you want a fresh start.

Secret mission

Create a Custom Claude Code Skill

Claude Code comes with bundled skills like /code-review and /debug. But you can create your own custom skills that turn complex, multi-step workflows into a single slash command. In this mission, you'll build a /generate-docs skill that analyzes your project and produces a polished README.md on demand.

Clean Up Your Resources

Clean Up Your Resources

Decide whether to keep your resources running, pause them to come back later, or delete them entirely. This project uses AWS Bedrock on a pay-per-token basis with no idle charges, so leaving things configured costs nothing unless you actively use Claude Code.

Resources you used:

  • IAM policy (ClaudeCodeBedrockPolicy) attached to your IAM user.
  • Claude Code installation on your machine.
  • Claude Code settings directory at ~\.claude\.
  • weather-cli project folder on your Desktop.
  • AWS CLI installation on your machine.

Keep everything running

No action needed. Choose this if you plan to keep using Claude Code with Bedrock on future projects.

  • Your Claude Code + Bedrock setup is ready to use on any project. You only pay when you actively use it.
  • The IAM policy grants Bedrock-only permissions and carries no idle cost.
  • Your weather-cli folder stays on your Desktop for reference.

Pause - I'll come back to this later

There is nothing to pause. Bedrock has no idle charges, and Claude Code does not run background processes. Your setup stays ready for the next time you want to use it.

  • You will not be charged anything while Claude Code is idle.
  • To resume later, open PowerShell and run claude from any project directory.

Delete - I don't want to use this again

Remove all project resources and start fresh. Follow each step below to fully clean up.

  • Delete the project folder by running this command in PowerShell:
Remove-Item -Recurse -Force ~\Desktop\weather-cli
  • Delete your Claude Code settings directory by running:
Remove-Item -Recurse -Force ~\.claude
  • Uninstall Claude Code by running:
winget uninstall Anthropic.ClaudeCode
  • Uninstall the AWS CLI by running:
winget uninstall Amazon.AWSCLI
  • Delete the IAM policy in the AWS console. Open the IAM console at https://console.aws.amazon.com/iam/.
  • In the left navigation pane, choose Policies.
  • Search for ClaudeCodeBedrockPolicy and select the radio button next to it.
  • Choose Actions, then Detach. Select your IAM user and choose Detach policy.
  • With the policy still selected, choose Actions, then Delete. Confirm the deletion.
  • Delete your local AWS credentials by running:
Remove-Item -Recurse -Force ~\.aws

Nice Work!

Nice Work!

You've connected Claude Code to AWS Bedrock and used it to build a real Python project from scratch.

You've learned how to:

  • Connected Claude Code to AWS Bedrock through IAM policies, routing all AI requests through your own AWS account for enterprise-grade security and cost control.
  • Used Claude Code as an agentic coding assistant to autonomously plan, build, and debug a Python CLI weather tool using the Open-Meteo API.
  • Customized Claude Code's behaviour with a CLAUDE.md file that enforces coding standards across every conversation.
  • Created a custom Claude Code skill that generates comprehensive project documentation on demand.

Ready to quiz yourself?