Build an IT Health Checker with Claude Code
Use Claude Code on Windows to build a PowerShell system health checker.
Introduction
30 Second Summary
If you work in IT, you know the drill. Checking disk space, memory usage, and services across machines is repetitive work that eats into your day. AI coding tools can now write those scripts for you, even if scripting is not your main job.
In this project, you will install Claude Code on Windows and use it to build a PowerShell script that monitors your system's health.
What You'll Build
A PowerShell-based System Health Checker that reports on disk space, memory usage, CPU load, and running services, built entirely through Claude Code's agentic coding workflow.
By the end of this project, you'll have:
- Claude Code installed and running on your Windows machine, connected to your Claude subscription.
- A working health-check.ps1 script that checks disk space, memory, CPU, and key services.
- A git repository with clean commits made through Claude Code's built-in git integration.
- Secret Mission: Extend the health checker to generate a styled HTML report with color-coded status indicators.
Are there any prerequisites?
You need a Claude Pro or Max subscription (starting at $20/month) and a computer running Windows 10 or later. No prior coding experience is required.
Install Git for Windows
Claude Code works best when it can manage files and commits through Git. On Windows, Git is not included by default, so you need to install it before Claude Code can use its full set of tools.
In this step, you will install Git for Windows using WinGet (the built-in Windows package manager), set up your Git identity, and confirm everything is working.
In this step, get ready to:
- Install Git for Windows using WinGet.
- Configure your Git username and email.
- Verify Git is accessible from PowerShell.
Install Git using WinGet
WinGet is the built-in package manager for Windows 10 and later. It lets you install software from the command line without downloading installers manually.
- Press the Windows key to open your search bar.
- Type PowerShell and press Enter to open it.
PowerShell or CMD?
Make sure your terminal prompt starts with PS C:\. If you see C:\ without the PS, you are in CMD. Close it and open PowerShell instead.
- Install Git for Windows by running this command:
winget install --id Git.Git -e --source winget
What does this command do?
This tells WinGet to install the official Git for Windows package. The --id Git.Git flag targets the exact package, and -e ensures an exact match so you don't accidentally install something else.
WinGet will download and install Git. You may see a progress bar and a prompt to accept the license agreement.
- Wait for the installation to complete. You should see a message confirming that Git was successfully installed.
- Close your PowerShell window completely.
- Reopen PowerShell by pressing the Windows key, typing PowerShell, and pressing Enter.
Why close and reopen PowerShell?
When you install a new program, Windows updates the system PATH (the list of folders it searches for commands). PowerShell only reads the PATH when it first opens. Closing and reopening it forces PowerShell to pick up the new Git location.
WinGet not recognized?
If you see an error saying winget is not recognized, make sure you are on Windows 10 version 1809 or later. WinGet ships with the App Installer package from the Microsoft Store. Open the Microsoft Store, search for App Installer, and update it.
help me fix a WinGet not recognized error on Windows
Configure Git identity
Git attaches a name and email to every commit you make. This is how your work is attributed in a project's history.
- Set your Git username by running this command:
git config --global user.name "[[YOURNAME=\"your name\"]]"
- Set your Git email by running this command:
git config --global user.email "[[YOUREMAIL=\"your email address\"]]"
What name and email should I use?
These can be any name and email you choose. They do not need to match an existing account. They are simply labels that appear in your commit history.
Verify Git is working
- Confirm Git is accessible by running this command:
git --version
✔️ I see a version number
You should see output like git version 2.54.0.windows.1 (or a similar version). Git is installed and ready to go.
ⓧ Command not found
If PowerShell does not recognize the git command, try these fixes:
- Make sure you closed and reopened PowerShell after the install. The PATH only updates in a fresh window.
- Run the install command again to make sure it completed successfully:
winget install --id Git.Git -e --source winget
- Close and reopen PowerShell one more time, then try git --version again.
help me get git --version working in PowerShell after installing with winget
Git is installed and configured. Next up, you will install Claude Code itself and connect it to your Claude subscription.
Install and Launch Claude Code
With Git set up, you can now install the tool that will do the heavy lifting for this project. Claude Code is an AI coding agent that lives inside your terminal and writes, edits, and runs code on your behalf.
In this step, you will install the Claude Code CLI and connect it to your existing Claude subscription. Once authenticated, Claude Code becomes your AI pair-programmer for the rest of this project.
In this step, get ready to:
- Install the Claude Code CLI on your machine.
- Authenticate Claude Code with your Claude subscription.
- Confirm Claude Code responds to commands.
Install Claude Code
Claude Code has a native Windows installer that downloads the CLI binary and adds it to your system PATH. You run a single command in PowerShell to install it.
- Install Claude Code by running this command in your PowerShell window:
irm https://claude.ai/install.ps1 | iex
What does this command do?
- irm (Invoke-RestMethod) fetches the install script from Anthropic's servers.
- | iex pipes the downloaded script into PowerShell to execute it immediately.
- The installer places the claude binary at %USERPROFILE%\.local\bin\claude.exe and adds that directory to your PATH.
- Wait for the installer to finish. You should see text scrolling as it works, ending with a success message.
- Close your PowerShell window completely.
- Open a new PowerShell window so it picks up the updated PATH. Press the Windows key, type PowerShell, and press Enter.
Seeing 'irm is not recognized'?
This means you are in CMD, not PowerShell. Your prompt shows PS C:\ when you are in PowerShell and C:\ without the PS when you are in CMD.
Close the CMD window and open PowerShell instead by pressing the Windows key, typing PowerShell, and pressing Enter.
Help me troubleshoot the Claude Code installer on Windows.
Authenticate with your Claude account
The first time you run claude, it opens your browser for you to sign in. This links the CLI to your existing Claude subscription so it can make requests on your behalf.
- Launch Claude Code by running this command in your new PowerShell window:
claude
- Your default browser will open to Anthropic's login page. Sign in with the same account you use for your Claude subscription.
- After signing in, your browser will confirm the connection. Return to your PowerShell window.
What happens during authentication?
Claude Code opens your default browser to Anthropic's login page. After you sign in, the browser sends an auth token back to the CLI. Your subscription type (Pro, Max, Team, or Enterprise) determines your usage limits.
You do not need an API key. Claude Code uses your existing subscription directly.
You should see the Claude Code welcome screen in your PowerShell window with session information and recent updates.
'claude' is not recognized?
Make sure you closed the old PowerShell window and opened a fresh one after installing. PATH updates only apply to new terminal sessions.
If a new window still does not recognize the command, run this to add the install directory to your PATH manually:
$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')
Close PowerShell, open a new window, and try claude again.
Help me fix Claude Code not being recognized in PowerShell after installation.
Verify Claude Code is working
Now that you are inside Claude Code, you can confirm everything is connected by viewing the available commands.
- Type the following into the Claude Code prompt and press Enter:
/help
- You should see a list of available commands including /init, /compact, /clear, and others.
What are these commands for?
- /init generates a project memory file that teaches Claude Code about your project.
- /compact compresses your conversation to stay within token limits while preserving context.
- /clear starts a fresh conversation while keeping your project memory loaded.
- /help displays all available commands and descriptions.
Auto-updates in the background
Native installations of Claude Code automatically update in the background. You do not need to manually upgrade.
Claude Code is installed and authenticated. Next up, you will create your project folder and teach Claude Code about your project using a CLAUDE.md memory file.
Create Your Project and Set Up CLAUDE.md
Claude Code is installed and ready to go. Now it is time to set up the project it will work inside.
Every Claude Code project benefits from a CLAUDE.md file. This is a special memory file that Claude reads at the start of every conversation so it understands your project's rules, structure, and commands. In this step, you will create a project folder, initialize a Git repository, and configure CLAUDE.md with your project's conventions.
In this step, get ready to:
- Create your project folder and initialize a git repository.
- Launch Claude Code and generate a CLAUDE.md file.
- Customize CLAUDE.md with your project's conventions and commands.
Create the project folder and initialize git
Claude Code works best when it is launched inside a dedicated project folder with version control. This gives it a clean workspace and lets you track every change it makes.
- In your PowerShell window, move to your Desktop by running this command:
cd ~/Desktop
- Create your project folder and move into it by running these commands:
mkdir health-checker
cd health-checker
- Initialize a git repository by running:
git init
- Confirm the folder and repository are ready by running:
ls
The output should be empty since the folder is brand new. The important thing is that the command ran without errors.
Seeing a 'cannot find path' error?
Make sure your Desktop folder exists at the default location. If you have moved or renamed it, navigate to the actual folder path instead.
Also confirm you are in PowerShell, not CMD. Your prompt should start with PS. If it does not, close the window and open PowerShell from your search bar.
Help me troubleshoot my PowerShell folder creation error.
Start Claude Code and run /init
The /init command tells Claude Code to scan your project and generate a starter CLAUDE.md file. This gives Claude Code an initial understanding of what it is working with.
- Launch Claude Code inside your project folder by running:
claude
You should see the Claude Code welcome screen with a prompt ready for input.
What if Claude Code asks about permissions?
On first launch in a new folder, Claude Code may ask for permission to access your project directory. Accept the prompt to continue.
- Generate a starter CLAUDE.md file by typing this command into Claude Code:
/init
What does /init do?
The /init command scans your project's structure, config files, and any existing code to generate a CLAUDE.md file tailored to your project. Since the folder is currently empty, the generated file will be a minimal starting point.
Claude Code may show you the proposed file content and ask for approval. Accept the changes to create the file.
- When Claude Code shows the proposed CLAUDE.md content, accept the changes.
You should see a confirmation that CLAUDE.md was created in your project folder.
Claude Code not responding after /init?
If the command seems stuck, wait a moment. Claude Code is analyzing your project. For an empty folder, this should only take a few seconds.
If nothing happens after 30 seconds, press Ctrl+C to cancel and try running /init again.
Help me fix Claude Code not responding to the /init command.
Customize CLAUDE.md with your project conventions
The auto-generated CLAUDE.md is a starting point, but you need to fill it with the specific rules for your health checker project. You will tell Claude Code exactly what conventions to follow, so every script it writes matches your expectations.
- Type the following prompt into Claude Code to update your CLAUDE.md:
Update CLAUDE.md with this content: The project title is System Health Checker. The Project Overview section should say this is a PowerShell project for Windows system health monitoring. Add a Conventions section with these rules: scripts must be compatible with PowerShell 5.1+, output should be human-readable with clear formatting, use Write-Host for colored console output, and include comments explaining each check. Add a Commands section with two entries: run health check using powershell -ExecutionPolicy Bypass -File health-check.ps1, and run HTML report using powershell -ExecutionPolicy Bypass -File health-report.ps1
Why be so specific in the prompt?
Claude Code follows your instructions precisely. The more detail you provide about conventions, the more consistent the code it writes for you will be.
These conventions ensure every script Claude Code generates uses PowerShell 5.1+ compatible syntax (which is pre-installed on Windows 10), includes readable output with color coding, and has helpful comments.
- When Claude Code shows the proposed changes to CLAUDE.md, review them and accept.
- Verify the file looks correct by asking Claude Code:
Show me the contents of CLAUDE.md
You should see a clean markdown file with the Project Overview, Conventions, and Commands sections.
What is CLAUDE.md for?
CLAUDE.md is read by Claude Code at the start of every conversation. It acts as persistent project memory. Any rules or context you put here will guide Claude Code's behavior in all future sessions.
Aim to keep this file under 200 lines. Short and focused is better than long and detailed.
✔️ Awesome, I've got everything!
Great. Double check you have accepted all the changes and your CLAUDE.md is saved in the health-checker folder.
ⓧ I'd like to double check the full code
Here is what your CLAUDE.md should look like:
# System Health Checker
## Project Overview
PowerShell project for Windows system health monitoring.
## Conventions
- Scripts must be compatible with PowerShell 5.1+
- Output should be human-readable with clear formatting
- Use Write-Host for colored console output
- Include comments explaining each check
## Commands
- Run health check: `powershell -ExecutionPolicy Bypass -File health-check.ps1`
- Run HTML report: `powershell -ExecutionPolicy Bypass -File health-report.ps1`
If your file does not match, ask Claude Code to update it. You can paste the exact content above into your prompt and tell Claude Code to replace the current CLAUDE.md with it.
CLAUDE.md content looks different from the reference?
Since Claude Code generates content based on your prompt, the output may differ slightly in wording. The key things to check: the title says System Health Checker, there is a Conventions section with the four rules listed, and a Commands section with both run commands.
If sections are missing or wrong, tell Claude Code exactly what to fix. For example: "Add a Commands section with the run commands."
Help me get my CLAUDE.md file to match the expected content.
Your project is set up with version control and a clear set of conventions. Next up, you will put Claude Code to work and have it build the actual health checker script.
Build the Health Checker with Claude Code
Your project is set up with a CLAUDE.md that tells Claude Code exactly what kind of project you're building. Now it's time to actually build the health checker script.
Instead of writing code yourself, you'll direct Claude Code to plan, write, and test the script for you. This is the core agentic coding workflow: describe what you want, review the plan, and let the AI build it.
In this step, get ready to:
- Ask Claude Code to plan the health checker script before writing any code.
- Have Claude Code create the script file and review its output.
- Test the script by running it and verifying the results.
Ask Claude Code to plan the script
The best practice with Claude Code is to plan before coding. This gives you a chance to review the approach and catch any misunderstandings before code gets written.
- In your Claude Code session, type the following prompt and press Enter:
Plan a PowerShell script called health-check.ps1 that checks system health. It should report on: disk space for all fixed drives, memory usage, CPU load average, and the status of key Windows services (wuauserv, W32Time, Dhcp, Dnscache, EventLog). Use color-coded output with thresholds: green for OK, yellow/warning at 80% usage, red/critical at 90% usage. Don't write any code yet, just outline the plan.
What does this prompt do?
By saying "don't write any code yet, just outline the plan," you're telling Claude Code to stay in planning mode. It will respond with a structured outline of what the script will do, what cmdlets it will use, and how it will organize the checks.
This is your chance to course-correct before any code is written. Review the plan to make sure it covers all four checks (disk, memory, CPU, services) and mentions color-coded output.
Claude Code will respond with a structured plan listing each section of the script. You should see it mention Get-CimInstance for disk and memory checks, Win32_Processor for CPU, and Get-Service for the services check.
Give feedback on the plan
If Claude Code's plan is missing something or you want to adjust it, just type your feedback directly. For example, "Also add a timestamp header and a Last Run footer" or "Make sure to use Get-CimInstance instead of Get-WmiObject." Claude Code remembers the whole conversation.
Claude Code gave a short or vague plan?
If the plan seems too brief, ask Claude Code to expand: "Can you be more specific about the thresholds and color coding for each check?" The more detail in the plan, the better the generated code.
help me get Claude Code to give a more detailed plan for my health checker script
Have Claude Code write the script
Once you're happy with the plan, you'll tell Claude Code to go ahead and build it. Claude Code will create the file and write the full script for you.
- Tell Claude Code to write the script by typing this prompt:
That plan looks good. Go ahead and create the health-check.ps1 file with the full implementation.
What happens next?
Claude Code will ask for permission to create and write to the health-check.ps1 file. You'll see a prompt asking you to approve the file creation. Accept it to let Claude Code write the script.
After you approve, Claude Code generates the complete script. It will show you the code it wrote, including disk space checks using Get-CimInstance, memory and CPU checks, service monitoring, and color-coded output with threshold logic.
- Review the code Claude Code generated. Look for these key elements:
- A header with a timestamp using Get-Date.
- Disk space checks using Get-CimInstance -ClassName Win32_LogicalDisk.
- Memory checks using Win32_OperatingSystem.
- CPU load using Win32_Processor.
- Service checks for wuauserv, W32Time, Dhcp, Dnscache, and EventLog.
- Color-coded output with warning at 80% and critical at 90%.
Why review the code if Claude Code wrote it?
Even with AI-generated code, reviewing is essential. You're checking that the script does what you asked for, uses the right cmdlets, and doesn't include anything unexpected. This review habit is a core part of working with any coding agent.
The code looks different from what you expected?
Claude Code generates code dynamically, so exact variable names or formatting may differ from run to run. That's normal. Focus on whether the script has all four checks (disk, memory, CPU, services) and uses color-coded output with thresholds.
If something important is missing, just tell Claude Code: "Can you also add a section that checks services?" or "Please use Get-CimInstance instead of Get-WmiObject."
help me refine my Claude Code output to match what I need
Run and test the script
The script exists on disk now, but you need to confirm it actually runs without errors. You can ask Claude Code to execute it for you right inside the same session.
- Ask Claude Code to run the script by typing this prompt:
Run the health-check.ps1 script and show me the output.
What should I see?
Claude Code will ask permission to execute the script. After you approve, you should see a formatted health report with sections for Disk Space, Memory Usage, CPU Load, and Key Services. Each check displays a status indicator (OK, WARNING, or CRITICAL) based on the thresholds.
The colors won't render inside Claude Code's output panel, but you'll see the status labels. The colors show up when you run the script directly in PowerShell later.
- If you see any errors in the output, describe the problem to Claude Code. For example: "I'm seeing an error about Get-WmiObject not being found. Can you fix that?"
- Once the script runs successfully, verify that it reports on all four areas: disk space, memory, CPU, and services.
Script fails with a permission error?
PowerShell's execution policy may block script execution. If you see this, tell Claude Code: "Run it with the bypass execution policy." It should use the command powershell -ExecutionPolicy Bypass -File health-check.ps1 instead.
help me fix a PowerShell execution policy error when running my script through Claude Code
✔️ Awesome, I've got everything!
Great. Make sure you've saved the file and that the script ran without errors.
ⓧ I'd like to double check the full code
Here's what your health-check.ps1 should look like. Claude Code may have generated slightly different variable names or formatting, but the structure and functionality should match.
# System Health Checker
# Reports on disk space, memory usage, CPU load, and key services
Write-Host "========================================" -ForegroundColor Cyan
Write-Host " System Health Check Report" -ForegroundColor Cyan
Write-Host " $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host ""
# Disk Space Check
Write-Host "[Disk Space]" -ForegroundColor Yellow
$disks = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3"
foreach ($disk in $disks) {
$usedPercent = [math]::Round((($disk.Size - $disk.FreeSpace) / $disk.Size) * 100, 1)
$freeGB = [math]::Round($disk.FreeSpace / 1GB, 2)
$totalGB = [math]::Round($disk.Size / 1GB, 2)
if ($usedPercent -ge 90) {
$color = "Red"
$status = "CRITICAL"
} elseif ($usedPercent -ge 80) {
$color = "DarkYellow"
$status = "WARNING"
} else {
$color = "Green"
$status = "OK"
}
Write-Host " Drive $($disk.DeviceID) - $freeGB GB free of $totalGB GB ($usedPercent% used) [$status]" -ForegroundColor $color
}
Write-Host ""
# Memory Check
Write-Host "[Memory Usage]" -ForegroundColor Yellow
$os = Get-CimInstance -ClassName Win32_OperatingSystem
$totalMemGB = [math]::Round($os.TotalVisibleMemorySize / 1MB, 2)
$freeMemGB = [math]::Round($os.FreePhysicalMemory / 1MB, 2)
$usedMemGB = [math]::Round($totalMemGB - $freeMemGB, 2)
$memPercent = [math]::Round(($usedMemGB / $totalMemGB) * 100, 1)
if ($memPercent -ge 90) {
$memColor = "Red"
$memStatus = "CRITICAL"
} elseif ($memPercent -ge 80) {
$memColor = "DarkYellow"
$memStatus = "WARNING"
} else {
$memColor = "Green"
$memStatus = "OK"
}
Write-Host " Used: $usedMemGB GB / $totalMemGB GB ($memPercent%) [$memStatus]" -ForegroundColor $memColor
Write-Host ""
# CPU Check
Write-Host "[CPU Load]" -ForegroundColor Yellow
$cpu = Get-CimInstance -ClassName Win32_Processor | Measure-Object -Property LoadPercentage -Average
$cpuLoad = [math]::Round($cpu.Average, 1)
if ($cpuLoad -ge 90) {
$cpuColor = "Red"
$cpuStatus = "CRITICAL"
} elseif ($cpuLoad -ge 70) {
$cpuColor = "DarkYellow"
$cpuStatus = "WARNING"
} else {
$cpuColor = "Green"
$cpuStatus = "OK"
}
Write-Host " Average CPU Load: $cpuLoad% [$cpuStatus]" -ForegroundColor $cpuColor
Write-Host ""
# Key Services Check
Write-Host "[Key Services]" -ForegroundColor Yellow
$services = @("wuauserv", "W32Time", "Dhcp", "Dnscache", "EventLog")
foreach ($svcName in $services) {
$svc = Get-Service -Name $svcName -ErrorAction SilentlyContinue
if ($null -eq $svc) {
Write-Host " $svcName - NOT FOUND" -ForegroundColor DarkYellow
} elseif ($svc.Status -eq "Running") {
Write-Host " $($svc.DisplayName) ($svcName) - Running" -ForegroundColor Green
} else {
Write-Host " $($svc.DisplayName) ($svcName) - $($svc.Status)" -ForegroundColor Red
}
}
Write-Host ""
# Summary
Write-Host "========================================" -ForegroundColor Cyan
Write-Host " Last Run: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
If your script is missing sections or uses different cmdlets, you can ask Claude Code to update it. For example: "Update health-check.ps1 to match this structure" and paste the sections you need changed.
You've just built a real IT automation script without writing a single line of code yourself. Claude Code planned it, wrote it, and tested it based on your direction. Next up, you'll use Claude Code's git integration to commit your work with clean, meaningful commit messages.
Commit Your Work with Claude Code's Git Integration
You have a working health checker script and a configured project memory file. Right now, none of this work is saved in version control.
In this step, you will use Claude Code's built-in Git integration to stage, commit, and iterate on your project. Claude Code can handle the entire git workflow for you through natural language prompts.
In this step, get ready to:
- Make your first commit through Claude Code with a meaningful message.
- Iterate on your script and commit the improvement separately.
- View your commit history to confirm a clean project record.
Ask Claude Code to commit your work
Professional developers commit early and often. Each commit is a checkpoint you can return to if something breaks later. Claude Code can stage files and write commit messages for you.
- In your Claude Code session, type the following prompt and press Enter:
Stage and commit all files with a meaningful commit message describing the initial system health checker implementation
- Claude Code will propose a commit message and show you what files it plans to stage. Review the proposed message.
- When Claude Code asks for permission to run the git commands, approve by pressing y.
What is happening here?
Claude Code runs git add and git commit on your behalf. It reads your project files to generate a descriptive commit message, so you do not have to write one manually.
You always get to review and approve before any git operation runs. Nothing happens without your confirmation.
You should see a confirmation message indicating the commit was successful, with both CLAUDE.md and health-check.ps1 included.
Commit failed or no files staged?
Make sure you initialized a git repository in your project folder during Step 3. If Claude Code says there is nothing to commit, your files may have been committed already. Ask Claude Code to run git status to check.
If you see a message about identity not being set, go back and confirm your git config username and email are configured from Step 1.
Help me fix a git commit error in Claude Code
Make an improvement and commit again
Real projects evolve through small, focused commits. Each commit captures one logical change. This makes it easy to trace when and why something was added.
- Ask Claude Code to add a "last run" timestamp to the script's summary output by typing this prompt:
Add a "Last Run" timestamp with the current date and time to the summary section at the bottom of health-check.ps1, then commit that change with a descriptive message
- Claude Code will show you the proposed code change. Review it to confirm a timestamped line appears in the summary section at the bottom of the script.
- Approve the file edit and then approve the commit when prompted.
Why separate commits?
Each commit captures one logical change. Your first commit was "initial implementation" and this second commit is "add timestamp to output." If the timestamp ever causes a problem, you can revert just that one commit without losing the rest of your work.
This iterative pattern is exactly how professional developers work. Claude Code makes it effortless by handling the staging and message writing for you.
You should see a second commit confirmation. Claude Code will report the change to health-check.ps1 and the new commit hash.
Claude Code made changes you didn't expect?
If Claude Code modified more than just the summary section, you can ask it to undo the last change and try again with a more specific prompt. Type something like: "Undo that. Only add a Last Run timestamp line to the summary section at the bottom, don't change anything else."
Claude Code changed too much in my script and I want to undo it
View your commit history
A clean commit history tells the story of how your project evolved. You can ask Claude Code to show it to you without leaving the session.
- Type the following prompt to see your project history:
Show me the git log
- Review the output. You should see at least two commits listed with their messages, timestamps, and hashes.
What should I see?
The git log shows your commits in reverse chronological order. The most recent commit (adding the timestamp) appears first, followed by your initial commit. Each entry includes the commit hash, author name, date, and message.
This is a professional-grade version history built entirely through natural language. No manual git add or git commit -m typing required.
Use /compact for long sessions
If your Claude Code session is getting long and responses slow down, type /compact to compress the conversation history. This frees up context space while keeping your project memory intact through CLAUDE.md.
Your project now has a clean version history with meaningful commits. Next up, you will take on the Secret Mission and extend your health checker into something even more powerful.
Secret mission
Generate an HTML Health Report
Your console health checker works great, but what if you could share the results with your team? In this secret mission, you'll extend the project by asking Claude Code to build a styled HTML report with color-coded status indicators that opens automatically in your browser.
Clean Up Your Resources
Clean Up Your Resources
This project runs entirely locally on your Windows machine, so there are no ongoing cloud costs or subscription charges beyond your existing Claude Pro or Max plan. Decide whether to keep your resources running, pause them to come back later, or delete them entirely.
Resources you used:
- Project folder on your Desktop containing health-check.ps1, health-report.ps1, CLAUDE.md, and the git repository.
- Git for Windows (installed via WinGet).
- Claude Code CLI (installed via the native PowerShell installer).
- Claude Code configuration files stored in your user profile.
Keep everything running
No action needed. Choose this if you plan to keep building with Claude Code and want your health checker project available for future reference.
- Your project folder stays on your Desktop.
- Git for Windows remains available for other projects.
- Claude Code stays installed and continues to auto-update in the background.
Pause - I'll come back to this later
There are no running processes or services to stop. Everything in this project is file-based, so there is nothing to pause. Your project will be exactly as you left it when you return.
- You can leave everything in place and come back anytime.
- Claude Code does not run in the background. It only activates when you type claude in your terminal.
Delete - I don't want to use this again
Remove all project resources and installed tools to start fresh.
- Delete your project folder by running this command in PowerShell:
Remove-Item -Path "$HOME\Desktop\health-checker" -Recurse -Force
- Uninstall Git for Windows by running:
winget uninstall --id Git.Git -e --source winget
- Uninstall Claude Code by removing the binary and version files:
Remove-Item -Path "$env:USERPROFILE\.local\bin\claude.exe" -Force
Remove-Item -Path "$env:USERPROFILE\.local\share\claude" -Recurse -Force
- Remove Claude Code configuration and session data:
Remove-Item -Path "$env:USERPROFILE\.claude" -Recurse -Force
What about your Claude subscription?
Uninstalling Claude Code does not cancel your Claude Pro or Max subscription. Your subscription is managed through your Anthropic account settings, not through the CLI tool.
Nice Work!
Nice Work!
You just installed Claude Code on Windows and used it to build a real IT automation tool from scratch. You now know how to direct an AI coding agent to plan, write, test, and commit PowerShell scripts.
Here's what you accomplished:
- Installed Claude Code on Windows and connected it to your Claude subscription, learning the core workflow of plan, code, test, commit.
- Built a PowerShell system health checker entirely through AI-assisted coding, using commands like /init, /help, /compact, and /clear.
- Used Claude Code's git integration to maintain a clean commit history with meaningful messages.
- Secret Mission: Generated a styled HTML health report with color-coded status indicators that opens automatically in your browser.
Ready to quiz yourself?