{"id":13459307,"url":"https://github.com/mfaerevaag/wd","last_synced_at":"2025-05-15T14:06:07.957Z","repository":{"id":10966100,"uuid":"13280758","full_name":"mfaerevaag/wd","owner":"mfaerevaag","description":":rocket: Jump to custom directories in zsh","archived":false,"fork":false,"pushed_at":"2025-04-23T10:51:52.000Z","size":293,"stargazers_count":710,"open_issues_count":8,"forks_count":46,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-23T11:37:08.972Z","etag":null,"topics":["productivity","shell","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/mfaerevaag.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}},"created_at":"2013-10-02T19:33:48.000Z","updated_at":"2025-04-23T10:51:55.000Z","dependencies_parsed_at":"2024-05-08T20:24:31.613Z","dependency_job_id":"5a7265a4-a7a8-42cb-a4e9-05643e362ff8","html_url":"https://github.com/mfaerevaag/wd","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfaerevaag%2Fwd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfaerevaag%2Fwd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfaerevaag%2Fwd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfaerevaag%2Fwd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mfaerevaag","download_url":"https://codeload.github.com/mfaerevaag/wd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254355335,"owners_count":22057354,"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","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":["productivity","shell","zsh"],"created_at":"2024-07-31T09:01:15.171Z","updated_at":"2025-05-15T14:06:02.945Z","avatar_url":"https://github.com/mfaerevaag.png","language":"Shell","funding_links":[],"categories":["Shell","Plugins"],"sub_categories":["ZSH on Windows","Zinit (née zplugin)"],"readme":"# wd\n\n[![Build Status](https://github.com/mfaerevaag/wd/actions/workflows/test.yml/badge.svg)](https://github.com/mfaerevaag/wd/actions)\n\n`wd` (*warp directory*) lets you jump to custom directories in zsh, without using `cd`.\nWhy?\nBecause `cd` seems inefficient when the folder is frequently visited or has a long path.\n\n![Demo](https://raw.githubusercontent.com/mfaerevaag/wd/master/tty.gif)\n\n## Setup\n\n### [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh)\n\n`wd` comes bundled with oh-my-zsh!\n\nJust add the plugin in your `.zshrc` file:\n\n```zsh\nplugins=(... wd)\n```\n\n### [Antigen](https://github.com/zsh-users/antigen)\n\nIn your `.zshrc`:\n\n```zsh\nantigen bundle mfaerevaag/wd\n```\n\n### [Antibody](https://github.com/getantibody/antibody)\n\nIn your `.zshrc`:\n\n```zsh\nantibody bundle mfaerevaag/wd\n```\n\n### [Fig](https://fig.io)\n\nInstall `wd` here: [![Fig plugin store](https://fig.io/badges/install-with-fig.svg)](https://fig.io/plugins/other/wd_mfaerevaag)\n\n### Arch ([AUR](https://aur.archlinux.org/packages/zsh-plugin-wd-git/))\n\n1. Install from the AUR\n\n```zsh\nyay -S zsh-plugin-wd-git\n# or use any other AUR helper\n```\n\n2. Then add to your `.zshrc`:\n\n```zsh\nwd() {\n    . /usr/share/wd/wd.sh\n}\n```\n\n### [Home Manager](https://github.com/nix-community/home-manager)\n\nAdd the following to your `home.nix` then run `home-manager switch`:\n\n```nix\nprograms.zsh.plugins = [\n  {\n    name = \"wd\";\n    src = pkgs.fetchFromGitHub {\n      owner = \"mfaerevaag\";\n      repo = \"wd\";\n      rev = \"v0.5.2\";\n      sha256 = \"sha256-4yJ1qhqhNULbQmt6Z9G22gURfDLe30uV1ascbzqgdhg=\";\n    };\n  }\n];\n```\n\n### [zplug](https://github.com/zplug/zplug)\n\n```zsh\nzplug \"mfaerevaag/wd\", as:command, use:\"wd.sh\", hook-load:\"wd() { . $ZPLUG_REPOS/mfaerevaag/wd/wd.sh }\"\n```\n\n### Automatic\n\n_Note: automatic install does not provide the manpage. It is also poor security practice to run remote code without first reviewing it, so you ought to look [here](https://github.com/mfaerevaag/wd/blob/master/install.sh)_\n\nRun either command in your terminal:\n\n```zsh\ncurl -L https://github.com/mfaerevaag/wd/raw/master/install.sh | sh\n```\n\nor\n\n```zsh\nwget --no-check-certificate https://github.com/mfaerevaag/wd/raw/master/install.sh -O - | sh\n```\n\n### Manual\n\n1. Clone this repository on your local machine in a sensible location (if you know what you're doing of course all of this is up to you):\n\n```zsh\ngit clone git@github.com:mfaerevaag/wd.git ~/.local/wd --depth 1\n```\n\n2. Add `wd` function to `.zshrc` (or `.profile` etc.):\n\n```zsh\nwd() {\n    . ~/.local/wd/wd.sh\n}\n```\n\n3. Install manpage (optional):\n\nMove manpage into an appropriate directory, then trigger `mandb` to discover it\n\n```zsh\nsudo install -m 644 ~/.local/wd/wd.1 /usr/share/man/man1/wd.1\nsudo mandb /usr/share/man/man1\n```\n\n**Note:** when pulling and updating `wd`, you'll need to repeat step 3 should the manpage change\n\n## Completion\n\nIf you're NOT using [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) and you want to utilize the zsh-completion feature, you will also need to add the path to your `wd` installation (`~/bin/wd` if you used the automatic installer) to your `fpath`.\nE.g. in your `~/.zshrc`:\n\n```zsh\nfpath=(~/path/to/wd $fpath)\n```\n\nAlso, you may have to force a rebuild of `zcompdump` by running:\n\n```zsh\nrm -f ~/.zcompdump; compinit\n```\n\n## Browse\n\n`wd` comes with an `fzf`-powered browse feature to fuzzy search through all your warp points. It's available through the `wd browse` command. For quick access you can set up an alias or keybind in your `.zshrc`:\n\n```zsh\n# ctrl-b to open the fzf browser\nbindkey ${FZF_WD_BINDKEY:-'^B'} wd_browse_widget\n```\n\n## Usage\n\n* Add warp point to current working directory:\n\n```zsh\nwd add foo\n```\n\nIf a warp point with the same name exists, use `wd add foo --force` to overwrite it.\n\n**Note:** a warp point cannot contain colons, or consist of only spaces and dots.\nThe first will conflict in how `wd` stores the warp points, and the second will conflict with other features, as below.\n\n* Add warp point to any directory with default name:\n\n```zsh\nwd addcd /foo/ bar\n```\n\n* Add warp point to any directory with a custom name:\n\n```zsh\nwd addcd /foo/\n```\n\n\nYou can omit point name to automatically use the current directory's name instead.\n\n* From any directory, warp to `foo` with:\n\n```zsh\nwd foo\n```\n\n* You can also warp to a directory within `foo`, with autocompletion:\n\n```zsh\nwd foo some/inner/path\n```\n\n* You can warp back to previous directory and higher, with this dot syntax:\n\n```zsh\nwd ..\nwd ...\n```\n\nThis is a wrapper for the zsh's `dirs` function.  \n_You might need to add `setopt AUTO_PUSHD` to your `.zshrc` if you are not using [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh)._\n\n* Remove warp point:\n\n```zsh\nwd rm foo\n```\n\nYou can omit point name to use the current directory's name instead.\n\n* List all warp points (stored in `~/.warprc` by default):\n\n```zsh\nwd list\n```\n\n* List files in given warp point:\n\n```zsh\nwd ls foo\n```\n\n* Show path of given warp point:\n\n```zsh\nwd path foo\n```\n\n* List warp points to current directory, or optionally, path to given warp point:\n\n```zsh\nwd show\n```\n\n* Remove warp points to non-existent directories.\n\n```zsh\nwd clean\n```\n\nUse `wd clean --force` to not be prompted with confirmation.\n\n* Print usage info:\n\n```zsh\nwd help\n```\n\nThe usage will be printed also if you call `wd` with no command\n\n* Print the running version of `wd`:\n\n```zsh\nwd --version\n```\n\n* Specifically set the config file (default being `~/.warprc`), which is useful for testing:\n\n```zsh\nwd --config ./file \u003ccommand\u003e\n```\n\n* Silence all output:\n\n```zsh\nwd --quiet \u003ccommand\u003e\n```\n\n## Configuration\n\nYou can configure `wd` with the following environment variables:\n\n### `WD_CONFIG`\n\nDefines the path where warp points get stored. Defaults to `$HOME/.warprc`.\n\n## Testing\n\n`wd` comes with a small test suite, run with [shunit2](https://github.com/kward/shunit2). This can be used to confirm that things are working as they should on your setup, or to demonstrate an issue.\n\nTo run, simply `cd` into the `test` directory and run the `tests.sh`.\n\n```zsh\ncd ./test\n./tests.sh\n```\n\n## Maintainers\n\nFollowing @mfaerevaag stepping away from active maintainership of this repository, the following users now are also maintainers of the repo:\n\n* @alpha-tango-kilo\n\n* @MattLewin\n\nAnyone else contributing is greatly appreciated and will be mentioned in the release notes!\n\n---\n\nCredit to [altschuler](https://github.com/altschuler) for an awesome idea.\n\nHope you enjoy!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfaerevaag%2Fwd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmfaerevaag%2Fwd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfaerevaag%2Fwd/lists"}