[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5727":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":36,"lastSyncTime":37,"discoverSource":38},5727,"worktrunk","max-sixty\u002Fworktrunk","max-sixty","Worktrunk is a CLI for Git worktree management, designed for parallel AI agent workflows","https:\u002F\u002Fworktrunk.dev",null,"Rust",5412,183,8,29,0,13,78,373,59,37.79,"Other",false,"main",true,[27,28,29,30,31,32],"agents","claude-code","codex","developer-tools","git","worktrees","2026-06-12 02:01:14","\u003C!-- markdownlint-disable MD033 -->\n\n\u003Ch1>\u003Cimg src=\"docs\u002Fstatic\u002Flogo.png\" alt=\"Worktrunk logo\" width=\"50\" align=\"absmiddle\">&nbsp;&nbsp;Worktrunk\u003C\u002Fh1>\n\n[![Docs](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-worktrunk.dev-blue?style=for-the-badge&logo=gitbook)](https:\u002F\u002Fworktrunk.dev)\n[![Crates.io](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fworktrunk?style=for-the-badge&logo=rust)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Fworktrunk)\n[![License: MIT OR Apache-2.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT%20OR%20Apache--2.0-blue?style=for-the-badge)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![CI](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fmax-sixty\u002Fworktrunk\u002Fci.yaml?event=push&branch=main&style=for-the-badge&logo=github)](https:\u002F\u002Fgithub.com\u002Fmax-sixty\u002Fworktrunk\u002Factions?query=branch%3Amain+workflow%3Aci)\n[![Codecov](https:\u002F\u002Fimg.shields.io\u002Fcodecov\u002Fc\u002Fgithub\u002Fmax-sixty\u002Fworktrunk?style=for-the-badge&logo=codecov)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fmax-sixty\u002Fworktrunk)\n[![Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fmax-sixty\u002Fworktrunk?style=for-the-badge&logo=github)](https:\u002F\u002Fgithub.com\u002Fmax-sixty\u002Fworktrunk\u002Fstargazers)\n[![maintained with tend](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fmaintained_with-tend-bba580?style=for-the-badge&logo=data:image\u002Fsvg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwxNikgc2NhbGUoMC4wMTI1LC0wLjAxMjUpIiBmaWxsPSIjZmZmIiBzdHJva2U9Im5vbmUiPjxwYXRoIGQ9Ik02ODAgMTEyOCBjNjIgLTk2IDY5IC0xNzggMjAgLTI0MSAtMTcgLTIyIC0yMCAtNDAgLTIwIC0xMzQgbDEgLTEwOCAyMSAyOCBjMTEgMTYgMzAgNDcgNDIgNzAgMTIgMjIgMzIgNDkgNDYgNTkgMzcgMjcgMTE0IDM4IDE4NCAyNyA5MyAtMTUgOTQgLTE4IDQ0IC03OSAtNzIgLTg4IC0xMDkgLTExMyAtMTc2IC0xMTcgLTMxIC0yIC02NCAxIC03MiA2IC0yMyAxNSAyMSA1NiAxMDcgOTggNDAgMjAgNzEgMzggNjkgNDAgLTYgNyAtODggLTE3IC0xMjYgLTM3IC00OSAtMjUgLTEwMCAtNzggLTEyMSAtMTI1IC0xNSAtMzMgLTE5IC02NiAtMTkgLTE4OCAwIC0xNTcgOCAtMTk1IDUwIC0yMzIgMTcgLTE2IDM2IC0yMCA4NSAtMTkgNjIgMSA2MyAxIDczIC0zMiA5IC0zMiA5IC0zMyAtMjIgLTQwIC01MCAtMTIgLTEzMiAtNyAtMTY0IDEwIC00MCAyMSAtNzkgNjkgLTkyIDExNCAtNSAyMCAtMTAgMTAyIC0xMCAxODIgMCA4MCAtNSAxNjIgLTExIDE4NCAtMjIgNzkgLTEzNSAxNjYgLTIzNCAxODEgLTM3IDYgLTM1IDMgMzAgLTI4IDc4IC0zOSAxNDQgLTkxIDEzMiAtMTA0IC01IC00IC0zNyAtOCAtNzEgLTggLTc3IDAgLTExNyAyNCAtMTgyIDEwOSAtNTIgNjggLTUxIDcwIDQyIDg1IDcxIDExIDE0MyAwIDE4MyAtMjkgMTYgLTExIDQwIC00MyA1NCAtNzMgMTMgLTI5IDMyIC01OSA0MSAtNjYgMTQgLTEyIDE2IC03IDE2IDU4IDAgNTkgNCA3NyAyMyAxMDIgMTkgMjYgMjMgNDYgMjUgMTMwIDMgNjcgMCA5OSAtNyA5OSAtNyAwIC0xMSAtMjMgLTEyIC01NyAwIC0zMiAtNiAtNzYgLTEyIC05NyBsLTEyIC00MCAtMjcgMzIgYy0zNCA0MSAtNDMgOTYgLTI0IDE1MSAxNCA0MSA3NSAxNDEgODYgMTQxIDMgMCAyMSAtMjQgNDAgLTUyeiIvPjwvZz48L3N2Zz4K)](https:\u002F\u002Fgithub.com\u002Fmax-sixty\u002Ftend)\n\n> **May 2026**: Worktrunk was [released](https:\u002F\u002Fx.com\u002Fmax_sixty\u002Fstatus\u002F2006077845391724739?s=20) at the start of the year, and has quickly become the most popular git worktree manager. It's built with love (there's no slop!). Please let me know any frictions at all; I'm intensely focused on continuing to make Worktrunk excellent, and the biggest help is folks posting problems they perceive.\n\nWorktrunk is a CLI for git worktree management, designed for running AI agents in parallel.\n\nWorktrunk's three core commands make worktrees as easy as branches. Plus, Worktrunk has a bunch of quality-of-life features to simplify working with many parallel changes, including hooks to automate local workflows.\n\nA quick demo:\n\n![Worktrunk Demo](https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fmax-sixty\u002Fworktrunk-assets@main\u002Fassets\u002Fdocs\u002Flight\u002Fwt-core.gif)\n\n> ### 📚 Full documentation at [worktrunk.dev](https:\u002F\u002Fworktrunk.dev) 📚\n\n\u003C!-- ⚠️ AUTO-GENERATED from docs\u002Fcontent\u002Fworktrunk.md#context-git-worktrees..worktrunk-makes-git-worktrees-as-easy-as-branches — edit source to update -->\n\n## Context: git worktrees\n\nAI agents like Claude Code and Codex can handle longer tasks without\nsupervision, such that it's possible to manage 5-10+ in parallel. Git's native\nworktree feature give each agent its own working directory, so they don't step\non each other's changes.\n\nBut the git worktree UX is clunky. Even a task as small as starting a new\nworktree requires typing the branch name three times: `git worktree add -b feat\n..\u002Frepo.feat`, then `cd ..\u002Frepo.feat`.\n\n## Worktrunk makes git worktrees as easy as branches\n\nWorktrees are addressed by branch name; paths are computed from a configurable template.\n\n> Start with the core commands\n\n**Core commands:**\n\n\u003Ctable class=\"cmd-compare\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth>Task\u003C\u002Fth>\n      \u003Cth>Worktrunk\u003C\u002Fth>\n      \u003Cth>Plain git\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>Switch worktrees\u003C\u002Ftd>\n      \u003Ctd>\u003Cpre>wt switch feat\u003C\u002Fpre>\u003C\u002Ftd>\n      \u003Ctd>\u003Cpre>cd ..\u002Frepo.feat\u003C\u002Fpre>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>Create + start Claude\u003C\u002Ftd>\n      \u003Ctd>\u003Cpre>wt switch -c -x claude feat\u003C\u002Fpre>\u003C\u002Ftd>\n      \u003Ctd>\u003Cpre>git worktree add -b feat ..\u002Frepo.feat && \\\ncd ..\u002Frepo.feat && \\\nclaude\u003C\u002Fpre>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>Clean up\u003C\u002Ftd>\n      \u003Ctd>\u003Cpre>wt remove\u003C\u002Fpre>\u003C\u002Ftd>\n      \u003Ctd>\u003Cpre>cd ..\u002Frepo && \\\ngit worktree remove ..\u002Frepo.feat && \\\ngit branch -d feat\u003C\u002Fpre>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>List with status\u003C\u002Ftd>\n      \u003Ctd>\u003Cpre>wt list\u003C\u002Fpre>\u003C\u002Ftd>\n      \u003Ctd>\u003Cpre>git worktree list\u003C\u002Fpre> (paths only)\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n> Expand into the more advanced commands as needed\n\n**Workflow automation:**\n\n- **[Hooks](https:\u002F\u002Fworktrunk.dev\u002Fhook\u002F)** — run commands on create, pre-merge, post-merge, etc\n- **[LLM commit messages](https:\u002F\u002Fworktrunk.dev\u002Fllm-commits\u002F)** — generate commit messages from diffs\n- **[Merge workflow](https:\u002F\u002Fworktrunk.dev\u002Fmerge\u002F)** — squash, rebase, merge, clean up in one command\n- **[Interactive picker](https:\u002F\u002Fworktrunk.dev\u002Fswitch\u002F#interactive-picker)** — browse worktrees with live diff and log previews\n- **[Copy build caches](https:\u002F\u002Fworktrunk.dev\u002Fstep\u002F#wt-step-copy-ignored)** — skip cold starts by sharing `target\u002F`, `node_modules\u002F`, etc between worktrees\n- **[`wt list --full`](https:\u002F\u002Fworktrunk.dev\u002Flist\u002F#full-mode)** — [CI status](https:\u002F\u002Fworktrunk.dev\u002Flist\u002F#ci-status) and [AI-generated summaries](https:\u002F\u002Fworktrunk.dev\u002Flist\u002F#llm-summaries) per branch\n- **[PR checkout](https:\u002F\u002Fworktrunk.dev\u002Fswitch\u002F#pull-requests-and-merge-requests)** — `wt switch pr:123` to jump straight to a PR's branch\n- **[Dev server per worktree](https:\u002F\u002Fworktrunk.dev\u002Ftips-patterns\u002F#dev-server-per-worktree)** — `hash_port` template filter gives each worktree a unique port\n- **[Aliases](https:\u002F\u002Fworktrunk.dev\u002Fextending\u002F#aliases) & [per-branch variables](https:\u002F\u002Fworktrunk.dev\u002Fconfig\u002F#wt-config-state-vars)** — custom `wt \u003Cname>` commands and branch-scoped state for hook templates\n- ...and **[lots more](#next-steps)**\n\nMultiple parallel agents, same simple commands:\n\n![Worktrunk omnibus demo: multiple Claude agents in Zellij tabs with hooks, LLM commits, and merge workflow](https:\u002F\u002Fraw.githubusercontent.com\u002Fmax-sixty\u002Fworktrunk-assets\u002Fmain\u002Fassets\u002Fdocs\u002Flight\u002Fwt-zellij-omnibus.gif)\n\n\u003C!-- END AUTO-GENERATED -->\n\n\u003C!-- ⚠️ AUTO-GENERATED from docs\u002Fcontent\u002Fworktrunk.md#install..further-reading — edit source to update -->\n\n## Install\n\n**Homebrew (macOS & Linux):**\n\n```bash\nbrew install worktrunk && wt config shell install\n```\n\nShell integration allows commands to change directories.\n\n**Cargo:**\n\n```bash\ncargo install worktrunk && wt config shell install\n```\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Windows & other\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n**Windows.** `wt` defaults to Windows Terminal's command, so Winget additionally installs Worktrunk as `git-wt` to avoid the conflict:\n\n```bash\nwinget install max-sixty.worktrunk\ngit-wt config shell install\n```\n\nAlternatively, disable Windows Terminal's alias (Settings → Privacy & security → For developers → App Execution Aliases → disable \"Windows Terminal\") to use `wt` directly.\n\n**Arch Linux:**\n\n```bash\nsudo pacman -S worktrunk && wt config shell install\n```\n\n**Conda \u002F Pixi** (community-maintained [feedstock](https:\u002F\u002Fgithub.com\u002Fconda-forge\u002Fworktrunk-feedstock)):\n\n```bash\nconda install -c conda-forge worktrunk && wt config shell install\n```\n\nOr with [Pixi](https:\u002F\u002Fpixi.sh): `pixi global install worktrunk && wt config shell install`.\n\n\u003C\u002Fdetails>\n\n## Quick start\n\nCreate a worktree for a new feature:\n\n```console\n$ wt switch --create feature-auth\n✓ Created branch feature-auth from main and worktree @ ~\u002Frepo.feature-auth\n\n```\n\nThis creates a new branch and worktree, then switches to it. Do your work, then check all worktrees with [`wt list`](https:\u002F\u002Fworktrunk.dev\u002Flist\u002F):\n\n```console\n$ wt list\n  Branch        Status        HEAD±    main↕  Remote⇅  Commit    Age   Message\n@ feature-auth  +   ↑      +27   -8   ↑1               4bc72dc9  2h    Add authentication module\n^ main              ^⇡                         ⇡1      0e631add  1d    Initial commit\n\n○ Showing 2 worktrees, 1 with changes, 1 ahead, 1 column hidden\n\n```\n\nThe `@` marks the current worktree. `+` means staged changes, `↑1` means 1 commit ahead of main, `⇡` means unpushed commits.\n\nWhen done, either:\n\n**PR workflow** — commit, push, open a PR, merge via GitHub\u002FGitLab, then clean up:\n\n```bash\nwt step commit                    # commit staged changes\ngh pr create                      # or glab mr create\nwt remove                         # after PR is merged\n```\n\n**Local merge** — squash, rebase onto main, fast-forward merge, clean up:\n\n```console\n$ wt merge main\n◎ Generating commit message and committing changes... (2 files, +53, no squashing needed)\n  Add authentication module\n✓ Committed changes @ a1b2c3d\n◎ Merging 1 commit to main @ a1b2c3d (no rebase needed)\n  * a1b2c3d Add authentication module\n   auth.rs | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++\n   lib.rs  |  2 ++\n   2 files changed, 53 insertions(+)\n✓ Merged to main (1 commit, 2 files, +53)\n◎ Removing feature-auth worktree & branch in background (same commit as main, _)\n○ Switched to worktree for main @ ~\u002Frepo\n\n```\n\nFor parallel agents, create multiple worktrees and launch an agent in each:\n\n```bash\nwt switch -x claude -c feature-a -- 'Add user authentication'\nwt switch -x claude -c feature-b -- 'Fix the pagination bug'\nwt switch -x claude -c feature-c -- 'Write tests for the API'\n```\n\nThe `-x` flag runs a command after switching; arguments after `--` are passed to it. Configure [post-start hooks](https:\u002F\u002Fworktrunk.dev\u002Fhook\u002F#hook-types) to automate setup (install deps, start dev servers).\n\n## Next steps\n\n- Learn the core commands: [`wt switch`](https:\u002F\u002Fworktrunk.dev\u002Fswitch\u002F), [`wt list`](https:\u002F\u002Fworktrunk.dev\u002Flist\u002F), [`wt merge`](https:\u002F\u002Fworktrunk.dev\u002Fmerge\u002F), [`wt remove`](https:\u002F\u002Fworktrunk.dev\u002Fremove\u002F)\n- Set up [hooks](https:\u002F\u002Fworktrunk.dev\u002Fhook\u002F) for automated setup\n- Explore [LLM commit messages](https:\u002F\u002Fworktrunk.dev\u002Fllm-commits\u002F), [interactive\n  picker](https:\u002F\u002Fworktrunk.dev\u002Fswitch\u002F#interactive-picker), [Claude Code integration](https:\u002F\u002Fworktrunk.dev\u002Fclaude-code\u002F), [CI\n  status & PR links](https:\u002F\u002Fworktrunk.dev\u002Flist\u002F#ci-status)\n- Browse [tips & patterns](https:\u002F\u002Fworktrunk.dev\u002Ftips-patterns\u002F) for recipes: aliases, dev servers, databases, agent handoffs, and more\n- [Extending Worktrunk](https:\u002F\u002Fworktrunk.dev\u002Fextending\u002F) — customize workflows with hooks & aliases\n- Run `wt --help` or `wt \u003Ccommand> --help` for quick CLI reference\n\n## Further reading\n\n- [Claude Code: Best practices for agentic coding](https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fclaude-code-best-practices) — Anthropic's official guide, including the worktree pattern\n- [Shipping faster with Claude Code and Git Worktrees](https:\u002F\u002Fincident.io\u002Fblog\u002Fshipping-faster-with-claude-code-and-git-worktrees) — incident.io's workflow for parallel agents\n- [Git worktree pattern discussion](https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fissues\u002F1052) — Community discussion in the Claude Code repo\n- [@DevOpsToolbox's video on Worktrunk](https:\u002F\u002Fyoutu.be\u002FWBQiqr6LevQ?t=345)\n- [git-worktree documentation](https:\u002F\u002Fgit-scm.com\u002Fdocs\u002Fgit-worktree) — Official git reference\n\n\u003C!-- END AUTO-GENERATED -->\n\n## Contributing\n\n- ⭐ Star the repo\n- Tell a friend about Worktrunk\n- [Open an issue](https:\u002F\u002Fgithub.com\u002Fmax-sixty\u002Fworktrunk\u002Fissues\u002Fnew?title=&body=%23%23%20Description%0A%0A%3C!--%20Describe%20the%20bug%20or%20feature%20request%20--%3E%0A%0A%23%23%20Context%0A%0A%3C!--%20Any%20relevant%20context%3A%20your%20workflow%2C%20what%20you%20were%20trying%20to%20do%2C%20etc.%20--%3E) — feedback, feature requests, even a small friction or imperfect user message, or [a worktree pain not yet solved](https:\u002F\u002Fgithub.com\u002Fmax-sixty\u002Fworktrunk\u002Fissues\u002Fnew?title=Worktree%20friction%3A%20&body=%23%23%20The%20friction%0A%0A%3C!--%20What%20worktree-related%20task%20is%20still%20painful%3F%20--%3E%0A%0A%23%23%20Current%20workaround%0A%0A%3C!--%20How%20do%20you%20handle%20this%20today%3F%20--%3E%0A%0A%23%23%20Ideal%20solution%0A%0A%3C!--%20What%20would%20make%20this%20easier%3F%20--%3E)\n- Share: [X](https:\u002F\u002Ftwitter.com\u002Fintent\u002Ftweet?text=Worktrunk%20%E2%80%94%20CLI%20for%20git%20worktree%20management&url=https%3A%2F%2Fworktrunk.dev) · [Reddit](https:\u002F\u002Fwww.reddit.com\u002Fsubmit?url=https%3A%2F%2Fworktrunk.dev&title=Worktrunk%20%E2%80%94%20CLI%20for%20git%20worktree%20management) · [LinkedIn](https:\u002F\u002Fwww.linkedin.com\u002Fsharing\u002Fshare-offsite\u002F?url=https%3A%2F%2Fworktrunk.dev)\n\n> ### 📚 Full documentation at [worktrunk.dev](https:\u002F\u002Fworktrunk.dev) 📚\n\n### Star history\n\n\u003Ca href=\"https:\u002F\u002Fstar-history.com\u002F#max-sixty\u002Fworktrunk&Date\">\n  \u003Cimg src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=max-sixty\u002Fworktrunk&type=Date\" width=\"500\" alt=\"Star History Chart\">\n\u003C\u002Fa>\n","Worktrunk 是一个用于 Git 工作树管理的命令行工具，专为并行 AI 代理工作流设计。它采用 Rust 语言编写，提供了高效且安全的多任务处理能力。核心功能包括简化复杂的工作树操作、支持多个独立的开发分支在同一仓库中并行运行。此外，Worktrunk 还具有良好的集成性和可扩展性，适用于需要频繁切换和管理多个开发环境的场景，尤其是对于使用 AI 代理进行自动化测试或持续集成的团队来说，是一个理想的工具。",2,"2026-06-11 03:04:54","top_language"]