Tools
Project Structure Checker
2025-12-17
0 views
admin
What it does ## Features ## Installation ## Quick install ## Linux / macOS ## Windows ## Download binary ## Build from source ## Docker ## Quick start ## Example config (psx.yml) ## How auto-fix works ## Development notes ## Why I made it ## Future enhancements (not in v1) ## A note about v1 ## If you want to help ## Links & support I made a small CLI tool called PSX that checks and fixes the basic structure of a project so you don't have to repeat the same boring setup every time. I built it because whenever I start a repo I end up creating the same README, LICENSE, .gitignore, changelog and the usual files. PSX detects the project type, tells you what's missing, and can even create the files for you. PSX auto-detects project type (Node, Go, etc.) and runs a set of rules to ensure the repo has the essentials. If something’s missing you can run psx fix and it creates sensible defaults. Rules are configurable via a simple YAML and checks run in parallel so it’s fast even on bigger repos. Automatic detection of project type and basic scaffolding. Auto-fix mode that creates missing files and folders. Support for multiple languages (Node.js, Go, generic projects). Configurable rules via a simple YAML file. Pre-built releases are available on GitHub for Linux (amd64, arm64), macOS (amd64, arm64) and Windows (amd64). Check Releases on the repo. If PSX finds missing or weak items you can auto-fix: To confirm each change: Drop this in the repo root. PSX will auto-detect if you leave type empty. psx fix reads your rules, figures out what’s missing, and creates sensible defaults for README, .gitignore, LICENSE, etc. LICENSE uses standard templates; README is minimal (name, short description, install/run hints). --interactive asks before applying each change. PSX is written in Go and needs Go 1.25+ to build. The code is modular so detectors and rules can be extended. Right now the repo doesn’t include tests (that’s intentional for v1), so if you want to help the project a lot: add tests or lint rules — that’s very welcome. Every new project felt like repeating the same first 10 minutes of setup. I wanted a tiny tool that enforces a sane baseline so I can start coding faster and keep repos consistent. Plugin system for custom rules — let people add/share custom rule sets.
Multi-project scanning — scan multiple repositories at once.
Git pre-commit hook integration — run checks locally before commits.
Language support: Python, Rust, Java — expand detectors and templates.
Better code structure and quality improvements — refactor, cleaner modules, more tests.
Editor/CI integrations — VS Code extension, CI checks.
Other usability improvements — templates, more interactive flows. This is the first public version. It’s normal for v1 to have bugs or missing features, so please try it and tell me what breaks or what feels wrong. Use it, open issues, and give feedback — that’s how it gets better. If you like the idea, please star the repo. Contributions that are most useful right now: add tests, write linters, create new language detectors, improve templates, or send small fixes. Open issues or PRs and I’ll review. Repository: https://github.com/m-mdy-m/psx
Issues: https://github.com/m-mdy-m/psx/issues
Releases: https://github.com/m-mdy-m/psx/releases Thanks for reading. If you try PSX, tell me what files you always add when starting a project — I’ll consider adding them to default templates. Let’s discuss. Templates let you quickly answer FAQs or store snippets for re-use. Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse COMMAND_BLOCK:
curl -sSL https://raw.githubusercontent.com/m-mdy-m/psx/main/scripts/install.sh | bash Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
curl -sSL https://raw.githubusercontent.com/m-mdy-m/psx/main/scripts/install.sh | bash COMMAND_BLOCK:
curl -sSL https://raw.githubusercontent.com/m-mdy-m/psx/main/scripts/install.sh | bash CODE_BLOCK:
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/m-mdy-m/psx/main/scripts/install.ps1" -OutFile install.ps1; .\install.ps1 github Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/m-mdy-m/psx/main/scripts/install.ps1" -OutFile install.ps1; .\install.ps1 github CODE_BLOCK:
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/m-mdy-m/psx/main/scripts/install.ps1" -OutFile install.ps1; .\install.ps1 github COMMAND_BLOCK:
git clone https://github.com/m-mdy-m/psx
cd psx
make build
sudo make install Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
git clone https://github.com/m-mdy-m/psx
cd psx
make build
sudo make install COMMAND_BLOCK:
git clone https://github.com/m-mdy-m/psx
cd psx
make build
sudo make install COMMAND_BLOCK:
docker pull bitsgenix/psx:latest
docker run --rm -v $(pwd):/project psx:latest check Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
docker pull bitsgenix/psx:latest
docker run --rm -v $(pwd):/project psx:latest check COMMAND_BLOCK:
docker pull bitsgenix/psx:latest
docker run --rm -v $(pwd):/project psx:latest check CODE_BLOCK:
cd my-project
psx check Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
cd my-project
psx check CODE_BLOCK:
cd my-project
psx check CODE_BLOCK:
psx fix Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
psx fix --interactive Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
psx fix --interactive CODE_BLOCK:
psx fix --interactive CODE_BLOCK:
version: 1
project: type: "go"
rules: readme: error license: warning gitignore: warning changelog: info Enter fullscreen mode Exit fullscreen mode CODE_BLOCK:
version: 1
project: type: "go"
rules: readme: error license: warning gitignore: warning changelog: info CODE_BLOCK:
version: 1
project: type: "go"
rules: readme: error license: warning gitignore: warning changelog: info
how-totutorialguidedev.toaimllinuxbashdockernodepythonsslgitgithub