@prnv/tuck 1.5.2 → 1.7.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
@@ -13,13 +13,16 @@
13
13
 
14
14
  [Website](https://tuck.sh) · [Install](#installation) · [Quick Start](#quick-start) · [Commands](#commands)
15
15
 
16
+ <img src="public/tuck_preview.png" alt="tuck preview" width="650">
17
+
16
18
  </div>
17
19
 
18
20
  ---
19
21
 
20
22
  ## Why tuck?
21
23
 
22
- - **One command to rule them all** — `tuck init` scans your system, lets you pick what to track, and syncs to GitHub
24
+ - **One command to rule them all** — `tuck init` scans your system, lets you pick what to track, and syncs to your remote
25
+ - **Multi-provider support** — GitHub, GitLab (including self-hosted), local-only, or any custom git remote
23
26
  - **Smart detection** — Auto-categorizes dotfiles (shell, git, editors, terminal, ssh, etc.)
24
27
  - **Beautiful CLI** — Gorgeous prompts, spinners, and progress bars powered by @clack/prompts
25
28
  - **Safe by default** — Creates backups before every operation, never overwrites without asking
@@ -53,11 +56,12 @@ tuck init
53
56
 
54
57
  That's it! `tuck init` does everything:
55
58
 
56
- 1. Creates `~/.tuck` repository
57
- 2. Scans your system for dotfiles
58
- 3. Lets you select which to track
59
- 4. Creates a GitHub repo (optional)
60
- 5. Commits and pushes
59
+ 1. **Asks where to store** — GitHub, GitLab, local-only, or custom remote
60
+ 2. Creates `~/.tuck` repository
61
+ 3. Scans your system for dotfiles
62
+ 4. Lets you select which to track
63
+ 5. Creates a remote repo (if using GitHub/GitLab)
64
+ 6. Commits and pushes
61
65
 
62
66
  ### Ongoing workflow
63
67
 
@@ -114,10 +118,11 @@ tuck restore --all
114
118
 
115
119
  ### Configuration
116
120
 
117
- | Command | Description |
118
- | -------------------- | ------------------------------- |
119
- | `tuck config` | View/edit configuration |
120
- | `tuck config wizard` | Interactive configuration setup |
121
+ | Command | Description |
122
+ | -------------------- | -------------------------------------------- |
123
+ | `tuck config` | View/edit configuration |
124
+ | `tuck config remote` | Configure git provider (GitHub/GitLab/local) |
125
+ | `tuck config wizard` | Interactive configuration setup |
121
126
 
122
127
  ## How It Works
123
128
 
@@ -146,6 +151,39 @@ tuck stores your dotfiles in `~/.tuck`, organized by category:
146
151
 
147
152
  Run `tuck sync` anytime to detect changes and push. On a new machine, run `tuck apply username` to grab anyone's dotfiles.
148
153
 
154
+ ## Git Providers
155
+
156
+ tuck supports multiple git hosting providers, detected automatically during setup:
157
+
158
+ | Provider | CLI Required | Features |
159
+ |----------|--------------|----------|
160
+ | **GitHub** | `gh` | Auto-create repos, full integration |
161
+ | **GitLab** | `glab` | Auto-create repos, self-hosted support |
162
+ | **Local** | None | No remote sync, local git only |
163
+ | **Custom** | None | Any git URL (Bitbucket, Gitea, etc.) |
164
+
165
+ ### Switching Providers
166
+
167
+ ```bash
168
+ # Change provider anytime
169
+ tuck config remote
170
+
171
+ # Or via interactive config menu
172
+ tuck config
173
+ # → Select "Configure remote"
174
+ ```
175
+
176
+ ### Self-Hosted GitLab
177
+
178
+ tuck supports self-hosted GitLab instances:
179
+
180
+ ```bash
181
+ tuck init
182
+ # → Select GitLab
183
+ # → Select "Self-hosted"
184
+ # → Enter your GitLab host (e.g., gitlab.company.com)
185
+ ```
186
+
149
187
  ## Configuration
150
188
 
151
189
  Configure tuck via `~/.tuck/.tuckrc.json` or `tuck config wizard`:
@@ -159,6 +197,10 @@ Configure tuck via `~/.tuck/.tuckrc.json` or `tuck config wizard`:
159
197
  "files": {
160
198
  "strategy": "copy",
161
199
  "backupOnRestore": true
200
+ },
201
+ "remote": {
202
+ "mode": "github",
203
+ "username": "your-username"
162
204
  }
163
205
  }
164
206
  ```