{"id":31628219,"url":"https://github.com/ozankasikci/rust-git-worktree","last_synced_at":"2025-10-06T20:20:25.493Z","repository":{"id":316660460,"uuid":"1064344401","full_name":"ozankasikci/rust-git-worktree","owner":"ozankasikci","description":"A cli application written in rust in order make working with git worktrees easier.","archived":false,"fork":false,"pushed_at":"2025-10-05T01:14:56.000Z","size":1577,"stargazers_count":19,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-05T03:32:14.919Z","etag":null,"topics":["cli","git","git-worktree","rust","terminal","worktree"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ozankasikci.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-25T22:37:01.000Z","updated_at":"2025-10-05T01:14:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"84178a2f-d225-47a6-99d1-1370f8182301","html_url":"https://github.com/ozankasikci/rust-git-worktree","commit_stats":null,"previous_names":["ozankasikci/rust-git-worktree"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/ozankasikci/rust-git-worktree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozankasikci%2Frust-git-worktree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozankasikci%2Frust-git-worktree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozankasikci%2Frust-git-worktree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozankasikci%2Frust-git-worktree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ozankasikci","download_url":"https://codeload.github.com/ozankasikci/rust-git-worktree/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozankasikci%2Frust-git-worktree/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278672261,"owners_count":26025872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","git","git-worktree","rust","terminal","worktree"],"created_at":"2025-10-06T20:20:24.368Z","updated_at":"2025-10-06T20:20:25.481Z","avatar_url":"https://github.com/ozankasikci.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rsworktree\n\n[![Codecov](https://codecov.io/gh/ozankasikci/rust-git-worktree/branch/master/graph/badge.svg)](https://codecov.io/gh/ozankasikci/rust-git-worktree)\n\n`rsworktree` is a Rust CLI for managing Git worktrees in a single repo-local directory (`.rsworktree`). It provides a focused, ergonomic workflow for creating, jumping into, listing, and removing worktrees without leaving the terminal.\n\n## Table of Contents\n\n- [Interactive mode](#interactive-mode)\n- [CLI commands](#cli-commands)\n  - [`rsworktree create`](#rsworktree-create)\n  - [`rsworktree cd`](#rsworktree-cd)\n  - [`rsworktree ls`](#rsworktree-ls)\n  - [`rsworktree rm`](#rsworktree-rm)\n  - [`rsworktree pr-github`](#rsworktree-pr-github)\n  - [`rsworktree merge-pr-github`](#rsworktree-merge-pr-github)\n- [Installation](#installation)\n- [Environment](#environment)\n\n## Interactive mode\n\n- Open a terminal UI for browsing worktrees, focusing actions, and inspecting details without memorizing subcommands.\n- Launch it with the `interactive` command: `rsworktree interactive` (shortcut: `rsworktree i`).\n- Available actions include opening worktrees, removing them, creating PRs, and merging PRs without leaving the TUI.\n- The merge flow lets you decide whether to keep the local branch, delete the remote branch, and clean up the worktree before exiting.\n- ![Interactive mode screenshot](tapes/gifs/interactive-mode.gif)\n\n## CLI commands\n\n### `rsworktree create`\n\n- Create a new worktree under `.rsworktree/\u003cname\u003e`. Also changes directory to the worktree.\n- Demo: ![Create demo](tapes/gifs/create.gif)\n- Options:\n  - `--base \u003cbranch\u003e` — branch from `\u003cbranch\u003e` instead of the current git branch.\n\n### `rsworktree cd`\n\n- Spawn an interactive shell rooted in the named worktree.\n- Demo: ![CD demo](tapes/gifs/cd.gif)\n- Options:\n  - `--print` — write the worktree path to stdout without spawning a shell.\n\n### `rsworktree ls`\n\n- List all worktrees tracked under `.rsworktree`, showing nested worktree paths.\n- Demo: ![List demo](tapes/gifs/ls.gif)\n- Options:\n  - _(none)_\n\n### `rsworktree rm`\n\n- Remove the named worktree.\n- Demo: ![Remove demo](tapes/gifs/rm.gif)\n- Options:\n  - `--force` — force removal, mirroring `git worktree remove --force`.\n\n### `rsworktree pr-github`\n\n- Push the worktree branch and invoke `gh pr create` for the current or named worktree.\n- Demo: ![PR demo](tapes/gifs/pr_github.gif)\n- Requires the [GitHub CLI](https://cli.github.com/) (`gh`) to be installed and on your `PATH`.\n- Options:\n  - `\u003cname\u003e` — optional explicit worktree to operate on; defaults to the current directory.\n  - `--remove` — delete the remote branch after a successful merge.\n  - `--no-push` — skip pushing the branch before creating the PR.\n  - `--draft` — open the PR in draft mode.\n  - `--fill` — let `gh pr create` auto-populate PR metadata.\n  - `--web` — open the PR creation flow in a browser instead of filling via CLI.\n  - `--reviewer \u003clogin\u003e` — add one or more reviewers by GitHub login.\n  - `-- \u003cextra gh args\u003e` — pass additional arguments through to `gh pr create`.\n\n### `rsworktree merge-pr-github`\n\n- Merge the open GitHub pull request for the current or named worktree using `gh pr merge`.\n- Demo: ![Merge PR demo](tapes/gifs/merge_pr_github.gif)\n- Requires the [GitHub CLI](https://cli.github.com/) (`gh`) to be installed and on your `PATH`.\n- Options:\n  - `\u003cname\u003e` — optional explicit worktree to operate on; defaults to the current directory.\n\n## Installation\n\nInstall from crates.io with:\n\n```bash\ncargo install rsworktree\n```\n\nOn macOS you can install via Homebrew:\n\n```bash\nbrew tap ozankasikci/tap\nbrew install rsworktree\n```\n\nAfter the binary is on your `PATH`, run `rsworktree --help` to explore the available commands.\n\n## Environment\n\nSet `RSWORKTREE_SHELL` to override the shell used by `rsworktree cd` (falls back to `$SHELL` or `/bin/sh`).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozankasikci%2Frust-git-worktree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fozankasikci%2Frust-git-worktree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozankasikci%2Frust-git-worktree/lists"}