Framework-agnostic developer CLI
Project description
🚀 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nushyax-0.1.0.tar.gz.
File metadata
- Download URL: nushyax-0.1.0.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8bfc7f43e156f3cf7a56b29d7a85252e7e19706dbc6b1edfccf1faf921a7482
|
|
| MD5 |
39bdee03d94e8710e2f1276e9116b3b7
|
|
| BLAKE2b-256 |
ef2ae967771edab0aa74fba331e829fd383dea5c4e148748fc5088612b7234c0
|
File details
Details for the file nushyax-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nushyax-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
100546dcb8580989f5930ce8712cbaa64fe63566e55425b99166fd50dd6190ee
|
|
| MD5 |
79b6c7af88cb8ece83e63a4b9ad8cc51
|
|
| BLAKE2b-256 |
12cd423be9ca26d693982af5597a64fdfce187cd4cc43d7217d3c6261d57efc0
|