{"id":33014677,"url":"https://github.com/dvigo/zsh-dev-navigator","last_synced_at":"2026-02-12T00:44:50.622Z","repository":{"id":317924969,"uuid":"1068916683","full_name":"dvigo/zsh-dev-navigator","owner":"dvigo","description":"Quickly jump into your development directories using a simple command that acts as a smart cd with recursive autocompletion. It also supports additional options to extend its functionality, such as integrating with external tools or performing common project tasks directly from the terminal.","archived":false,"fork":false,"pushed_at":"2025-10-03T22:13:33.000Z","size":20,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-03T23:29:28.023Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dvigo.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-10-03T05:39:13.000Z","updated_at":"2025-10-03T21:42:24.000Z","dependencies_parsed_at":"2025-10-03T23:29:29.845Z","dependency_job_id":"cbba56fd-93d7-416b-967a-b29f13cc7ba3","html_url":"https://github.com/dvigo/zsh-dev-navigator","commit_stats":null,"previous_names":["dvigo/zsh-dev-navigator"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/dvigo/zsh-dev-navigator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvigo%2Fzsh-dev-navigator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvigo%2Fzsh-dev-navigator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvigo%2Fzsh-dev-navigator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvigo%2Fzsh-dev-navigator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dvigo","download_url":"https://codeload.github.com/dvigo/zsh-dev-navigator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvigo%2Fzsh-dev-navigator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29351058,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T20:11:40.865Z","status":"ssl_error","status_checked_at":"2026-02-11T20:10:41.637Z","response_time":97,"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":["hacktoberfest"],"created_at":"2025-11-13T18:00:20.534Z","updated_at":"2026-02-12T00:44:50.617Z","avatar_url":"https://github.com/dvigo.png","language":"Shell","readme":"# zsh-dev-navigator\n\nA minimal **Zsh plugin** that lets you quickly jump into your development directories with a single command.  \n`dev` acts as a smart replacement for `cd`, allowing you to navigate into project folders instantly with **recursive autocompletion** — and even open them directly in **VS Code**.\n\n---\n\n## ⚡ Quick Start\n\n```bash\ndev api-server\n# → cd ~/dev/api-server\n```\n\nOr open the project in your configured editor:\n\n```bash\ndev -o api-server\n# → Opens ~/dev/api-server in your configured editor (default: VS Code)\n```\n\nCreate a new project directory:\n\n```bash\ndev -c new-project\n# → Creates ~/dev/new-project and navigates to it\n```\n\nCreate a new project with git repository:\n\n```bash\ndev -cg new-project\n# → Creates ~/dev/new-project, initializes git, and navigates to it\n```\n\nExecute a file (with confirmation):\n\n```bash\ndev script.sh\n# → Asks for confirmation, then executes ~/dev/script.sh\n```\n\nExecute a file with arguments:\n\n```bash\ndev test.sh -ac --verbose\n# → Target is a file: ~/dev/test.sh\n# → With arguments: -ac --verbose\n# → Do you want to execute this file? [y/N]: y\n# → Executes: ~/dev/test.sh -ac --verbose\n\n# Or interactively:\ndev test.sh\n# → Do you want to execute this file? [y/N]: y\n# → Enter arguments (or press Enter for none): -ac --verbose\n# → Executing with arguments: -ac --verbose\n```\n\nOpen a file in editor:\n\n```bash\ndev -o config.json\n# → Opens ~/dev/config.json in your configured editor\n```\n\n---\n\n## ✨ Features\n\n- ⚡ Quickly `cd` into any development project with a simple command.  \n- 📁 Smart **recursive autocompletion** for subfolders.  \n- 🧭 Defaults to your base development folder when no argument is provided.  \n- 🪄 Optional **flags** to extend functionality — e.g., open projects directly in your **preferred editor**.  \n- 🆕 **Create new project directories** on-the-fly with the `-c` flag.\n- 🔧 **Initialize git repositories** automatically with the `-cg` flag.  \n- ⚙️ **Configurable** base directory and default editor via configuration file.  \n- 🤖 **Auto git init** option to initialize git repositories with `-c` flag automatically.\n- 📄 **File execution support** with confirmation prompts for executable files.\n- 📝 **File editing** with `-o` flag to open files directly in your configured editor.\n- 🧠 **Intelligent file/directory detection** based on file extensions.\n- 🆕 **File creation** with automatic parent directory creation.\n- 🔄 **Fallback mode** for users without fzf installed.  \n- 🔍 **Fuzzy finder integration** (fzf) for interactive project selection when no argument is provided.  \n- 🎯 Support for **multiple editors**: VS Code, Cursor, Windsurf, Sublime Text, Vim, and more.  \n\n---\n\n## 📦 Installation\n\n### **Oh My Zsh**\n\n1. Clone the plugin into your Oh My Zsh custom plugins folder:\n\n   ```bash\n   git clone https://github.com/dvigo/zsh-dev-navigator.git ~/.oh-my-zsh/custom/plugins/zsh-dev-navigator\n   ```\n\n2. Enable it in your `~/.zshrc`:\n\n   ```bash\n   plugins=(... zsh-dev-navigator)\n   ```\n\n3. Reload Zsh:\n\n   ```bash\n   source ~/.zshrc\n   ```\n\n---\n\n## 🎥 Demo\n\n**Basic usage:**  \n```bash\ndev api-server\n```\n\n**Result:**  \n```\n📂 Moved to: ~/dev/api-server\n```\n\n**Autocompletion:**  \nStart typing and press `\u003cTAB\u003e` to explore all projects and subfolders:\n\n```\ndev fr\u003cTAB\u003e\n# frontend-app\n# frontend-utils\n# frontend-tests\n```\n\n**Open in your preferred editor:**  \n```bash\ndev -o frontend-app\n# → Opens ~/dev/frontend-app in your configured editor (e.g., Cursor, VS Code, etc.)\n```\n\n**Interactive project selection with fuzzy finder:**  \n```bash\ndev\n# → Opens fzf interface to select from available projects\n# → Press ESC to navigate to the root dev folder\n```\n\n**Create new project:**  \n```bash\ndev -c new-project\n# → Creates ~/dev/new-project and navigates to it\n```\n\n**Create new project with git:**  \n```bash\ndev -cg new-project\n# → Creates ~/dev/new-project, initializes git, and navigates to it\n```\n\n---\n\n## ⚙️ Configuration\n\nThe plugin uses a configuration file located in the plugin directory. You can customize the following settings:\n\n### Configuration File\n\nThe plugin includes a `config` file with the following options:\n\n```bash\n# Development directory - where your projects are located\n# This can be an absolute path or use ~ for home directory\ndev_directory = ~/dev\n\n# Default editor to use with the -o flag\n# Supported editors: code, cursor, windsurf, subl, vim, nvim, emacs, atom, webstorm, idea, pycharm\neditor = code\n\n# Automatically initialize git repository when creating new directories with -c flag\n# Set to true to enable automatic git init, false to disable\nauto_git_init = false\n```\n\n### Customizing Settings\n\n1. **Development Directory**: Change the `dev_directory` setting to point to your projects folder:\n   ```bash\n   dev_directory = ~/Development\n   dev_directory = /path/to/your/projects\n   ```\n\n2. **Default Editor**: Set your preferred editor for the `-o` flag:\n   ```bash\n   editor = cursor        # Cursor editor\n   editor = windsurf      # Windsurf editor  \n   editor = code          # VS Code\n   editor = subl          # Sublime Text\n   editor = vim           # Vim\n   editor = nvim          # Neovim\n   ```\n\n3. **Custom Editor Path**: You can also specify a full path to a custom editor:\n   ```bash\n   editor = /usr/local/bin/my-custom-editor\n   ```\n\n4. **Automatic Git Initialization**: Enable automatic `git init` when creating directories with `-c`:\n   ```bash\n   auto_git_init = true   # Always initialize git with -c flag\n   auto_git_init = false  # Only initialize git with -cg flag (default)\n   ```\n\n---\n\n## 🖊️ Usage\n\nBasic syntax:\n\n```bash\ndev \u003cproject-name\u003e\n```\n\nExamples:\n\n```bash\ndev dashboard-ui\n# → cd ~/dev/dashboard-ui\n\ndev api-server/routes\n# → cd ~/dev/api-server/routes\n\ndev\n# → cd ~/dev\n```\n\nOpen a project in your configured editor:\n\n```bash\ndev -o api-server\n# → Opens the project in your configured editor (Cursor, VS Code, etc.)\n```\n\nCreate a new project directory:\n\n```bash\ndev -c new-project\n# → Creates ~/dev/new-project and navigates to it\n```\n\nCreate a new project with git repository:\n\n```bash\ndev -cg new-project\n# → Creates ~/dev/new-project, initializes git, and navigates to it\n```\n\n**Note**: If you have `auto_git_init = true` in your config, then `dev -c new-project` will also initialize git automatically.\n\nCombine flags:\n\n```bash\ndev -c -o new-app\n# → Creates ~/dev/new-app and opens it in your configured editor\n\ndev -cg -o new-git-project\n# → Creates ~/dev/new-git-project, initializes git, and opens it in your editor\n```\n\n---\n\n## 📄 File Handling\n\nThe plugin now supports working with files in addition to directories:\n\n### File Execution\nWhen targeting a file, the plugin will ask for confirmation before execution:\n\n```bash\ndev script.sh\n# → Target is a file: ~/dev/script.sh\n# → Do you want to execute this file? [y/N]: y\n# → Executes the file and navigates to its directory\n```\n\n**With arguments:**\n```bash\ndev deploy.sh --env production --force\n# → Target is a file: ~/dev/deploy.sh\n# → With arguments: --env production --force\n# → Do you want to execute this file? [y/N]: y\n# → Executes: ./deploy.sh --env production --force\n```\n\n**Interactive argument input:**\n```bash\ndev script.sh\n# → Target is a file: ~/dev/script.sh\n# → Do you want to execute this file? [y/N]: y\n# → Enter arguments (or press Enter for none): -v --debug\n# → Executing with arguments: -v --debug\n# → Executes: ./script.sh -v --debug\n```\n\n**Use cases:**\n- Run scripts with flags: `dev test.sh -v`\n- Pass configuration: `dev build.sh --config prod`\n- Multiple arguments: `dev script.sh arg1 arg2 arg3`\n- Interactive mode: `dev script.sh` → then enter arguments when prompted\n\n### File Editing\nUse the `-o` flag to open files directly in your configured editor:\n\n```bash\ndev -o config.json\n# → Opens ~/dev/config.json in your editor\n# → Navigates terminal to ~/dev/ directory\n```\n\n### Creating New Files\nThe plugin intelligently detects when you're trying to work with files and offers to create them:\n\n**With `-o` flag (create and edit):**\n```bash\ndev -o new-config.json\n# → File does not exist: ~/dev/new-config.json\n# → Do you want to create this file? [y/N]: y\n# → Created and opened file in your editor\n```\n\n**Without flags (create and optionally execute):**\n```bash\ndev new-script.sh\n# → File does not exist: ~/dev/new-script.sh\n# → Do you want to create this file? [y/N]: y\n# → File created: ~/dev/new-script.sh\n# → Do you want to execute this file? [y/N]: n\n```\n\n### Files in Subdirectories\nThe plugin automatically creates parent directories when needed:\n\n```bash\ndev -o src/components/Header.jsx\n# → Creates src/components/ directory if it doesn't exist\n# → Creates and opens Header.jsx in your editor\n```\n\n### Intelligent Detection\nThe plugin automatically detects whether you're working with files or directories:\n\n**Files (with extensions):**\n- `script.sh`, `config.json`, `README.md` → Treated as files\n- Offers creation, execution, or editing options\n\n**Directories (without extensions):**\n- `my-project`, `frontend-app`, `api-server` → Treated as directories  \n- Suggests using `-c` flag for creation\n\n### Restrictions\n- **Creation flags (`-c`, `-cg`) cannot be used with files**\n- **fzf selection with `-c`/`-cg` shows only directories**\n- **Autocompletion with `-c`/`-cg` shows only directories**\n\n---\n\n## 📌 Autocompletion\n\nThe `dev` command includes powerful autocompletion for all subdirectories inside your base development folder.  \n\nJust type part of a project name and press `\u003cTAB\u003e` to complete it.\n\n## 🔍 Fuzzy Finder Integration\n\nWhen you run `dev` without any arguments, the plugin provides different interfaces based on availability:\n\n### With fzf (Enhanced Experience)\nIf **fzf** is installed, you get an interactive selection interface:\n\n- Browse through all your projects with fuzzy search\n- Use arrow keys or type to filter projects\n- Press **Enter** to navigate to the selected project\n- Press **ESC** to navigate to the root development folder instead\n\n### Without fzf (Fallback Mode)\nIf **fzf** is not available, the plugin shows a list and prompts for input:\n\n```bash\ndev\n# → Available projects in ~/dev:\n# → api-server\n# → config.json\n# → frontend-app\n# → script.sh\n# → Enter project/file name (or press Enter for root directory): new-file.txt\n```\n\n### Smart Filtering\nThe interface adapts based on the flags used:\n- **Regular navigation**: Shows both files and directories\n- **With `-c` or `-cg`**: Shows only directories (prevents file creation conflicts)\n\n---\n\n## 🔧 Roadmap\n\n- [x] Add flag to create new project directories.  \n- [x] Add flag to open projects directly in editors.  \n- [x] Add support for multiple editors (VS Code, Cursor, Windsurf, Sublime, Vim, etc.).  \n- [x] Add fuzzy search for project names with fzf integration.  \n- [x] Add configuration file system for customizable settings.  \n- [ ] Add aliases or shortcuts per project.  \n- [ ] Add project templates for new directory creation.  \n\n---\n\n## 📜 License\n\nGNU General Public License v3.0 — See [LICENSE](LICENSE) for details.\n","funding_links":[],"categories":["Plugins"],"sub_categories":["ZSH on Windows"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdvigo%2Fzsh-dev-navigator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdvigo%2Fzsh-dev-navigator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdvigo%2Fzsh-dev-navigator/lists"}