@ogpoyraz/wtx 0.8.10 → 0.9.2

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
@@ -1,25 +1,21 @@
1
1
  # wtx
2
2
 
3
- Multi-repo git worktree manager built for parallel development — human or AI.
3
+ [![npm version](https://img.shields.io/npm/v/@ogpoyraz/wtx.svg)](https://www.npmjs.com/package/@ogpoyraz/wtx)
4
+ [![license](https://img.shields.io/npm/l/@ogpoyraz/wtx.svg)](https://github.com/OGPoyraz/wtx/blob/main/LICENSE)
5
+ [![CI status](https://github.com/OGPoyraz/wtx/actions/workflows/ci.yml/badge.svg)](https://github.com/OGPoyraz/wtx/actions)
6
+ [![downloads](https://img.shields.io/npm/dm/@ogpoyraz/wtx.svg)](https://www.npmjs.com/package/@ogpoyraz/wtx)
7
+ [![platform](https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey.svg)](#)
4
8
 
5
- Create isolated worktrees across every repo you maintain, with working dependencies, synced env files, deterministic ports, and one-command hand-off to coding agents like Claude Code, Codex, OpenCode, or Cursor.
9
+ <!-- DEMO GIF: owner-provided. Drop the file at demo/wtx.gif and this will render. -->
10
+ ![wtx demo](demo/wtx.gif)
6
11
 
7
- ```
8
- $ wtx create feat/auth --agent claude
9
-
10
- my-api
11
- ◌ Fetching origin/main...
12
- ✓ Worktree created → ~/Repos/my-api-wt/feat/auth
13
- ✓ Synced .env
14
- ✓ Safely linked 214 packages
15
- ✓ Done — agent spawned in tmux session wtx-my-api-feat-auth
16
- ```
12
+ `wtx` is a multi-repo git worktree manager with a TUI terminal dashboard built for parallel development. It creates isolated environments across every repository you maintain, ensuring working dependencies, synced `.env` files, and deterministic ports with a single command.
17
13
 
18
14
  ---
19
15
 
20
16
  ## Why not plain `git worktree`?
21
17
 
22
- `git worktree add` gives you a directory no dependencies, no `.env`, no port-conflict solution, no cleanup discipline. Every wrapper solves one slice.
18
+ `git worktree add` gives you a directory—no dependencies, no environment, and no port conflict management.
23
19
 
24
20
  | | git worktree | single-repo managers | wtx |
25
21
  |---|---|---|---|
@@ -28,8 +24,9 @@ $ wtx create feat/auth --agent claude
28
24
  | `.env` sync from main | manual | some | ✓ |
29
25
  | Parallel dev-server ports | collide | – | deterministic `{port}` |
30
26
  | Safe removal (dirty guards) | none | varies | boundary-checked |
31
- | Spawn coding agents | – | some | ✓ tmux-aware |
32
- | MCP server for agents | – | – | ✓ |
27
+ | Workspace management | – | | ✓ symlinked groups |
28
+
29
+ ---
33
30
 
34
31
  ## Installation
35
32
 
@@ -280,14 +277,11 @@ $ wtx prs
280
277
 
281
278
  Every PR gets one ranked display state (`CONFLICTED`, `CI_FAILING`, `CHANGES_REQUESTED`, ...). Merged and closed PRs surface in `wtx ls --pr` and `wtx status`, so stale worktrees are recognizable at a glance.
282
279
 
283
- ```bash
284
- wtx pull https://github.com/OGPoyraz/wtx/pull/11 # PR → worktree in one command
285
- wtx prune # remove worktrees whose PR merged
286
- ```
287
-
288
280
  Lookups degrade gracefully: if `gh` is missing or unauthenticated you get a warning and everything else keeps working. Fork workflows are covered by `check_prs` / `forge_provider` / `pr_lookup_repo`.
289
281
 
290
- ### Stacked branches
282
+ ---
283
+
284
+ ## Stacked branches
291
285
 
292
286
  Worktrees remain sibling directories on disk, while their branches can form a dependency stack:
293
287
 
@@ -306,39 +300,62 @@ Stack metadata is stored under the repository's common Git directory and is not
306
300
 
307
301
  ---
308
302
 
309
- ## Terminal dashboard
303
+ ## Interactive Dashboard
310
304
 
305
+ Launch the TUI with `wtx terminal` (requires [Bun](https://bun.sh)). Navigation never locks, and actions run in the background.
311
306
  `wtx terminal` opens a full-screen dashboard across all configured repos (requires the [Bun](https://bun.sh) runtime).
312
307
 
313
308
  | Key | Action |
314
309
  |---|---|
315
- | `/` | Fuzzy-filter entries by branch, repo, PR, owner |
310
+ | `↑/↓, k/j` | Navigate the worktree list |
311
+ | `/` | Fuzzy-filter by branch, repo, PR, or owner |
316
312
  | `Space` | Multi-select for batch operations |
317
- | `R` / `D` / `s` | Batch rebase / remove / sync selection |
318
- | `p` | Pull latest changes for selected branch(es) |
319
- | `i` | Install dependencies in selected worktree(s) |
320
- | `n` | Create worktree pick a dependency strategy (auto / install / symlink) |
321
- | `m` | Rename worktree (branch + directory move) |
322
- | `b` | Rebase selected |
323
- | `a` | Spawn coding agent in selected worktree |
324
- | `H` | Action history (recent actions across CLI and dashboard) |
325
- | `o` | Open in IDE |
326
- | `c` | Edit configuration |
327
- | `?` / `q` | Help / quit |
328
-
329
- Actions run in the background — navigation never locks. Progress shows inline: `fetching`, `pulling`, `installing deps`, `renaming`, etc. next to the repo or branch being worked on, and a new worktree appears immediately as a `(creating)` row. Repositories render alphabetically and stay sorted across create/delete operations. While data loads, repos appear immediately with a `refreshing…` indicator. One operation runs per repo at a time; conflicting actions are rejected with a toast until it finishes. On failure a log modal opens with the captured output; press any key to dismiss. Destructive ones confirm first.
330
-
331
- If a rebase hits conflicts, the worktree is restored: the in-progress rebase is aborted automatically, the branch stays on its pre-rebase commits, and a "Rebase failed — manual merge needed" log explains what happened.
313
+ | `p / i / b` | Pull latest / Install deps / Rebase selection |
314
+ | `n / d / m` | Create new / Remove / Rename worktree |
315
+ | `s / Tab` | Sync env files + hooks / Cycle changes scope |
316
+ | `t / T` | New terminal session / Cycle theme presets |
317
+ | `F / W` | Pin repo to favorites / Filter by workspace scope |
318
+ | `o / c` | Open in IDE / Edit configuration |
319
+ | `? / H` | Help overlay / Action history |
320
+
321
+ ---
322
+
323
+ ## CLI Quick Start
324
+
325
+ ```bash
326
+ # Create a worktree across repos (deps + sync_files handled)
327
+ wtx create feat/auth --repo my-api --repo my-frontend
328
+
329
+ # Pull a GitHub PR into a fresh worktree
330
+ wtx pull https://github.com/owner/repo/pull/123
331
+
332
+ # Rebase onto the recorded base (or main)
333
+ wtx rebase feat/auth
334
+
335
+ # Safe removal—refuses dirty trees unless --force is used
336
+ wtx remove feat/auth
337
+ ```
332
338
 
333
339
  ---
334
340
 
335
- ## Scripting
341
+ ## Features
336
342
 
337
- Machine-readable output where it matters: `wtx ls --json`, `wtx status <branch> --json`, `wtx deps <branch> --json`, `wtx prs --json`. Combine with `-q` to suppress progress lines, and preview anything destructive with `--dry-run` — including planned deletions and hook commands.
343
+ - **Dependency Syncing**: Smart adapters for npm, bun, pnpm, yarn, Go, Python, and Cargo. [Read more](docs/configuration.md#dependency-syncing)
344
+ - **Stacked Branches**: Record local parent/child relationships for rebasing. [Read more](docs/cli.md#stacked-branches)
345
+ - **Port Isolation**: Deterministic `{port}` mapping to prevent dev-server collisions. [Read more](docs/configuration.md#template-variables)
346
+ - **Workspace Scope**: Group related worktrees from different repos into logical workspaces. [Read more](docs/workspaces.md)
347
+ - **Terminal Sessions**: Embedded PTYs with tab management and LRU mounting. [Read more](docs/terminal.md)
348
+ - **AI Readiness**: Native MCP server and skill files for coding agents. [Read more](docs/agents.md)
349
+
350
+ ---
338
351
 
339
- ### Action history
352
+ ## Documentation
340
353
 
341
- Mutating commands (`create`, `remove`, `rebase`, `sync`, `pull`, ...) are recorded to `~/.local/state/wtx/history.jsonl`whether you ran them from your shell or from inside `wtx terminal` (entries are tagged with their source). Inspect with `wtx history --limit 50 --json --source terminal`, or press `H` in the dashboard. The file rotates automatically at ~5 MB, keeping the newest entries.
354
+ - [CLI Reference](docs/cli.md)All commands and flags
355
+ - [Configuration](docs/configuration.md) — schema, hooks, and template variables
356
+ - [Terminal Dashboard](docs/terminal.md) — TUI guide and customization
357
+ - [Workspaces](docs/workspaces.md) — Managing multi-repo groups
358
+ - [AI Agents](docs/agents.md) — Using wtx with Claude Code, Cursor, and OpenCode
342
359
 
343
360
  ---
344
361