🚀 Nushyax
Nushyax is a framework-agnostic developer CLI that lets you run common project commands using short, memorable aliases — without caring which framework, tool, or stack you’re using.
Think of it as a universal command layer on top of Django, Flask, Next.js, Docker, Node, and more.
✨ Why Nushyax?
Every framework has its own long, repetitive commands:
python manage.py runserver
flask run --debug
npm run dev
docker-compose up -d
With Nushyax, you run everything through a single, explicit interface:
nushyax exec s
nushyax exec d
nushyax exec b
Same aliases. Same muscle memory. Any framework.
🧠 How it works (high level)
- Auto-detects your project framework
- Loads framework-specific defaults
- Merges them with your global + local config
- Resolves aliases → real commands
- Executes them via
nushyax exec
All of this happens automatically.
📦 Supported frameworks (auto-detected)
| Framework | Detection signal |
|---|---|
| Django | manage.py |
| Flask | Flask(__name__), .flaskenv, deps |
| Next.js | next.config.*, next dependency |
| Node.js | package.json |
| Docker | docker-compose.yml |
More frameworks (FastAPI, Rails, Spring) are planned.
⚡ Installation
pip install nushyax
Make sure your virtual environment is activated.
🚀 Quick start
1️⃣ Initialize configuration
nushyax init
This creates a .nushyax.yaml file with smart defaults for your detected framework.
2️⃣ Run commands using aliases
All project commands are executed explicitly via exec:
nushyax exec s # start server
nushyax exec d # dev / debug mode
nushyax exec b # build
This keeps execution clear, predictable, and unambiguous.
🧾 Example .nushyax.yaml
framework: django
aliases:
s: run
mm: makemigrations
m: migrate
commands:
run:
desc: Start development server
exec: python manage.py runserver
You are free to rename, override, or add commands.
🌍 Configuration layers (important)
Nushyax merges configuration from three levels:
- Framework defaults (built-in)
- Global user config
~/.nushyax/config.yaml
- Project config
.nushyax.yaml
Priority:
project > global > defaults
🧩 Commands
nushyax init
Generate a project config file.
nushyax init
nushyax init --force
nushyax list
List all available commands and aliases for the current project.
nushyax list
nushyax describe <alias>
Show what an alias resolves to.
nushyax describe s
nushyax exec <alias>
Execute a resolved command.
nushyax exec s
nushyax exec s --dry-run
All project commands are executed through
execby design.
🔍 Framework detection philosophy
Nushyax uses robust detection, not rigid rules.
Instead of relying on one fixed file, it looks for:
- Strong signals (e.g.
manage.py,Flask(__name__)) - Dependency hints
- Environment clues
This makes Nushyax work in real-world projects, not just ideal ones.
🔐 Safety & clarity
- Commands are explicitly executed via
exec - No hidden or implicit execution
--dry-runlets you preview commands before running
🧱 Project structure
nushyax/
├── cli.py # Typer CLI entry
├── detector.py # Framework detection
├── templates.py # Default templates
├── config.py # Config loading & merging
├── dispatcher.py # Alias resolution
├── runner.py # Command execution
🛣 Roadmap
- FastAPI support
- Multi-framework monorepo support
-
nushyax doctor(diagnostics) - Plugin system
- Shell autocompletion
🤝 Contributing
Contributions are welcome.
Ideas:
- Add new framework detectors
- Improve robustness
- Write docs & examples
📄 License
MIT License
💡 Philosophy
One brain. One muscle memory. Any framework.
Nushyax exists to reduce context switching, not replace frameworks.
Release files for nushyax 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nushyax-0.1.0.tar.gz | 9.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nushyax-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.5 kB
Release files / nushyax-0.1.0.tar.gz
| Download URL | nushyax-0.1.0.tar.gz |
|---|---|
| Size | 9.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e8bfc7f43e156f3cf7a56b29d7a85252e7e19706dbc6b1edfccf1faf921a7482
|
|
BLAKE2b-256 checksum How to use checksums |
ef2ae967771edab0aa74fba331e829fd383dea5c4e148748fc5088612b7234c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.0
|
Release files / nushyax-0.1.0-py3-none-any.whl
| Download URL | nushyax-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
100546dcb8580989f5930ce8712cbaa64fe63566e55425b99166fd50dd6190ee
|
|
BLAKE2b-256 checksum How to use checksums |
12cd423be9ca26d693982af5597a64fdfce187cd4cc43d7217d3c6261d57efc0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.0
|