@heyitsiveen/dotfiles

中文文档
2.1.1发布于 2026/11/01MITES Module构建来源已验证

Interactive CLI to set up dotfiles for macOS and Windows 11

原始使用文档
文档目录12 节
  1. Table of Contents
  2. Quick Start
  3. Prerequisites
  4. Tools
  5. What's Included
  6. macOS
  7. Windows
  8. Color Themes
  9. CLI Flags
  10. How It Works
  11. Development
  12. License

heyitsiveen

Interactive CLI to set up dotfiles for macOS and Windows 11. One command to install, theme, backup, and manage your development environment.

Demo

Table of Contents

Quick Start

pnpm dlx @heyitsiveen/dotfiles@latest

Or with other package runners:

npx @heyitsiveen/dotfiles@latest
bunx @heyitsiveen/dotfiles@latest
yarn dlx @heyitsiveen/dotfiles@latest

This CLI modifies your home directory. It writes to ~/.config/ (Fish config on macOS) or PowerShell profile (Windows), and other tool-specific paths. Existing configs are backed up to ~/.config/heyitsiveen/dotfiles/backup/ before any overwrite. Preview with --dry-run first. Undo with --restore or --uninstall.

Prerequisites

PrerequisiteWhyInstall
Node.js >= 22Running the CLIpnpm runtime set node lts -g, brew install node, or nodejs.org
Nerd FontIcons in Tide, oh-my-posh, Neovimnerdfonts.com (recommended: JetBrains Mono NF)
Homebrew (macOS) / winget (Windows)Installing toolsbrew.sh / pre-installed on Windows 11

Tools

The CLI automatically detects all tools and offers to install missing ones via Homebrew (macOS) or winget (Windows).

Required (core tools for the dotfiles):

ToolmacOSWindows
Gitbrew install gitwinget install Git.Git
Fish Shell / PowerShellbrew install fishwinget install Microsoft.PowerShell
Ghostty / WezTermbrew install --cask ghosttywinget install wez.wezterm
Neovimbrew install neovimwinget install Neovim.Neovim
tree-sitter-clibrew install tree-sitter-clipnpm add -g tree-sitter-cli (or npm i -g tree-sitter-cli)
C compilerxcode-select --installVS Build Tools

Note: tree-sitter-cli and a C compiler are only needed if you install Neovim. LazyVim uses them to compile syntax parsers. macOS usually has the C compiler pre-installed via Xcode Command Line Tools.

Optional (enhance the experience):

ToolmacOSWindows
tmuxbrew install tmuxN/A
batbrew install batwinget install sharkdp.bat
btopbrew install btopwinget install aristocratos.btop4win
ripgrepbrew install ripgrepwinget install BurntSushi.ripgrep.MSVC
fdbrew install fdwinget install sharkdp.fd
ezabrew install ezawinget install eza-community.eza
fastfetchbrew install fastfetchwinget install Fastfetch-cli.Fastfetch
oh-my-poshN/Awinget install JanDeDobbeleer.OhMyPosh

What's Included

macOS

ToolDescription
Fish Shellconfig.fish, 9 conf.d modules, 8 functions, 3 Tide palette themes
GhosttyTerminal emulator with JetBrains Mono, 0.9 opacity, 3 themes
WezTermCross-platform terminal with Solarized/Vercel/Vesper color schemes
tmux7 config files (main, keybinds, statusbar, pane, notifications, popup)
NeovimLazyVim with solarized-osaka, Snacks, Mason (oxfmt + oxlint), conform
batConfig + Vercel/Vesper custom .tmTheme themes
btopSystem monitor + 3 theme files
ripgrepSmart-case, hidden files, common excludes
Claude Code6 MCP servers, CLAUDE.md, settings

Windows

ToolDescription
PowerShellProfile, 5 modules, 3 functions
oh-my-posh3 TOML prompt themes (Solarized, Vercel, Vesper)
WezTermWindows-adapted config with tab bar
NeovimLazyVim (same config as macOS)
batConfig + custom themes
btopSystem monitor + 3 theme files
ripgrepSearch config
Claude Code6 MCP servers, CLAUDE.md, settings

⚠️ Claude Code configs are the author's personal setup. settings.json enables specific plugins, sets effortLevel: xhigh, advisorModel: opus, and skips dangerous-mode permission prompts. .claude.json wires three MCP servers (exa, grep, better-auth). CLAUDE.md is the author's 13-rule instruction set. If you prefer defaults, deselect "Claude Code" when the CLI asks which configs to install — or replace the files in ~/.claude/ after install.

Color Themes

Three themes are available across all tools:

ThemeStyle
Solarized DarkWarm, low-contrast dark theme (default)
VercelMinimal, high-contrast dark theme
VesperSoft, warm dark theme with orange accents

Switch themes instantly across all installed tools:

pnpm dlx @heyitsiveen/dotfiles --theme vercel
pnpm dlx @heyitsiveen/dotfiles --theme vesper
pnpm dlx @heyitsiveen/dotfiles --theme solarized-dark

CLI Flags

FlagDescription
--platform <macos|windows>Skip OS detection
--dry-runShow planned operations without writing files
--theme <name>Switch theme: solarized-dark, vercel, vesper
--restoreRestore from backup
--uninstallRemove installed dotfiles
--versionShow version
--helpShow usage

How It Works

  1. Detects your OS (macOS or Windows)
  2. Checks for missing tools and offers to install them (brew/winget)
  3. Shows available dotfile configurations
  4. You select which configs to install
  5. You pick a color theme
  6. Backs up existing dotfiles (optional — Neovim backups include LazyVim plugin data)
  7. Copies configs to the right locations
  8. Activates your chosen theme across all tools
  9. Checks for updates and notifies you if a new version is available

Subsequent runs detect the existing installation and offer:

  • Fresh install — backup + overwrite
  • Update — apply changes from a new package version
  • Change theme — switch colors across all tools
  • Uninstall — remove configs, uninstall tools (brew/winget), or both
  • Restore — restore from per-tool timestamped backups

Development

This repo uses pnpm. See docs/pnpm-setup.md if you don't have it — you don't need Node installed first, pnpm brings its own.

# Install dependencies (Node is fetched automatically per devEngines.runtime)
pnpm install

# Build
pnpm run build

# Run locally
node dist/index.mjs

# Run all checks (typecheck + lint + format)
pnpm run check

# Previously (replaced by pnpm — kept for reference):
# npm install && npm run build && npm run check
# bun install && bun run build && bun run check

Pre-commit hooks are set up via husky + lint-staged. Every git commit automatically:

  1. Formats staged .ts files with oxfmt
  2. Lints staged .ts files with oxlint
  3. Typechecks the project with tsc

License

MIT

版本与发布记录

@heyitsiveen/dotfiles 共发布 28 个版本,首次发布于 2026/04/16;过去 12 个月发布了 28 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.1.1latest2026/11/012 天前
2.1.02026/10/0727 天前
2.0.32026/09/191 个月前
2.0.22026/08/062 个月前
2.0.12026/08/042 个月前
2.0.02026/07/263 个月前

关于 @heyitsiveen/dotfiles 的常见问题

@heyitsiveen/dotfiles 是什么?

交互式命令行设置macOS和Windows 11的dotfiles

如何安装 @heyitsiveen/dotfiles?

在项目目录运行 npm install @heyitsiveen/dotfiles,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 heyitsiveen-dotfiles,可以用 npx heyitsiveen-dotfiles 直接运行。

@heyitsiveen/dotfiles 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/heyitsiveen__dotfiles 是否存在。

@heyitsiveen/dotfiles 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@heyitsiveen/dotfiles 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@heyitsiveen/dotfiles 可以商用吗?

@heyitsiveen/dotfiles 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@heyitsiveen/dotfiles 还在维护吗?

最新版本 2.1.1 发布于 2026/11/01(2 天前);至今共发布 28 个版本,其中过去 12 个月发布了 28 个;首次发布于 2026/04/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。