---
title: "Claude Code Local Machine Config (CLAUDE.local.md)"
aliases: [claude-local-config, claude-local-md, local-config]
tags: [claude-code, config, obsidian, mailgun, vpn, oliver]
sources: [raw/Claude Code Local Config (CLAUDE.local.md).md]
created: 2026-05-15
updated: 2026-05-15
---

# Claude Code Local Machine Config (CLAUDE.local.md)

Local overrides for the global [[wiki/claude-code/global-rules-claude-md|CLAUDE.md]] — machine-specific paths, credentials, and infrastructure details that must not be committed.

---

## Obsidian Vault

**Path:** `~/Library/Mobile Documents/iCloud~md~obsidian/Documents/VadymSamoilenko/`

| Folder | Contents |
|--------|----------|
| `01 Projects/<name>/` | Tech stack, server, deploy command, URL, session notes |
| `wiki/` | Knowledge base: tech patterns, architecture, concepts |
| `02 Areas/` | Pending commands, homelab config |
| `99 Daily/` | Session logs |

See [[wiki/obsidian-rag/_index|obsidian-rag/]] for how Claude Code navigates the vault.

---

## Email — Mailgun

- **Credentials:** `source ~/.secrets/mailgun.env`
- **Base URL:** `https://api.mailgun.net/v3`
- Always add to `.env` / `.env.example` automatically; `.env` always in `.gitignore`

> **Gotcha:** domain must be `mg.oliver.solutions`, **not** `oliver.solutions`.
> Wrong domain → Mailgun returns 404/401 → Python wrapper silently returns `False` → generic 500 error upstream.

---

## Oliver VPN

Must be connected before any SSH or deploy to Oliver servers:
- `optical-dev`, `optical-web-1`, `baic`, `box-cli`, `10.220.168.*`

**Check + auto-connect (Tunnelblick):**

```bash
VPN_STATE=$(osascript -e 'tell application "Tunnelblick" to get state of first configuration where name contains "Oliver"' 2>/dev/null)
[ "$VPN_STATE" != "CONNECTED" ] && osascript -e 'tell application "Tunnelblick" to connect "Oliver VPN"' && sleep 5
```

Run this before any SSH/deploy command targeting Oliver infrastructure. See [[wiki/infrastructure/_index|infrastructure/]] for the full server inventory.

---

## Key Takeaways

- `CLAUDE.local.md` holds machine-specific config that overrides global `CLAUDE.md` — never commit it
- Obsidian vault lives in iCloud at a known path; folder structure is: Projects / wiki / Areas / Daily
- Mailgun domain must be `mg.oliver.solutions` — wrong domain causes silent 404/401 → 500
- Always check Oliver VPN (Tunnelblick) before SSH/deploy to any Oliver server
- The osascript snippet auto-connects Tunnelblick if not already connected

---

## Sources

- `raw/Claude Code Local Config (CLAUDE.local.md).md`
