Skip to main content

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)

  1. Auto-detects your project framework
  2. Loads framework-specific defaults
  3. Merges them with your global + local config
  4. Resolves aliases → real commands
  5. 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:

  1. Framework defaults (built-in)
  2. Global user config
    ~/.nushyax/config.yaml
    
  3. 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 exec by 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-run lets 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nushyax-0.1.0.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nushyax-0.1.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

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

Hashes for nushyax-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e8bfc7f43e156f3cf7a56b29d7a85252e7e19706dbc6b1edfccf1faf921a7482
MD5 39bdee03d94e8710e2f1276e9116b3b7
BLAKE2b-256 ef2ae967771edab0aa74fba331e829fd383dea5c4e148748fc5088612b7234c0

See more details on using hashes here.

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

Hashes for nushyax-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 100546dcb8580989f5930ce8712cbaa64fe63566e55425b99166fd50dd6190ee
MD5 79b6c7af88cb8ece83e63a4b9ad8cc51
BLAKE2b-256 12cd423be9ca26d693982af5597a64fdfce187cd4cc43d7217d3c6261d57efc0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page