Project Finder is an interactive terminal utility designed to streamline developer workflows. It automatically scans your local directories, identifies project technology stacks, and enables instant project navigation directly from your terminal.
- π Automated Workspace Scanning: Recursively identifies valid development projects in your workspace (
~/desarrollo/proyectos). - π¨ Dynamic Tech Stack Formatting: High-fidelity visual identifiers for React, Vite, Angular, Java, and Node.js with ANSI colors and formatted stack separators.
- π§ͺ Built-in Demo Mode: Run simulated project sweeps without accessing local filesystem dataβideal for testing and visual previews.
- π Seamless Clipboard Integration: Copies the navigation command (
cd "/path/to/project") straight to your system clipboard. - π Cross-Platform: Designed for native environments including Windows (GitBash / PowerShell), WSL2, and Linux.
- Node.js: Core runtime (ES Modules).
- @clack/prompts: Interactive CLI prompt framework.
- clipboardy: Cross-platform OS clipboard access.
The project strictly follows a clean, decoupled architecture:
src/
βββ core/ # Business logic (Directory scanner & mock data)
βββ ui/ # Presentation layer (Clack prompts & ANSI color formatting)
βββ utils/ # System I/O services (Clipboard management & versioning)
βββ index.js # CLI Entrypoint & Orchestrator
git clone https://github.com/ErnestoIngles/project-finder.git
cd project-finder# Install project dependencies
pnpm install
# Link CLI tool globally in your system
pnpm add --global .Note for Windows / GitBash users: Make sure your pnpm global bin path is in your System PATH so pf can be executed from any directory.
Simply type the command from any terminal location:
pfOr run in Demo Mode:
pf demo-
Directory Navigation Bypass: Since a child process cannot change the parent's working directory in Unix systems, a clipboard-based bridge was implemented to ensure instant navigation without complex shell configurations.
-
Dynamic Padding: The menu calculates the maximum string length of project names to maintain a perfect tabular layout regardless of folder naming conventions.
-
Persistence Roadmap: Future versions will include a config.json for customizable scan paths and ignore-lists.
Created with β€οΈ by ErnestoIngles
