My Zed editor configuration.
~/.config/zed/
├── settings.json # Editor settings
├── update-anthropic-models.py # Sync proxy models into settings.json
├── snippets/ # Custom snippets
└── themes/
└── obsidian-prism.json
Obsidian Prism - a dark theme built on a near-black #080909 base with translucent backgrounds and VS Code–inspired syntax highlighting.
- AI - Claude Opus 4 (thinking) as the default agent model, with Context7 MCP tools auto-allowed
- Appearance - Bar cursor, comfortable project panel spacing, no horizontal scrollbar, Base Charmed Icons
- Privacy - Telemetry fully disabled
Three agent rules in the prompt library:
- Git Commit - Modified built-in rule enforcing Conventional Commits format (
type(scope): Subject), imperative mood, 50-char subject limit, and minimal body usage - Context7 - Caps
maxTokensat 5000 when calling thequery-docsMCP tool to avoid flooding the context window - Writing Style - UK English spelling, no em dashes or emojis, minimal inline comments, and proper documentation standards per language (JSDoc, docstrings, etc.)
update-anthropic-models.py repopulates the Anthropic model picker when Claude is routed through the CLIProxyAPI proxy.
Since zed#56397 Zed discovers Anthropic models by fetching GET {api_url}/v1/models and expects each entry to carry display_name, max_input_tokens and max_tokens. The proxy returns an OpenAI-style list without those fields, so the parse fails and the dropdown is left empty (see zed#56880). Only model discovery breaks; the inference path (/v1/messages) is unaffected.
The script reads the model ids from the proxy and writes a language_models.anthropic.available_models block into settings.json, supplying the context and output token limits from a MODEL_DEFAULTS table at the top of the file. Run it whenever the proxy exposes new models.
python3 update-anthropic-models.py # apply
python3 update-anthropic-models.py --dry-run # preview without writingThe proxy URL is read from the existing api_url in settings.json (override with --base-url; pass --api-key if the proxy needs auth). The generated block is fenced with marker comments, so re-runs replace it in place and leave the rest of the file untouched. A timestamped settings.json.*.bak backup is written before each change and is gitignored.
git clone git@github.com:dcrdev/zed-config.git ~/.config/zed