- Зачем: - Claude Proxy не запускался при установке Claude из Microsoft Store. - Что: - сохранён прежний запуск обычного claude.exe. - добавлена активация пакетного приложения по AUMID с параметрами прокси. - генератор ярлыка получил поддержку значка из пакета Claude. - Проверка: - обе ветки запуска завершились с кодом 0. - сетевой процесс Claude подключился к 127.0.0.1:12334.
12 KiB
Dotfiles
Персональные конфигурации для Linux/WSL (stow) и Windows (chezmoi).
🚀 Quick start
Linux / WSL
git clone https://github.com/ddmitry/dotfiles ~/dotfiles
cd ~/dotfiles
./install.sh
install.sh применяет stow-пакеты, настраивает Claude/Opencode, подключает ~/.bash_custom в ~/.bashrc и в WSL предлагает настроить hproxy.local.
Windows
winget install --id Microsoft.PowerShell
winget install twpayne.chezmoi
# ⚠️ Перезапустить терминал, чтобы pwsh и chezmoi попали в PATH
chezmoi -S "$HOME\dotfiles\chezmoi" apply
Chezmoi использует отдельный source dir chezmoi/ внутри этого репозитория, не трогая stow/install.sh workflow.
🔧 Требования
Linux / WSL
- Ubuntu / Debian
- GNU stow
- Bash 4.0+, Tmux 2.0+, Vim 8.0+
Windows
- Windows 10/11 + Developer Mode (Settings → System → For developers)
- PowerShell 7.x
- chezmoi
Windows PowerShell 5.1остаётся legacy-режимом совместимости — не форсируется в UTF-8 и не тюнится.
📦 Что включено
Linux / WSL (stow)
| Пакет | Что делает |
|---|---|
bash |
Кастомный prompt, общие функции, подгрузка секретов |
proxy-client |
Переносимый CLI и Bash-команды для явного запуска через прокси |
tmux |
Два префикса (Ctrl+b, Ctrl+Space), vi-режим, split по | / - |
vim |
Минимальный .vimrc без плагинов, 2 пробела, leader = Space |
zed |
Конфигурация Zed редактора |
vscode |
server-env-setup для VS Code Server в WSL: секреты + авто-прокси |
install.sh дополнительно настраивает opencode (симлинки, MCP-конфиг), claude (симлинкает settings.local.json из репозитория) и подключает bash_custom.
Windows (chezmoi)
- PowerShell 7 profile — live-stub в
~/Documents/PowerShell/загружает managed profile из~/.config/powershell/profile.ps1 - Git baseline —
~/.gitconfigс managed настройками,~/.gitconfig.localдля персональных overrides - Windows Terminal — идемпотентный скрипт: PS7 по умолчанию, PS 5.1 как legacy, Azure Cloud Shell скрыт
- WezTerm —
~/.wezterm.luaкак живая ссылка наwezterm/.wezterm.luaв репозитории - UTF-8 —
chcp 65001+Console.InputEncoding/OutputEncodingтолько для pwsh 7, не для PS 5.1 - Codex Proxy shortcut — Start Menu ярлык для запуска Codex GUI с proxy-переменными
- Claude Proxy — ярлык меню «Пуск» для запуска Claude Desktop с переменными прокси
- Extension points —
~/.config/powershell/profile.extra.ps1иprofile.d/*.ps1для локальных добавок
AI-инструменты (кросс-платформа)
Общие скиллы живут в agents/.agents/skills/ и расшариваются через симлинки.
| Инструмент | Что настраивается |
|---|---|
| Agents | Каноничное хранилище скиллов: ~/.agents/skills/<name>/SKILL.md |
| Claude | ~/.claude/skills → симлинк на agents; settings.local.json → симлинк на репозиторий (базовые permissions + statusLine); settings.json — управляется Claude Code |
| Opencode | MCP-серверы (context7, web-reader, playwright и др.), ~/.config/opencode/skills → симлинк на agents |
| Codex | ~/.codex/skills/ → симлинки на agents |
| Gemini | Политики для CLI: pre-approved readonly команды |
⚙️ Настройка
Секреты (.env.secrets)
cp bash/.env.secrets.example ~/.env.secrets
Содержимое — API-ключи для AI-инструментов:
export CONTEXT7_API_KEY="..." # https://context7.com
export ZAI_API_KEY="..." # https://z.ai
Файл подгружается при старте bash и VS Code Server. Не трекается в git.
Прокси (proxy-client)
Linux/Bash-интерфейс proxy-client поддерживает внешний прокси и управляемый
пользовательский Xray. Без машинного конфига используется прежний Hiddify на
hproxy.local:12334; автоматического запуска Xray и переключения между режимами
нет.
Установка, выбор режима, WSL и ежедневное использование
описаны рядом с пакетом. Windows PowerShell и ярлык Codex Proxy сохраняют
прежнюю интеграцию с hproxy.local:12334. Ярлык запускает упакованное
приложение через системный идентификатор и передаёт ему параметры Chromium
--proxy-server и --proxy-bypass-list.
Claude Proxy поддерживает как обычную установку в
%LOCALAPPDATA%\AnthropicClaude, так и пакет из Microsoft Store. В обоих
случаях он передаёт параметры Electron --proxy-server и
--proxy-bypass-list, чтобы прокси применялся ко всему трафику Claude Desktop.
Если Claude уже запущен обычным способом, его нужно полностью закрыть перед
запуском через Claude Proxy.
Git baseline
На всех платформах фиксируются настройки для предсказуемого поведения:
| Ключ | Значение | Зачем |
|---|---|---|
core.autocrlf |
false |
Не переписывать line endings |
core.eol |
lf |
Дефолт ближе к Linux/macOS |
core.quotepath |
false |
Кириллица в путях читаема |
core.longpaths |
true |
Длинные пути на Windows |
fetch.prune |
true |
Убирать удалённые ветки |
pull.ff |
only |
Защита от случайных merge commit |
init.defaultBranch |
main |
— |
Персональные настройки (user.name, user.email, core.editor, core.sshCommand) живут в ~/.gitconfig.local.
На Windows chezmoi при первом apply мигрирует существующий ~/.gitconfig в ~/.gitconfig.local и подставляет managed baseline. На Linux baseline задаётся вручную или через скрипты.
Проверка: git config --global --includes --list --show-origin.
Для кроссплатформенных репозиториев рекомендуется .gitattributes:
* text=auto eol=lf
*.bat text eol=crlf
*.cmd text eol=crlf
📖 Справочник
Bash-функции (~/.config/proxy-client/shell.bash)
| Функция | Описание |
|---|---|
proxy_on |
Проверяет настроенный прокси и атомарно включает восемь переменных |
proxy_off |
Очищает proxy-переменные |
pclaude / pcodex |
Запуск Claude/Codex CLI через прокси с fail-fast pre-flight |
myip |
Показывает текущий внешний IP |
update_hproxy |
Остаётся в ~/.bash_functions и обновляет WSL NAT-алиас |
PowerShell-функции (~/.config/powershell/profile.ps1)
| Функция | Описание |
|---|---|
proxy_on |
Включает HTTP/HTTPS/SOCKS5 прокси через hproxy.local:12334 |
proxy_off |
Очищает proxy-переменные |
pclaude / pcodex |
Запуск Claude/Codex CLI через прокси с fail-fast pre-flight |
myip |
Показывает текущий внешний IP |
Reload-Profile |
Перечитывает профиль без перезапуска сессии |
which |
Get-Command -All по имени |
touch |
Создаёт файл или обновляет LastWriteTime |
mkcd |
Создаёт директорию и переходит в неё |
open |
Invoke-Item — открывает путь |
croot |
Переходит в корень текущего Git-репозитория |
wt-here |
Новое окно Windows Terminal в текущей директории |
wt-tab-here |
Новая вкладка в текущей директории |
wt-split-here |
Split-pane в текущей директории |
Точки расширения
| Файл | Назначение |
|---|---|
~/.env.secrets |
API-ключи, подгружается bash и VS Code Server |
~/.bash_aliases |
Персональные алиасы bash |
~/.gitconfig.local |
Персональные Git-настройки (user.name, core.editor и т.д.) |
~/.local/bin/start-claude-proxy.ps1 |
Скрипт запуска Claude Desktop для Windows с переменными прокси и параметрами Electron |
~/.local/bin/start-codex-proxy.ps1 |
Запуск Codex для Windows через системный идентификатор с параметрами прокси |
~/.config/powershell/profile.extra.ps1 |
Локальные дополнения к pwsh-профилю |
~/.config/powershell/profile.d/*.ps1 |
Фрагменты, загружаемые по алфавиту |
~/.claude/settings.json |
Управляется Claude Code: model, effortLevel, «always allow» permissions |
💡 Дизайн-решения
Почему stow на Linux + chezmoi на Windows?
stow проще и покрывает весь Linux/WSL workflow. chezmoi нужен на Windows, где stow недоступен и нужны run-скрипты (миграция .gitconfig, настройка Windows Terminal). Два инструмента живут рядом и не мешают друг другу: chezmoi использует отдельный source dir chezmoi/, а .chezmoiignore исключает Linux-файлы на Windows.
Почему Windows PowerShell 5.1 не трогается?
Форсирование UTF-8 и изменение профиля PS 5.1 может сломать старые скрипты, .bat/.cmd и консольные утилиты. PS 7 — основной shell, PS 5.1 — режим совместимости.
Почему Claude settings.local.json — симлинк, а settings.json — нет?
Claude Code перезаписывает settings.json при каждом «always allow» — этот файл принадлежит Claude Code. Базовые permissions и statusLine живут в settings.local.json, который Claude Code только читает и мержит с settings.json. Симлинк из ~/.claude/settings.local.json на файл в репозитории безопасен. Машинно-специфичные настройки (model, effortLevel) — в settings.json, управляются через Claude Code.