My personal configuration files for a productive development environment.
| Component | Configuration | Description |
|---|---|---|
| Neovim | nvim/ |
LSP-driven editor with blink.cmp, Telescope, gitsigns, conform.nvim and more |
| WezTerm | wezterm/ |
Terminal with Kanagawa colorscheme, custom pane/tab shortcuts, and IDE layout support |
| Ghostty | ghostty/ |
Terminal with WezTerm-compatible keybindings, Kanagawa theme, and Hack Nerd Font |
| Zsh | zsh/ |
Shell configuration |
| Starship | starship.toml |
Shell prompt configuration |
| Lazygit | lazygit/ |
Terminal UI for Git |
| Mise | mise/ |
Tool version manager configuration |
| Claude Code | claude/ |
Settings, statusline, Discord plugin config |
| Agents | agents/ |
Shared AI agent skills (Claude Code, Copilot, etc.) |
| Nix | nix/ |
Home Manager configuration (packages, programs, GPU support) |
Detailed information for each component can be found in its respective directory.
The following environment variables are required for some aliases to function correctly:
TS_EXIT_NODE: Specifies the exit node for thetsen-oncommand.
CLAUDE_LOCAL_HOST: Host address for the local Claude-compatible API.CLAUDE_LOCAL_PORT: Port number for the local Claude-compatible API.CLAUDE_LOCAL_MODEL: Name of the local model to be used with theclaude-localcommand.
ZAI_TOKEN: API token for theclaude-glmcommand (GLM models via z.ai).
DISCORD_BOT_TOKEN: Bot token for the Claude Code Discord integration. Place in~/.claude/channels/discord/.env(seeclaude/channels/discord/.env.example).
Private environment variables are loaded from ~/.secrets (not tracked by git). Create it manually:
export ZAI_TOKEN=your_token_here
export TS_EXIT_NODE=your_exit_node_here
export CLAUDE_LOCAL_HOST=127.0.0.1
export CLAUDE_LOCAL_PORT=8080
export CLAUDE_LOCAL_MODEL=model-nameApply configuration with Home Manager:
nix run home-manager -- switch --flake ~/dotfiles