{"id":30522967,"url":"https://github.com/raghavpillai/branchlet","last_synced_at":"2026-02-24T14:17:31.460Z","repository":{"id":310914245,"uuid":"1041692938","full_name":"raghavpillai/branchlet","owner":"raghavpillai","description":"Branchlet: A simple CLI Git worktree manager","archived":false,"fork":false,"pushed_at":"2026-02-22T19:36:35.000Z","size":356,"stargazers_count":396,"open_issues_count":9,"forks_count":19,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-22T20:36:10.871Z","etag":null,"topics":["claude-code","codegen","cursor","git","vibe-coding","worktrees"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/branchlet","language":"TypeScript","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/raghavpillai.png","metadata":{"files":{"readme":"README.md","changelog":null,"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-08-20T21:52:26.000Z","updated_at":"2026-02-22T19:12:14.000Z","dependencies_parsed_at":"2025-08-21T02:25:32.036Z","dependency_job_id":"ab2d2f3f-a312-4d97-aff4-dc4455645e78","html_url":"https://github.com/raghavpillai/branchlet","commit_stats":null,"previous_names":["raghavpillai/git-worktree-manager","raghavpillai/branchlet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/raghavpillai/branchlet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raghavpillai%2Fbranchlet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raghavpillai%2Fbranchlet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raghavpillai%2Fbranchlet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raghavpillai%2Fbranchlet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raghavpillai","download_url":"https://codeload.github.com/raghavpillai/branchlet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raghavpillai%2Fbranchlet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29785304,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T10:45:18.109Z","status":"ssl_error","status_checked_at":"2026-02-24T10:45:09.911Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["claude-code","codegen","cursor","git","vibe-coding","worktrees"],"created_at":"2025-08-26T19:43:53.051Z","updated_at":"2026-02-24T14:17:31.454Z","avatar_url":"https://github.com/raghavpillai.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# 🌳 Branchlet\n\n[![npm version](https://badge.fury.io/js/branchlet.svg)](https://www.npmjs.com/package/branchlet)\n[![license](https://img.shields.io/npm/l/branchlet.svg)](https://www.npmjs.com/package/branchlet)\n\nA interactive CLI tool for creating and managing Git worktrees with an easy to use interface.\n\n![Branchlet Demo](assets/branchlet-demo.gif)\n\n## Features\n\n- **Quick Commands**: Jump directly to specific actions via command line\n- **Smart Configuration**: Project-specific and global configuration support\n- **File Management**: Automatically copy configuration files to new worktrees\n- **Post-Create Actions**: Run custom commands after worktree creation\n\n## Installation\n\n```bash\nnpm install -g branchlet\n```\n\n## Quick Start\n\nRun Branchlet in any Git repository:\n\n```bash\nbranchlet\n```\n\nThis opens an interactive menu where you can:\n- Create new worktrees\n- List existing worktrees\n- Delete worktrees\n- Configure settings\n\n## Commands\n\n### Interactive Menu (Default)\n```bash\nbranchlet\n```\nOpens the main menu with all available options.\n\n### Direct Commands\n```bash\nbranchlet create    # Go directly to worktree creation\nbranchlet list      # List all worktrees\nbranchlet delete    # Go directly to worktree deletion\nbranchlet settings  # Open settings menu\n```\n\n### Options\n```bash\nbranchlet --help     # Show help information\nbranchlet --version  # Show version number\nbranchlet -m create  # Set initial mode\n```\n\n## Configuration\n\nBranchlet looks for configuration files in this order:\n1. `.branchlet.json` in your repo's root (project-specific)\n2. `~/.branchlet/settings.json` (global configuration)\n\n### Configuration Options\n\nCreate a `.branchlet.json` file in your project root or configure global settings:\n\n```json\n{\n  \"$schema\": \"https://raw.githubusercontent.com/raghavpillai/branchlet/main/schema.json\",\n  \"worktreeCopyPatterns\": [\".env*\", \".vscode/**\"],\n  \"worktreeCopyIgnores\": [\"**/node_modules/**\", \"**/dist/**\", \"**/.git/**\"],\n  \"worktreePathTemplate\": \"$BASE_PATH.worktree\",\n  \"postCreateCmd\": [\"npm install\", \"npm run db:generate\"],\n  \"terminalCommand\": \"code .\",\n  \"deleteBranchWithWorktree\": true\n}\n```\n\n#### Configuration Fields\n\n- **`worktreeCopyPatterns`**: Files/directories to copy to new worktrees (supports glob patterns)\n  - Default: `[\".env*\", \".vscode/**\"]`\n  - Examples: `[\"*.json\", \"config/**\", \".env.local\"]`\n\n- **`worktreeCopyIgnores`**: Files/directories to exclude when copying (supports glob patterns)\n  - Default: `[\"**/node_modules/**\", \"**/dist/**\", \"**/.git/**\", \"**/Thumbs.db\", \"**/.DS_Store\"]`\n\n- **`worktreePathTemplate`**: Template for worktree directory names\n  - Default: `\"$BASE_PATH.worktree\"`\n  - Variables: `$BASE_PATH`, `$WORKTREE_PATH`, `$BRANCH_NAME`, `$SOURCE_BRANCH`\n  - Examples: `\"worktrees/$BRANCH_NAME\"`, `\"$BASE_PATH-branches/$BRANCH_NAME\"`\n\n- **`postCreateCmd`**: Commands to run after creating a worktree. Runs in the new worktree directory.\n  - Default: `[]`\n  - Examples: `[\"npm install\"]`, `[\"pnpm install\", \"pnpm build\"]`\n  - Variables supported in commands: `$BASE_PATH`, `$WORKTREE_PATH`, `$BRANCH_NAME`, `$SOURCE_BRANCH`\n\n- **`terminalCommand`**: Command to open terminal/editor in the new worktree. Runs in the new worktree directory.\n  - Default: `\"\"`\n  - Examples: `\"code .\"`, `\"cursor .\"`, `\"zed .\"`\n\n- **`deleteBranchWithWorktree`**: Whether to also delete the associated git branch when deleting a worktree\n  - Default: `false`\n  - When enabled, deleting a worktree will also delete its branch (with safety checks)\n  - Shows warnings for branches with unpushed commits or uncommitted changes\n\n### Template Variables\n\nAvailable in `worktreePathTemplate`, `postCreateCmd`, and `terminalCommand`:\n\n- `$BASE_PATH`: Base name of your repository\n- `$WORKTREE_PATH`: Full path to the new worktree\n- `$BRANCH_NAME`: Name of the new branch\n- `$SOURCE_BRANCH`: Name of the source branch\n\n## Usage Examples\n\n### Basic Workflow\n\n1. **Navigate to your Git repository**\n   ```bash\n   cd my-project\n   ```\n\n2. **Start Branchlet**\n   ```bash\n   branchlet\n   ```\n\n3. **Create a worktree**\n   - Select \"Create new worktree\"\n   - Enter directory name (e.g., `feature-auth`)\n   - Choose source branch (e.g., `main`)\n   - Enter new branch name (e.g., `feature/authentication`)\n   - Confirm creation\n\n### Project-Specific Configuration\n\nCreate `.branchlet.json` in your project:\n\n```json\n{\n  \"$schema\": \"https://raw.githubusercontent.com/raghavpillai/branchlet/main/schema.json\",\n  \"worktreeCopyPatterns\": [\n    \".env.local\",\n    \".vscode/**\",\n    \"package.json\",\n    \"tsconfig.json\"\n  ],\n  \"worktreePathTemplate\": \"worktrees/$BRANCH_NAME\",\n  \"postCreateCmd\": [\n    \"npm install\",\n    \"npm run db:populate\"\n  ],\n  \"terminalCommand\": \"code .\",\n  \"deleteBranchWithWorktree\": true\n}\n```\n\n## Requirements\n\n- Node.js 20.0.0 or higher\n- Git installed and available in PATH\n- Operating system: macOS, Linux, or Windows\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraghavpillai%2Fbranchlet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraghavpillai%2Fbranchlet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraghavpillai%2Fbranchlet/lists"}