Fix Slow Wi-Fi with Claude Code
Measure and safely tune your router Wi-Fi with Claude Code.
Introduction
30 Second Summary
Slow Wi-Fi can turn an evening call or a bedroom stream into a guessing game. A single speed test confirms the frustration without showing what causes it.
In this project, you will use Claude Code to build a repeatable speed meter before testing reversible router changes. Claude in Chrome will keep every browser action visible while you approve each change.
What You'll Build
You'll watch a supervised Wi-Fi tuning session turn each approved router change into a measured keep-or-undo decision.
By the end of this project, you'll have:
- A repeatable speed meter that shows one large download result from networkQuality. Each measurement is added to wifi-results.csv for comparison.
- A backed-up router audit covering five Wi-Fi setting categories. You can review up to three low-risk proposals before any value changes.
- A before-and-after report that separates retained improvements from reverted experiments. Each retained setting includes the old value needed for manual rollback.
- Secret Mission: Repeat the controlled test where Wi-Fi feels worst to determine whether the remaining problem comes from configuration or coverage.
What do I need for this project?
You need a Mac running macOS 13.0 or later with Google Chrome plus the admin password for your own router. You also need an eligible paid Anthropic plan such as Claude Pro at $20 when billed monthly before applicable tax.
Before We Start
This is your moment to define the Wi-Fi problem before any router setting changes. Your statement will anchor the controlled comparison you make later.
Set Up Claude Code and Chrome
Router administration can affect every device on your network. This setup creates an approval boundary before Claude can act.
You will prepare macOS for a supervised Claude Code session. Google Chrome joins only after Manual mode is active.
In this step, get ready to:
- Meet Claude Code's macOS and account requirements.
- Install Claude Code inside a guarded workspace.
- Enable Claude in Chrome with session-only site access.
Prepare your Mac for Claude Code
Claude Code requires macOS 13.0 or later. Chrome integration also requires an eligible direct Anthropic plan.
- Click the Apple menu in the upper-left corner of your screen.
- Choose About This Mac.
- Confirm the displayed macOS version is 13.0 or later.
- Stop here if the version is older than 13.0.
Activating Claude Pro starts a $20 monthly subscription before applicable tax. If you already have an eligible direct plan, this setup adds no new subscription.
- Check whether your Anthropic account uses a direct Pro, Max, Ultra, Team, or Enterprise plan.
- Open Anthropic's pricing page if your account needs an eligible plan.
- Activate the paid plan that fits your account.
The Free plan does not include Claude Code or Claude in Chrome. Your eligible paid plan gives both tools access to the same Anthropic account.
- Press Cmd+Space to open Spotlight Search.
- Type Terminal.
- Press Enter to open Terminal.
- Check whether Claude Code is already installed by running this command:
claude --version
What Does This Check Do?
The version command asks the installed Claude Code executable to print its version. The result determines whether you can continue or need the native installer.
✔️ I see version 2.1.318 or higher
Your Claude Code installation meets the project requirement. That is the first safeguard ready for your router session.
ⓧ I see an older version
Your installed version is below the project requirement. The official native installer updates Claude Code to the current release.
- Update Claude Code by running this command:
curl -fsSL https://claude.ai/install.sh | bash
What Does This Installer Do?
The command downloads Anthropic's official native installer over HTTPS. The installer places the current Claude Code release on your Mac.
- Wait for the installer to finish.
- Close the current Terminal window.
- Press Cmd+Space to open Spotlight Search.
- Type Terminal.
- Press Enter to open a new Terminal window.
- Verify the updated installation by running this command:
claude --version
What Should You See?
The terminal prints Claude Code version 2.1.318 or higher. That output confirms the updated executable is available in the new Terminal window.
Installer Not Finishing?
- Check that your Mac still has an internet connection.
- Confirm that the installer finished before closing the original Terminal window.
Help me troubleshoot the Claude Code installer. Share only non-sensitive terminal output with the NextWork community.
ⓧ Command not found
Claude Code is not installed yet. The official native installer adds the current release to your Mac.
- Install Claude Code by running this command:
curl -fsSL https://claude.ai/install.sh | bash
What Does This Installer Do?
The command downloads Anthropic's official native installer over HTTPS. The installer places the current Claude Code release on your Mac.
- Wait for the installer to finish.
- Close the current Terminal window.
- Press Cmd+Space to open Spotlight Search.
- Type Terminal.
- Press Enter to open a new Terminal window.
- Verify the new installation by running this command:
claude --version
What Should You See?
The terminal prints Claude Code version 2.1.318 or higher. That output confirms the new Terminal window can find the executable.
Still Seeing Command Not Found?
- Confirm that you opened a new Terminal window after installation.
- Check that the installer reached its completion message.
Help me find my Claude Code installation. Share only non-sensitive terminal output with the NextWork community.
Start a guarded Claude Code session
The workspace keeps this project's files in one known location. Starting Claude Code from that folder gives every later file approval a clear boundary.
- Create the ~/wifi-fix workspace by running this command:
mkdir -p ~/wifi-fix && cd ~/wifi-fix
What Does This Command Do?
- The mkdir command creates the workspace when it does not already exist.
- The cd command makes that workspace the active Terminal directory.
- Check the Terminal prompt for the active folder.
You should see wifi-fix in the prompt. Your next command now starts from the correct workspace.
Workspace Missing From the Prompt?
The folder command must finish before the active directory changes. Check the terminal output for a permissions or typing problem.
Help me enter the wifi-fix workspace.
The next command starts an interactive Claude Code session. A browser sign-in flow opens if this Mac has not authenticated your Anthropic account yet.
- Start Claude Code in Manual mode by running this command:
claude --permission-mode manual
Why Manual Mode?
Manual mode stops before most file edits, shell commands, or network access. You decide whether each proposed action can proceed.
The command keeps this Terminal window occupied with the interactive Claude Code session. You will use the same session for Chrome setup.
- Complete the Anthropic sign-in flow in your browser if it opens.
- Return to the Terminal window running Claude Code.
- Confirm the status bar says manual mode on.
- Keep Manual mode active for the entire router session.
- Avoid Auto mode throughout this project.
- Decline any option that bypasses permissions.
Claude Code is now signed in from ~/wifi-fix. Every sensitive action still waits for your approval.
Connect Claude Code to Chrome
Claude in Chrome performs browser actions in a visible window. It pauses when you need to handle a login page yourself.
- Press Cmd+Space to open Spotlight Search.
- Type Google Chrome.
- Press Enter to open Google Chrome.
- Return to the Terminal window running Claude Code.
- Open the Chrome integration setup by entering this command:
/chrome
What Does Chrome Setup Control?
- The status panel checks whether the browser connection is enabled.
- The same panel manages site permissions for the current session.
- The panel can reconnect the extension when Chrome loses contact with Claude Code.
- Press Enter to accept the one-time explanation.
- Select Install extension if Claude Code reports that the extension is missing.
- Complete the guided installation in Google Chrome.
- Select Continue with browser tools when the connection is ready.
- Enter chrome://extensions in Chrome's address bar.
- Confirm Claude in Chrome is installed.
- Confirm the extension is enabled.
- Confirm the extension version is 1.0.36 or later.
Keep Router Access Temporary
Site permissions determine where Claude can browse, click, or type. Limit the router site to the current session when Chrome asks for access later.
Before you check the connection, which two status lines do you expect to confirm that Chrome is ready?
- Return to the Terminal window running Claude Code.
- Reopen the Chrome status panel by entering this command:
/chrome
What Should You See?
The Chrome status panel shows Status: Enabled plus Extension: Installed. These lines confirm that the visible browser connection is ready.
Chrome Extension Not Detected?
- Confirm Google Chrome is still running.
- Check that Claude in Chrome is enabled at chrome://extensions.
- Choose Reconnect extension from the Chrome status panel.
Help me reconnect Claude in Chrome. Share only non-sensitive status information with the NextWork community.
You have the guardrails in place. Claude Code can now reach Chrome through a visible Manual mode session that keeps you in control.
Your supervised workspace is ready. Next up, you will build a speed meter that turns your Wi-Fi symptom into a comparable baseline.
Build Your Before-Speed Meter
Your supervised Claude Code session is ready in Manual mode. Now you need evidence that captures the Wi-Fi problem before the router changes.
A baseline measurement turns a vague slowdown into a number you can compare. It cannot reveal which router setting caused the result.
In this step, get ready to:
- Create a reviewed speed meter in Manual mode.
- Measure the Wi-Fi from the usual problem location.
- Confirm the baseline in a CSV log.
Build the meter in Manual mode
The meter separates measurement from diagnosis. It records a comparable number without claiming that one test has found the cause.
- Ask Claude to start wifi-meter.zsh with the block below:
#!/bin/zsh
set -u
label="${1:-measurement}"
results_file="./wifi-results.csv"
print
print "Running Apple's networkQuality test..."
print "Keep this Mac in the same place for comparable readings."
print
networkQuality
test_status=$?
if (( test_status != 0 )); then
print -u2 "The networkQuality test failed. No result was saved."
exit $test_status
fi
What does this code do?
- The label value names each measurement. It defaults to measurement when no label is supplied.
- The results_file value points to ./wifi-results.csv inside the current workspace.
- The networkQuality command measures the current connection under working conditions.
- The test_status check catches a failed test. It prevents that failed run from reaching the log.
- Compare Claude's proposed change with the block above.
- Approve the file write only when every line matches.
- Confirm Claude's change summary lists wifi-meter.zsh.
Does Claude propose different code?
Reject the write if Claude changes the file name or adds automatic output parsing. Ask it to use the exact block provided.
Keep Manual mode active so every file change waits for your review.
Help me compare Claude's proposed first script block with the required wifi-meter.zsh code.
- Ask Claude to append the input validation and CSV logging block below:
print
printf "Enter the download capacity number shown above, without the unit: "
IFS= read -r mbps
if [[ ! "$mbps" =~ '^[0-9]+([.][0-9]+)?$' ]]; then
print -u2 "Enter a number such as 12.5 or 90."
exit 1
fi
safe_label="${label//,/ }"
if [[ ! -f "$results_file" ]]; then
print -r -- "label,download_mbps" > "$results_file"
fi
print -r -- "$safe_label,$mbps" >> "$results_file"
How does the logging work?
- The mbps value holds the number you transcribe from the completed test.
- The numeric check accepts whole numbers or decimals. Invalid input exits before the log changes.
- The safe_label value replaces commas so one label cannot split into extra CSV columns.
- The script creates the label,download_mbps header once. Each successful measurement becomes a new row.
- Compare Claude's proposed addition with the block above.
- Approve the addition only when its placement follows the first block.
- Confirm Claude's change summary includes the validation and logging lines.
Is the logging block in the wrong place?
Reject the change if Claude places this block before the failed-test check. The script must stop before asking for a number when the network test fails.
Help me check the placement of the input validation and CSV logging block in wifi-meter.zsh.
- Ask Claude to append the large terminal display below:
printf '\033[2J\033[H'
printf '\n\n'
printf '\033[1;36m'
printf ' +----------------------------+\n'
printf ' | |\n'
printf ' | %10s Mbps |\n' "$mbps"
printf ' | |\n'
printf ' +----------------------------+\n'
printf '\033[0m'
printf '\nSaved as "%s" in %s\n' "$safe_label" "$results_file"
What does the display add?
- The first output lines clear the terminal before drawing the result.
- The bordered display makes the entered Mbps value easy to compare with later tests.
- The final line confirms the saved label. It also names the results file.
- Compare Claude's proposed addition with the display block above.
- Approve the final addition when every character matches.
- Confirm Claude reports that wifi-meter.zsh was updated.
Does the display look incomplete?
Check that Claude included every border line. Confirm the final save message still uses safe_label and results_file.
Help me compare the terminal display in wifi-meter.zsh with the required final block.
✔️ Awesome, I've got everything!
Your three reviewed chunks now form one runnable wifi-meter.zsh script. Keep Manual mode active for the rest of the project.
ⓧ I'd like to double check the full code
Compare your complete wifi-meter.zsh file with this reference:
#!/bin/zsh
set -u
label="${1:-measurement}"
results_file="./wifi-results.csv"
print
print "Running Apple's networkQuality test..."
print "Keep this Mac in the same place for comparable readings."
print
networkQuality
test_status=$?
if (( test_status != 0 )); then
print -u2 "The networkQuality test failed. No result was saved."
exit $test_status
fi
print
printf "Enter the download capacity number shown above, without the unit: "
IFS= read -r mbps
if [[ ! "$mbps" =~ '^[0-9]+([.][0-9]+)?$' ]]; then
print -u2 "Enter a number such as 12.5 or 90."
exit 1
fi
safe_label="${label//,/ }"
if [[ ! -f "$results_file" ]]; then
print -r -- "label,download_mbps" > "$results_file"
fi
print -r -- "$safe_label,$mbps" >> "$results_file"
printf '\033[2J\033[H'
printf '\n\n'
printf '\033[1;36m'
printf ' +----------------------------+\n'
printf ' | |\n'
printf ' | %10s Mbps |\n' "$mbps"
printf ' | |\n'
printf ' +----------------------------+\n'
printf '\033[0m'
printf '\nSaved as "%s" in %s\n' "$safe_label" "$results_file"
Measure the before state
A fair baseline keeps the location consistent. It also limits competing network traffic during the test.
This test generates network traffic for several seconds. A short quiet stretch in Terminal is normal.
- Close bandwidth-heavy apps on the Mac.
- Move the Mac to the place where you normally notice the problem.
- Leave every router setting unchanged.
The script runs networkQuality first. It pauses afterward so you can enter the download number yourself.
Before you run this, do you expect one number to identify a router setting or only quantify the current symptom?
- Start the controlled baseline by running this command:
zsh wifi-meter.zsh before
What does this command do?
- The zsh command runs your reviewed script.
- The before argument becomes the measurement label.
- The built-in network test measures the current connection. Your transcription keeps the script independent of an undocumented output format.
- Let networkQuality finish.
- Find the download number in its completed result.
- Enter only the number without its unit.
You'll see your entered result inside a large cyan box. The final line confirms that it was saved with the before label.
That result makes the slowdown measurable. It still does not identify which router setting is responsible.
Did the meter reject the result?
Enter digits with an optional decimal point. Leave out the Mbps unit or any surrounding words.
If the network test fails, the script saves nothing. Check the Mac's connection before running the same baseline again.
Help me troubleshoot a rejected or failed wifi-meter.zsh baseline run.
Verify the baseline log
The results log connects each test label to its entered download measurement. This gives later router experiments a stable comparison point.
Before you inspect the log, which label do you expect its first measurement row to contain?
- Ask Claude Code to display the contents of wifi-results.csv.
You'll see label,download_mbps on the first line. The next line starts with before, followed by the number you entered.
- Keep the router settings unchanged after confirming the row.
Your baseline is logged while the router remains untouched. Next, you'll identify the router from redacted evidence before recording a safe rollback route.
Identify, Log In, and Back Up
Your speed meter has recorded a baseline measurement from the place where your Wi-Fi struggles. The router remains unchanged.
A router photo gives Claude Code evidence for identifying the model. The label can also expose credentials or unique device details.
No router setting is safe to touch until you have recorded its current state. A complete rollback route makes every later experiment reversible.
In this step, get ready to:
- Identify your router from redacted photos using current manufacturer documentation.
- Store the router password through a private macOS prompt before entering it manually.
- Create a manufacturer backup plus a complete screenshot inventory with rollback values.
Redact and identify your router
Router labels often place the model number beside passwords or device identifiers. This part is fiddly because the useful evidence must remain visible while every sensitive detail stays covered.
- Cover every Wi-Fi password on the router label.
- Cover every admin password on the router label.
- Cover every serial number on the router label.
- Cover every MAC address on the router label.
- Cover every QR code on the router label.
- Photograph the front of the router.
- Photograph the covered router label.
- Inspect both photos at full size for exposed details.
Each photo should preserve the branding plus model evidence. Neither photo should reveal a credential or unique device identifier.
- Paste the redacted front photo into Claude Code.
- Paste the redacted label photo into Claude Code.
- Describe the usual location or time of the Wi-Fi symptom.
- Ask Claude to identify the router model from the redacted evidence.
- Ask Claude to state its confidence in the identification.
- Ask Claude to consult the manufacturer's current documentation for that exact model.
- Ask Claude to create a router model note in ~/wifi-fix containing the identification plus confidence plus documentation consulted.
Why Require Current Documentation?
Router families can share the same casing while using different admin pages or backup procedures. Documentation for the identified model gives Claude a verified route through the interface.
A low-confidence identification is a reason to stop before login. Guesswork cannot support a safe rollback.
You should now see a router model note with the model identification. It should also show Claude's confidence plus the current manufacturer documentation consulted.
Good work. You have identified the router without placing its passwords or unique device details in the conversation.
Store the password privately and log in
The macOS Keychain can store the router password through a private system prompt. A visible Chrome window lets you handle the login yourself.
Keep the Password Private
This is the sensitive part. Your router password stays inside the private macOS prompt or the router login page.
Never enter the password into Claude Code. Never ask Claude to print or retrieve it.
- Ask Claude to inspect the installed security(1) help.
- Approve only the read-only help inspection in Manual mode.
- Ask Claude to provide one security add-generic-password command based on the installed help.
- Require the generated command to include the -a account option.
- Require the generated command to include the -s service option.
- Require the generated command to place -w at the end.
- Review the generated command for any literal password.
Why Put the Password Option Last?
The Apple manual recommends placing -w at the end so macOS prompts for the password. The secret stays out of the visible command.
- Create a separate Terminal window from Terminal's menu bar.
- Run Claude's generated command yourself in that separate window.
- Enter the router password only when macOS prompts for it.
- Confirm that Terminal returns to the shell prompt without an error.
That sensitive step is complete. The generic password item now exists without placing its secret in the Claude transcript.
- Switch back to the Claude Code session from earlier.
- Ask Claude to open the manufacturer-documented router admin page in the visible Chrome window.
- Approve only that browser navigation in Manual mode.
- Choose session-only site access if Chrome requests permission.
- Type the router password yourself when Claude pauses at the login page.
- Submit the router login yourself.
- Tell Claude to stop at the router dashboard without changing any value.
You should see the router dashboard in Chrome. Claude should remain paused while every router setting keeps its original value.
Router Dashboard Not Loading?
- Return to the Chrome status panel from earlier if Claude cannot use the visible browser window.
- Check the manufacturer documentation for the correct admin address if the page does not load.
- Enter the router password manually again if the router rejects the first attempt.
Ask for help without sharing credentials: Help me troubleshoot access to my own router dashboard without asking me to reveal a password.
Back up every current setting
A manufacturer configuration export preserves the router's current configuration when the model supports one. Screenshots provide a readable record of every visible Wi-Fi page.
Backup menus vary between router models. Finding the correct route can be awkward, so use the current manufacturer documentation instead of guessing.
- Ask Claude to locate the manufacturer's current configuration-export instructions for the identified model.
- Review whether the instructions apply to the exact router model.
- Use the documentation to determine whether a configuration export is supported.
✔️ The export is supported
The manufacturer's export becomes the first backup layer. Keep every router setting unchanged while creating it.
- Follow the documented configuration-export procedure in the visible router dashboard.
- Approve only the configuration-export action in Manual mode.
- Save the manufacturer configuration export inside ~/wifi-fix.
You should see the manufacturer export inside ~/wifi-fix. The router should continue using its original settings.
ⓧ The export is not supported
Some routers do not provide a manufacturer configuration export. A complete screenshot inventory plus a manual rollback record becomes the required backup route.
- Ask Claude to record that the current manufacturer documentation provides no configuration export for this model.
- Confirm that every visible Wi-Fi page can be captured in the screenshot inventory.
- Stop if any visible current value cannot be recorded with a manual rollback route.
What Belongs in the Rollback Record?
Each entry pairs one visible Wi-Fi setting with its exact current value. The entry also records the manual route back to that setting.
A value without a route back cannot become a candidate for change. This rule keeps every later experiment reversible.
- Ask Claude to enumerate every visible Wi-Fi configuration page.
- Have Claude visit each listed page in read-only mode.
- Approve each read-only page visit in Manual mode.
- Save a screenshot of each visible Wi-Fi page inside ~/wifi-fix.
- Add every captured page to the screenshot inventory.
- Record every visible current value in the rollback record.
- Record the manual route back to each value in the rollback record.
- Compare the screenshot inventory with the visible Wi-Fi pages for missing coverage.
No Complete Backup Means No Changes
A partial backup cannot support a controlled router experiment. Stop before changing any setting if the manufacturer export or complete manual rollback route cannot be created.
Before you check the backup set, predict whether every visible current value has a route back.
- Return to the ~/wifi-fix workspace in Claude Code.
- Confirm that the router model note records the identification plus confidence plus manufacturer documentation.
- Confirm that the manufacturer configuration export exists when the router supports one.
- Confirm that the screenshot inventory covers every visible Wi-Fi configuration page.
- Confirm that the rollback record lists every visible current value with its manual rollback route.
- Switch back to the router dashboard in Chrome.
- Confirm that every router setting still shows its original value.
You should now have a router model note plus a supported manufacturer export or documented fallback. You should also have a complete screenshot inventory plus a rollback record.
That is the safety foundation in place. The dashboard is accessible while every router setting remains unchanged.
Your router is identified, accessible, and backed up. Next, you will turn its current Wi-Fi settings into a short list of evidence-backed hypotheses.
Create Testable Wi-Fi Hypotheses
Your router's current values are backed up with a documented rollback route. That careful groundwork gives every later experiment a safe way home.
A plausible Wi-Fi setting is only a hypothesis until evidence supports it. This step turns the visible router configuration into a short list of testable candidates.
You will use Claude Code to inspect five setting categories without changing them. Each candidate must earn its place through current guidance plus a verified rollback value.
In this step, get ready to:
- Record five current Wi-Fi setting categories in read-only mode.
- Compare each visible value with current Apple guidance plus exact manufacturer documentation.
- Create a ranked audit containing no more than three reversible candidates.
Freeze the scope before diagnosis
A read-only pass captures the router's current state without disturbing the baseline. The five categories are band, channel, channel width, radio mode, plus transmit power.
- Switch back to the Claude Code session in ~/wifi-fix.
- Tell Claude to use Claude in Chrome to inspect the visible Wi-Fi pages in read-only mode.
- Require Claude to record the currently visible band, channel, channel width, radio mode, plus transmit power.
- Tell Claude to leave security, SSID, Wi-Fi passwords, admin credentials, firmware, reset controls, plus reboot controls untouched.
- Ask Claude to report any unavailable field as unverified.
Claude should return the five visible categories with their current values. The router dashboard should still match the screenshot inventory plus the rollback record.
Build the evidence standard
Each category needs two sources of evidence. Apple's guidance provides a general baseline while the exact manufacturer documentation determines what this router supports.
What does Apple recommend?
- Apple recommends enabling every router-supported band.
- For radio mode, Apple recommends All (preferred).
- For channel selection, Apple recommends Auto.
- For channel width, Apple recommends 20 MHz on 2.4 GHz.
- For channel width on 5 GHz or 6 GHz, Apple recommends Auto or all widths.
Manufacturer guidance controls whether a transmit-power value is eligible. An unsupported transmit-power proposal stays unchanged.
- Ask Claude to compare each recorded value with Apple's current router guidance.
- Require Claude to cite the exact current manufacturer documentation for this router model.
- Require Claude to attach confidence plus evidence to every finding.
- Keep transmit power unchanged unless the manufacturer explicitly documents the proposed value plus its rollback.
- Reject any proposal that lacks support from the exact manufacturer documentation.
You should now see evidence attached to each recorded category. Any unsupported recommendation should be identified as rejected.
Apply the candidate acceptance rules
A useful hypothesis predicts a specific effect from one reversible change. The audit also needs enough detail for you to judge the risk before granting approval in the next step.
Audit acceptance criteria
- The file identifies the audit as read-only.
- The file records band, channel, channel width, radio mode, plus transmit power.
- Every ranked candidate includes confidence, evidence, current value, proposed value, expected effect, connection risk, plus rollback value.
- The ranked list contains no more than three low-risk candidates.
- Any candidate without a verified current value or rollback route is rejected.
The final audit states that no router values have changed.
- Tell Claude to create wifi-audit.md inside ~/wifi-fix using the acceptance criteria above.
- Approve the proposed local file write only after checking every acceptance criterion.
You should now see wifi-audit.md in the workspace.
Before you inspect the final audit, which plausible recommendations do you think survived the evidence plus rollback requirements?
- Ask Claude to display the finished wifi-audit.md without editing it.
- Confirm the file covers all five setting categories.
- Confirm the file cites current Apple guidance.
- Confirm the file cites exact manufacturer documentation.
- Confirm every ranked candidate contains all seven required fields.
- Confirm the ranked list contains no more than three candidates.
- Return to the visible router dashboard from earlier.
- Compare its current values with the rollback record.
You should see a read-only audit with no more than three reversible candidates. Every visible router value should still match its original rollback value.
Strong work. Your router now has an evidence-backed shortlist without sacrificing its known-good starting point.
Your audit has turned router settings into testable hypotheses. Next up, you will measure each approved candidate separately before deciding whether to keep it.
Change, Measure, Keep or Undo
Your read-only wifi-audit.md now ranks the strongest Wi-Fi candidates without changing any router values. A plausible setting still does not prove that it caused the slowdown.
You will use a controlled experiment to test each candidate separately. Claude Code proposes one change at a time. Your speed meter decides whether that change earns a place in the final configuration.
In this step, get ready to:
- Test up to three candidates through separate approval loops.
- Keep only changes that produce a clear same-location improvement.
- Create a report covering every retained or reverted experiment.
Review each candidate before approval
Changing a router setting can feel risky. Your backup plus the recorded rollback route keeps each experiment reversible.
Keep the Safety Boundary
The admin password, Wi-Fi password, SSID, security mode, firmware, reset state, and unsupported transmit-power settings remain unchanged.
A reboot requires separate approval. The existing site permission in Chrome remains session-only.
- Confirm Manual mode remains active in the Claude Code session from earlier.
- Ask Claude to show the first ranked candidate from wifi-audit.md without applying it.
- Check that the proposal shows the setting name, old value, proposed value, evidence, expected effect, connection risk, and exact rollback value.
- Reject the candidate if any required detail or rollback route is missing.
- Save a fresh screenshot of the setting's current page in your screenshot inventory.
- Answer yes only if you want Claude to apply this single setting.
- Watch the visible router page while Claude saves the setting.
- Read the saved value back from the router page.
A no leaves the current value untouched. You can move to the next ranked candidate without measuring the rejected proposal.
- Record the old value, tested value, read-back value, approval outcome, screenshot, and manual rollback value in the rollback record.
Why One Change at a Time?
A controlled experiment changes one variable while the test conditions stay fixed. This gives each measurement one clear cause.
Several simultaneous changes would hide which setting helped. They would also make a clean rollback harder.
That is the risky part contained. Your first approved candidate now has a saved before state plus a verified test state.
Did the Change Fail Safely?
- Use the recorded manual recovery route if the Mac loses its Wi-Fi connection.
- Restore the exact old value immediately.
- Read the restored value back from the router page.
- Mark the candidate as reverted in the rollback record.
Ask for help with a failed router rollback.
Measure each candidate's result
The speed meter turns the candidate's expected effect into evidence. The Mac must stay in the original test location so the router setting remains the only changed variable.
- Return the Mac to the exact location used for the baseline.
- Close any bandwidth-heavy apps that could distort the result.
Before you run the test, ask yourself whether the approved value will beat the baseline.
- Ask Claude Code to run wifi-meter.zsh with a descriptive after-test label that begins with after- plus the setting name.
- Let networkQuality finish its measurement.
- Enter only the displayed download number when the meter prompts you.
You will see the new Mbps result as one large number. wifi-results.csv will contain a new descriptive after-test row.
✔️ The result clearly improved
The measured result is clearly higher without making the reported symptom worse. This candidate has earned its place in the router configuration.
- Keep the tested value on the router.
- Mark the candidate as retained in the rollback record.
- Preserve the original value as the manual rollback value.
ⓧ The result is worse or ambiguous
A worse or unclear result does not support the candidate. Restore the router to its known working state before another experiment.
- Switch back to the visible router dashboard from earlier.
- Restore the exact old value immediately.
- Read the restored value back from the page.
- Mark the candidate as reverted in the rollback record.
One measurement closes one hypothesis. Every later candidate must pass through the same approval, read-back, measurement, and rollback gates.
- Repeat the candidate review for the next ranked item in wifi-audit.md.
- Save a new pre-change screenshot before approval.
- Answer yes separately for this setting.
- Read the saved value back from the router page.
- Return the Mac to the baseline test location.
- Pause before the next meter run to predict whether its result will improve.
- Run the meter with a different descriptive after- label.
- Choose the matching outcome tab again from the measured result.
The experiment ends after the third candidate. Untested settings remain unchanged.
Create the evidence report
A final number needs the experiment history behind it. wifi-report.md connects each CSV measurement to the router value that produced it.
- Ask Claude to create wifi-report.md from wifi-results.csv plus the rollback record.
- Check that the report copies the original baseline from the before row.
- Check that every measured candidate appears with its exact CSV result.
- Check that every candidate is marked as retained or reverted.
- Check that every retained setting includes its original value for manual rollback.
- Check that the report includes manual recovery instructions.
Before the final test, ask yourself whether the retained configuration will preserve the clearest improvement.
- Ask Claude Code to run wifi-meter.zsh from the same location with the label final-same-location.
- Let networkQuality finish its measurement.
- Enter only the displayed download number when prompted.
You will see one large final Mbps value. The final row will be saved in wifi-results.csv.
- Ask Claude to update wifi-report.md with the final same-location result.
- Open wifi-report.md from the existing ~/wifi-fix workspace.
You should see the original Mbps value plus the final Mbps value. You should also see every retained change, every reverted experiment, and every old value required for manual rollback.
Report Missing a Measurement?
- Compare the labels in wifi-results.csv with the candidate entries in wifi-report.md.
- Ask Claude to rebuild the missing report entry from the existing CSV row plus the rollback record.
- Verify that Claude does not invent a measurement for an untested candidate.
Ask for help reconciling the report with the CSV log.
That is the full experiment complete. Your router now contains only changes that earned their place through a measured improvement.
Secret mission
Test the Place That Actually Feels Slow
Your retained router settings improved the controlled test. Now repeat the measurement in the room or time where the original symptom feels worst. The result will show whether the improvement reaches real life or points to a remaining coverage problem.
Clean Up Your Resources
Clean Up Your Resources
Your local files, macOS Keychain item, and router settings have no ongoing storage cost. Decide whether to keep the setup, pause the supervised session, or remove everything you created.
Cost warning
If you purchased Claude Pro only for this project, the plan continues at $20 per month until you cancel it. Applicable tax may be extra.
Each networkQuality test generates network traffic. Frequent repeats can consume metered data.
- Avoid repeating networkQuality tests every few seconds.
- Avoid running more tests on a metered connection.
Resources you used:
- Local ~/wifi-fix folder containing wifi-meter.zsh, wifi-results.csv, wifi-audit.md, wifi-report.md, screenshots, the rollback record, and any manufacturer configuration export.
- One generic password item in macOS Keychain for the router.
- One session-scoped router-site permission in Claude in Chrome for the current browser session.
- Zero to three retained Wi-Fi setting changes that produced measured improvements.
- One Claude Pro subscription if you purchased it for this project.
Keep everything running
No action needed. Choose this if you want to keep the measured configuration and return to your evidence later.
- Your ~/wifi-fix folder keeps the speed log, audit, report, screenshots, backup, and rollback record.
- Your retained router settings continue operating without an active terminal session.
- Your generic password item remains stored in macOS Keychain.
- Your router-site permission remains limited to the current browser session.
- Claude Code and Claude in Chrome remain installed for future supervised diagnostics.
- Your Claude Pro subscription continues at $20 per month until you cancel it.
Pause - I'll come back to this later
A paused setup closes the active session while preserving the evidence needed to return later. Your retained router settings continue operating without Claude Code.
- Exit Claude Code.
- Close the router tab in Google Chrome.
- Keep ~/wifi-fix with its backup, screenshots, rollback record, and reports.
- Leave the retained router settings unchanged.
- Leave the router password item in macOS Keychain for your return.
- Expect your Claude Pro subscription to keep renewing while the setup is paused.
Delete - I don't want to use this again
Deleting the workspace removes your recovery files, so the order matters. You restore the router first while the rollback evidence is still available.
- In the router dashboard from earlier, restore the manufacturer configuration export if one exists.
- Use the rollback record to restore every retained setting to its recorded old value if no export exists.
- Read each restored value back from the visible router page.
- In Claude in Chrome, revoke the router site's permission.
- Delete the router's generic password item in Passwords or Keychain Access.
That's the sensitive cleanup complete. Your router is back on its recorded values with its session access removed.
- Move any report you want to keep out of ~/wifi-fix.
- Exit Claude Code.
- In Finder, delete ~/wifi-fix.
- Confirm the wifi-fix folder no longer appears in your home folder.
- In Claude Settings, cancel Claude Pro if you purchased it only for this project.
Nice Work!
Nice Work!
You did it! You turned Claude Code into a supervised Wi-Fi troubleshooting partner that keeps only changes supported by measurements. Your final report proves what improved while preserving a rollback path.
You've learned how to:
- Built a repeatable speed meter that records comparable before-and-after measurements in a CSV log.
- Created a guarded router workflow that kept credentials out of chat. Backed up the router before touching any setting. Audited five router setting categories against current guidance.
- Ran controlled experiments on no more than three approved settings. Retained only measured improvements. Documented every result with its manual rollback value in wifi-report.md.
- Completed the Secret Mission by measuring the real troublesome room or time. Added a Real symptom check that separates configuration improvement from a likely coverage problem. Recorded a non-configuration experiment when coverage remained weak.
Ready to quiz yourself?