@prnv/tuck 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -27,22 +27,26 @@
27
27
  - **Beautiful CLI** — Gorgeous prompts, spinners, and progress bars powered by @clack/prompts
28
28
  - **Safe by default** — Creates backups before every operation, never overwrites without asking
29
29
  - **Git-native** — Uses Git under the hood but hides the complexity
30
- - **Cross-platform** — Works on macOS and Linux
30
+ - **Cross-platform** — Works on macOS, Linux, and Windows
31
31
 
32
32
  ## Installation
33
33
 
34
34
  ```bash
35
- # npm
35
+ # npm (all platforms)
36
36
  npm install -g @prnv/tuck
37
37
 
38
- # Homebrew (macOS/Linux)
39
- brew install prnv/tap/tuck
38
+ # Homebrew (macOS/Linux) - coming soon
39
+ brew install pranav-karra-3301/tap/tuck
40
40
 
41
- # pnpm
41
+ # pnpm (all platforms)
42
42
  pnpm add -g @prnv/tuck
43
43
 
44
- # yarn
44
+ # yarn (all platforms)
45
45
  yarn global add @prnv/tuck
46
+
47
+ # Windows (PowerShell)
48
+ npm install -g @prnv/tuck
49
+ # Or download the binary from GitHub Releases
46
50
  ```
47
51
 
48
52
  ## Quick Start
@@ -210,6 +214,40 @@ Configure tuck via `~/.tuck/.tuckrc.json` or `tuck config wizard`:
210
214
  - **copy** (default) — Files are copied. Run `tuck sync` to update the repo.
211
215
  - **symlink** — Files are symlinked. Changes are instant but require more care.
212
216
 
217
+ ## Windows Support
218
+
219
+ tuck fully supports Windows with platform-specific handling:
220
+
221
+ ### Detected Windows Dotfiles
222
+
223
+ | Category | Files |
224
+ |----------|-------|
225
+ | **Shell** | PowerShell profiles (`Microsoft.PowerShell_profile.ps1`) |
226
+ | **Terminal** | Windows Terminal settings, ConEmu/Cmder configs |
227
+ | **Editors** | VS Code, Cursor, Neovim (in `%LOCALAPPDATA%`) |
228
+ | **Git** | `.gitconfig`, `.gitignore_global` |
229
+ | **SSH** | SSH config in `%USERPROFILE%\.ssh` |
230
+ | **Misc** | WSL config (`.wslconfig`), Docker, Kubernetes |
231
+
232
+ ### Windows-Specific Behavior
233
+
234
+ - **Symlinks**: On Windows, tuck uses directory junctions (don't require admin privileges) or falls back to copying files
235
+ - **Permissions**: Unix-style file permissions (chmod) don't apply on Windows; tuck handles this gracefully
236
+ - **Paths**: Windows environment variables (`%APPDATA%`, `%LOCALAPPDATA%`, `%USERPROFILE%`) are automatically expanded
237
+ - **Hooks**: tuck uses PowerShell Core (`pwsh`) or Windows PowerShell for hook execution
238
+
239
+ ### PowerShell Profile Merging
240
+
241
+ tuck supports smart merging for PowerShell profiles with preserve markers:
242
+
243
+ ```powershell
244
+ # In your PowerShell profile, mark local-only sections:
245
+ <# tuck:preserve #>
246
+ # Machine-specific aliases
247
+ Set-Alias code "C:\Program Files\Microsoft VS Code\Code.exe"
248
+ <# /tuck:preserve #>
249
+ ```
250
+
213
251
  ## Security
214
252
 
215
253
  tuck is designed with security in mind: