During a weekly performance marketing call on 2026-04-01, the team attempted to set up Claude Code (Anthropic's agentic CLI tool) to automate Google Ads fixes — specifically correcting destination URL misconfigurations in the Reynolds Transfer account. The session surfaced a persistent connection failure traced to a local Windows process conflict, not a cloud-side issue. This article documents the setup procedure, the failure modes encountered, and the resolution path.
Attendees: Gilbert Barrongo, Sebastian Gant, Karly Oykhman, Mark Hope (Asymmetric)
Related client issue: [1] — ad destination URL misconfiguration
Claude Code must be launched from the correct project directory. Launching from the wrong directory causes it to lose context about available tools and credentials.
cd workspace
claude --dangerously-skip-permissions
The --dangerously-skip-permissions flag bypasses interactive approval prompts for tool use. This flag must be used every session. If omitted, Claude will prompt for approval on each action and may exit bypass mode unexpectedly.
Credentials are stored in a CSV file (Website credentials.csv) that must be placed in the /local subdirectory of the workspace:
workspace/local/ directoryClaude will scan the CSV and locate the target account (e.g., Reynolds Transfer is on line 33).
clod.md)Claude Code persists learned context in a memory file called clod.md. On a fresh or misconfigured instance, this file may be missing key instructions about available packages and API access patterns.
During this session, Mark provided two blocks of instructional code (transferred from his own Claude Code instance) for Gilbert to paste directly into the Claude prompt. Claude then wrote these to clod.md automatically.
To trigger a memory update:
1. Paste the instruction block into the Claude prompt
2. Tell Claude: "Add that to the clod.md file"
3. Exit (/exit) and relaunch with the --dangerously-skip-permissions flag so Claude re-reads the updated memory on startup
Note: Memory updates do not take effect in the current session. A full exit and relaunch is required.
Symptom: Claude attempted to verify Google Ads API access via SSH and returned a key error, blocking login.
What happened: Claude defaulted to an SSH-based authentication method rather than the Python/REST API path. The SSH key was not configured on Gilbert's machine.
Resolution attempted: Mark provided a memory block instructing Claude to use the Python API path instead of SSH. After the memory update and relaunch, Claude switched to Python — which is the correct approach.
Symptom: Even after memory updates, Claude repeatedly attempted to install Python packages that did not exist in the environment, producing red error text and failing to progress.
Root cause diagnosis: Claude's memory file was not being read correctly on relaunch, causing it to revert to a state where it didn't know which packages were already available. This was compounded by a suspected local Windows process conflict interfering with Claude's ability to connect to its cloud backend.
Key distinction: Claude Code itself runs in the cloud — the local machine is only a terminal interface. A local process conflict can still block the cloud connection even though the heavy computation is remote.
Symptom: After one restart, Claude began prompting for tool-use approval again, indicating --dangerously-skip-permissions was no longer active.
Cause: The flag must be re-applied every time Claude is launched. It does not persist between sessions.
After checking Task Manager for conflicting bash or mintty processes (none found), Mark concluded the most likely cause was a stale or conflicting Windows process preventing Claude from establishing its cloud connection — not a misconfiguration of the memory file or credentials.
This type of issue is typically resolved by a full Windows reboot, which clears any lingering process state.
workspace/ with --dangerously-skip-permissions