{"id":22780026,"url":"https://github.com/babab/projectpad","last_synced_at":"2026-04-12T03:01:51.072Z","repository":{"id":146154606,"uuid":"6972325","full_name":"babab/projectpad","owner":"babab","description":"Manage favorite paths and quickly `cd` to them in your shell.","archived":false,"fork":false,"pushed_at":"2023-05-20T20:41:33.000Z","size":6598,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-05T15:52:40.123Z","etag":null,"topics":["bash","cd","command-line","command-line-tool","git","path","shell","unix","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/babab.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":"2012-12-02T21:09:00.000Z","updated_at":"2023-03-20T11:44:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"34b3b1e3-cff3-4315-ade3-4874991993a4","html_url":"https://github.com/babab/projectpad","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babab%2Fprojectpad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babab%2Fprojectpad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babab%2Fprojectpad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babab%2Fprojectpad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/babab","download_url":"https://codeload.github.com/babab/projectpad/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246326783,"owners_count":20759439,"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":["bash","cd","command-line","command-line-tool","git","path","shell","unix","zsh"],"created_at":"2024-12-11T20:12:05.196Z","updated_at":"2025-12-30T23:16:22.551Z","avatar_url":"https://github.com/babab.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Projectpad\n\nManage favorite paths and quickly `cd` to them in your shell.\n\nProjectpad keeps a list of your favorite (project) directories and\nallows for very quick navigation to those directories in the command\nline shell.\n\nOptionally a symlink `~/p` can be used that will point to\nthe selected path, which can be practical when dealing with\n`/very/long/and/deeply/burried/folders/`. The link is updated whenever\nyou switch projects.\n\nProjectpad and Git combine very-well, you can recursively scan for\ngit repositories to quickly add them to the selection list. Command\ncompletion support for Bash and Zsh is included.\n\n![demo gif](misc/demo.gif)\n\n\n## Requirements\n\n- a \\*nix bourne (compatible) shell (e.g. sh, ksh, zsh, bash)\n- cdialog (installed on most \\*nix systems as `dialog`)\n  http://freecode.com/projects/cdialog\n\n## Installing\n\nFrom the source directory, run `make install` with root privileges:\n\n``` shell\n$ sudo make install\n```\n\nThis will install projectpad to /usr/local/bin by default and will also\ninstall the completion file for bash and zsh. If at anytime you want to\nget rid of pycommand, you can just run `sudo make uninstall` from the\nsource directory.\n\n## Using projectpad\n\nYou'll never have to cd /home/user/projects/work/projectX again. Well,\nok once maybe, to add the directory to your list. In short, daily usage\nwill look like this:\n- `g` cd to the project/directory you were working on\n- `s` pick a directory from your list and immediately cd to it\n\nIn your console/shell, change the directory to a 'project' path.\nThen add the current directory/project by running:\n\n``` shell\n$ projectpad add\n```\n\nThen set a project (using a dialog window):\n\n``` shell\n$ projectpad set  # or alias 's', see Shell settings\n```\n\nNow, whenever you want to change to the project you have 'set', you can\nrun:\n\n``` shell\n$ cd `projectpad get`  # or alias 'g', see Shell settings\n```\n\n\n### Basic shell settings\n\nTo quickly change to the project directory (after setting it), it is\nadvised to set aliases and use them instead of the `get` and `set`\ncommands directly:\n\n``` shell\nalias g='cd `projectpad get`'\nalias s='projectpad set \u0026\u0026 cd `projectpad get`'\n```\n\n\n### Auto scan git repositories and them as projects\n\nTo use projectpad with your git repositories, cd to your\nparent folder (e.g. `~/projects`) and create a project listing:\n\n``` shell\n$ projectpad update\n```\n\nThis will recursively scan the directory for git repositories.\nOf course, you can also add any single git repository this way.\n\n\n### Keep a symlink in sync with the active project\n\nProjectpad can keep a symbolic link that always points to the active directory,\nwhich can help to greatly shorten long path names in your prompt.\n\nIf a variable `${PROJECTPAD_SYMLINK}` is set in the shell, and only then,\nprojectpad will update the symlink whenever you change projects.\n\n``` shell\nexport PROJECTPAD_SYMLINK=~/p\nalias gg=\"cd ${PROJECTPAD_SYMLINK}\"  # optional\n```\n\nTip! If you add `$(projectpad name)` to your `PS1` prompt, you can\nshorten paths names but still be informed about the project that you are\nworking on.\n\nTip! Use in combination with\n[$CDPATH](http://linux.101hacks.com/cd-command/cdpath/)\nfor even more lazyness and comfort\n\n\n### Temporary paths\n\nUse `projectpad pwd` if you want to set $PWD as active path, but don't\nwant to add it to the list for later selection.\n\n\n## Command overview\n\n``` shell\n$ projectpad help\nusage: projectpad \u003ccommand\u003e\n\nCommands:\n   help    Show this help:\n   set     Set current project\n   add     Add PWD to projects and activate path\n   pwd     Set PWD as active path\n   edit    Edit project file with EDITOR\n   update  Recursively scan PWD for git directories and append any\n           found directories to the project file\n   gitto   Register all projects with gitto\n   name    Get current project name\n   get     Get current project path\n   version Show version information\n\nIf you use a symlink that points to projectpad, the name of that symlink\nis used instead of projectpad when printing usage/help information.\n```\n\n\n## License\n\nprojectpad is released under a 3-clause BSD License.\n\nSPDX-License-Identifier: BSD-3-Clause\n\n------------------------------------------------------------------------------\n\nCopyright (c) 2012-2023  Benjamin Althues \u003cbenjamin@babab.nl\u003e\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its\ncontributors may be used to endorse or promote products derived from this\nsoftware without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\nEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\nPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\nOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\nWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\nOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\nEVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabab%2Fprojectpad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbabab%2Fprojectpad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabab%2Fprojectpad/lists"}