{"id":49438114,"url":"https://github.com/iamthatian/pado","last_synced_at":"2026-04-29T18:01:25.482Z","repository":{"id":269833304,"uuid":"908599239","full_name":"iamthatian/pado","owner":"iamthatian","description":"Projectile-inspired cli project manager.","archived":false,"fork":false,"pushed_at":"2025-10-16T13:08:22.000Z","size":4703,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-14T00:58:47.698Z","etag":null,"topics":["bash","cli","command-line-tool","fish-shell","fzf","hacktoberfest","hacktoberfest-accepted","rust","shell","zsh"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/iamthatian.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2024-12-26T13:20:29.000Z","updated_at":"2025-10-29T00:44:44.000Z","dependencies_parsed_at":"2024-12-26T14:24:40.382Z","dependency_job_id":"26bdda90-a61b-4621-83d5-ee551bbc715e","html_url":"https://github.com/iamthatian/pado","commit_stats":null,"previous_names":["duckonomy/pp","duckonomy/sp","duckonomy/pado"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iamthatian/pado","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamthatian%2Fpado","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamthatian%2Fpado/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamthatian%2Fpado/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamthatian%2Fpado/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamthatian","download_url":"https://codeload.github.com/iamthatian/pado/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamthatian%2Fpado/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32437111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T17:34:55.123Z","status":"ssl_error","status_checked_at":"2026-04-29T17:34:45.749Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["bash","cli","command-line-tool","fish-shell","fzf","hacktoberfest","hacktoberfest-accepted","rust","shell","zsh"],"created_at":"2026-04-29T18:01:23.455Z","updated_at":"2026-04-29T18:01:25.476Z","avatar_url":"https://github.com/iamthatian.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pado\n\nPado is a fast project navigator inspired by Emacs Projectile,\nfor people who work across a bunch of projects.\n\n## Highlights\n\n- Detects project roots for dozens of ecosystems (Rust, Node, Python, Go, Java,\n  .NET, and more).\n- Keeps a lightweight history of projects you’ve opened.\n- Runs build, test, or run command by autodetecting the active build system or\n  honoring per-project overrides (`.pado.toml`).\n- Generates language and Git contribution statistics directly in the terminal.\n- Offers rich project health checks, dependency summaries, and outdated\n  package audits.\n- Ships with optional shell helpers, prompt integration, and\n  more) via `eval \"$(pd init)\"`.\n\n## Installation\n\n### Prerequisites\n\n- Rust 1.80+ and `cargo`.\n- Optional CLI tools used by specific commands:\n  - [`fzf`](https://github.com/junegunn/fzf) for interactive selection.\n  - [`tree`](https://treecommand.sourceforge.net/) for `pd tree`.\n  - [`rg`](https://github.com/BurntSushi/ripgrep) for `pd search`.\n\n### From source\n\n```bash\ncargo install --path .\n```\n\n## Quick start\n\n1. Add the shell helpers to your profile (Bash example):\n\n   ```bash\n   eval \"$(pd init)\"\n   ```\n\n   The script shell functions to use along with `pd`.\n   The script defines conveniences such as `pdcd`, and `pd_prompt`\n   without mutating your shell if `pd` is absent.\n\n2. Jump to the nearest project root:\n\n   ```bash\n   pd               # prints the detected project root\n   cd \"$(pd)\"       # change into that root\n   ```\n\n3. Track and inspect projects:\n\n   ```bash\n   pd add                # add the current project to the tracked list\n   pd list               # show tracked projects (table view)\n   pd list --starred     # focus on favorites\n   pd switch --recent    # choose a recent project via fzf\n   pd stats              # see aggregate usage stats\n   ```\n\n## Project tracking workflow\n\nKey commands:\n\n- `pd add [PATH]` – register a project (auto-stars if configured).\n- `pd star [PATH]` / `pd star --unstar` – toggle favorites.\n- `pd list --format paths|json|table` – list tracked repositories with\n  customizable output and sorting (`--sort-by name|access|time`).\n- `pd switch [--recent|--starred]` – interactively jump to a tracked project.\n- `pd discover \u003cPATH\u003e --depth \u003cn\u003e` – scan directories for repositories and add\n  them automatically.\n- `pd recent --limit \u003cn\u003e` – show your latest visits\n  formatting.\n- `pd cleanup` – purge entries that no longer exist on disk.\n\n## Project insight commands\n\nRun these from within a project (or after `eval \"$(pd cd)\"`):\n\n- `pd info` – overview with detected project type, top languages (via `tokei`),\n  Git contributor summary, and repository health hints.\n- `pd type` – print just the detected project type slug.\n- `pd health` – highlight missing essentials like `.gitignore`, README, and\n  license files.\n- `pd deps` – quick dependency summary (Cargo / Python requirements).\n- `pd outdated` – delegate to the appropriate tool (`cargo outdated`, `npm\n  outdated`, `pip list --outdated`, etc.).\n- `pd files [--pattern \"*suffix\"]` – list files within the project,\n  respecting `.gitignore`.\n- `pd find \u003cpattern\u003e` – feed matching files into `fzf`.\n- `pd search \u003cquery\u003e` – run ripgrep over the project.\n- `pd tree` – display the directory tree from the root.\n\n## Build, test, and run automation\n\nPado detects build systems and applies sensible defaults.\n\n- Rust (`cargo`)\n- Node (`npm`, `yarn`, `pnpm`, `bun`)\n- Python (`uv`, `poetry`, `pip`)\n- Java (`maven`, `gradle`)\n- Go\n- Elixir (`mix`)\n- Scala (`sbt`)\n- Swift (`swift`)\n- .NET (`dotnet`)\n- Haskell (`stack`, `cabal`)\n- OCaml (`dune`)\n- Zig\n- Terraform\n- Nix\n- C/C++ (`cmake`, `make`)\n\nUse the following commands to run the detected workflows:\n\n- `pd build`\n- `pd test`\n- `pd run`\n- `pd exec \u003cname\u003e` – execute a custom command defined in `.pado.toml`.\n- `pd exec-all \u003ccmd...\u003e [--tag \u003ctype\u003e]` – run a command across every tracked\n  project (optionally filtered by detected project type).\n\n### Project-specific overrides\n\nPlace a `.pado.toml` file in a project root to define custom commands:\n\n```toml\n[commands]\nbuild = \"npm run build\"\ntest = \"pnpm test -- --watch=false\"\nrun = \"npm start\"\nlint = \"pnpm lint\"\n```\n\n`pd exec lint` now works alongside `pd build`, `pd test`, and `pd run`.\n\n## Configuration\n\nGlobal settings live at `~/.config/pado/config.toml` (Linux),\n`~/Library/Application Support/pado/config.toml` (macOS), or the equivalent\n`dirs::config_dir` location on your platform. Manage the file with:\n\n```bash\npd config --path   # show the resolved path\npd config --show   # dump the current configuration\npd config --edit   # open in $EDITOR (creates the file with defaults)\n```\n\nDefaults you can safely tweak today:\n\n```toml\n[markers]\nadditional = [\".project-marker\"]   # extra files/folders that mark a project root\n\n[defaults]\nsort_order = \"access\"              # name | access | time\noutput_format = \"paths\"            # table | paths | json\nrecent_limit = 20\n\n[prompt]\nformat = \"[{type}] {name}\"\nshow_full_path = true\n\n[behavior]\nauto_star_on_add = true\n```\n\n## Optional shell tooling\n\n`pd init` initializes scripts for your current shell (Bash, Zsh, or Fish) to\nprovide:\n\n- `pd_prompt` for embedding project context in your `$PS1`.\n- Guarded helpers that warn if supporting tools (`fzf`, `fd`, `rg`) are missing.\n\nEmbed the script with `eval \"$(pd init)\"` or save it into your shell startup\nfile manually.\n\n## Development\n\nWe welcome issues and pull requests especially around expanding project\ndetectors, improving config ergonomics, or integrating additional CLIs. Check\nthe `tests/` directory for examples that cover the core behavior.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamthatian%2Fpado","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamthatian%2Fpado","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamthatian%2Fpado/lists"}