LZLZL/AI toolchain/Local · Setup
FREEShallow · Start here A · Localsetup

Claude Code:
install to first real edit

2026-08-21 · Four config layers, three gates, one classic trap

One job here: a Claude Code that can edit your own project, and knowing exactly where its permission boundary and config file are. Page 8 repoints it at a different endpoint using these same locations.

In this pageinstall, auth, config layers, the usual failures. Not in this pagemy own config or what it connects to.

1Two faces, one config

CLIVS Code extension
InstallStandalone CLI; run claude in any terminalExtensions view, search Claude Code (anthropic.claude-code), or Open VSX
RequiresVS Code 1.94.0 or newer
Sign-inA paid Claude subscription or a Console account. No API key needed
ConfigBoth read ~/.claude/settings.json — this matters, see §4

The extension bundles its own CLI for the chat panel. To type claude in the integrated terminal you still need the standalone install — two separate things. The same extension installs into VS Code forks, which gives Cursor users a second route (page 4).

2Where config lives: strict order

LayerLocationPurpose
1 ManagedSystem location (managed-settings.json, plist, registry)Org policy. Nothing below overrides it
2 CLI argsAt launchBeats the files
3 Local.claude/settings.local.jsonYour per-project overrides. Gitignore it
4 Project.claude/settings.jsonShared with the team, committed
5 User~/.claude/settings.jsonYour default everywhere

Three keys matter: model, env, permissions.

Permissions merge. Everything else overrides

A deny added at the project layer applies even if the user layer says nothing. But a model at the project layer silences the one in your user file. Two different behaviours. /status shows what is actually live.

3Set the gates before you start using it

"permissions": { "allow": ["Bash(npm run lint)"], "deny": ["Bash(curl *)", "Read(./.env)"] }

Write deny first, and only two kinds of rule:

DenyWhy
Reading secret files (.env, key directories)Once in context it can end up elsewhere. This is the common leak path
Commands that can send data outReading in is survivable. Reading in and sending out is not. Block them separately

Do not front-load allow. Use it for a week, then promote the handful you approve daily. A long allow list on day one is the gate removed.

4The trap that costs an afternoon

An editor launched from its icon does not inherit your shell environment

You export a variable in ~/.zshrc, echo confirms it in the terminal, and the editor acts as if you set nothing — still prompting to sign in, still on the default endpoint.

The cause is not your config: GUI-launched processes do not inherit a login shell. The documented fix is to start the editor from a terminal with code ..

The sturdier answer is to stop relying on environment variables. Put what you need in the env block of settings.json — a file reads the same regardless of how the app started. Page 8 leans on this.

Second trap: not every change takes effect immediately

Most settings reload on save. model and output style need a restart. "I changed it and nothing happened" is usually this.

5First run: pick a project you can afford to break

Not the main repo. Pick something in git, that runs, and that nobody else depends on. The first condition is the one that matters — version control is your undo, and without it "let it edit freely" is working without a net.

Then give it a task with an objective outcome: a reproducible bug, a missing test, an error to make disappear. An objective test is what lets it close its own loop — the point of page 1.

Config layers and keys ~/.claude/settings.json, .claude/settings.json, .claude/settings.local.json, managed layer; keys model / env / permissions (with allow / ask / deny). Precedence: managed > CLI > local > project > user; permissions merge, other settings override. Official settings docs, checked 2026-08-21.
Extension anthropic.claude-code, requires VS Code 1.94.0+, also on Open VSX; extension and CLI share ~/.claude/settings.json.
Environment inheritance The official docs state the code . case explicitly.
Limits This moves fast; key names and defaults can change. Run /status before trusting anything here.
Not in this page My own settings, endpoint or machine.

RelatedRead next

A · Local
Codex: install, config, dividing the work
A · Local
Into the editor: two routes, two prices
A · Local
Project memory that actually gets followed
B · Access
Four clients, four places to put the endpoint
An educational and engineering record — not a review or endorsement of any third-party product. Commands, config keys, prices and terms are per each vendor's official docs; this page states when it was checked and all of them can change without notice — verify before you copy anything. Self-hosting is your own responsibility: keys, accounts and data are on you.