Quick Start

Get from zero to a fully managed project in under five minutes.

Table of Contents

  1. TOC

1. Install enx

curl -fsSL https://raw.githubusercontent.com/enxilium/enx-cli/main/scripts/install.sh -o install.sh
sh install.sh
enx setup

On Windows, run this from Git Bash, MSYS2, Cygwin, or WSL (bash/zsh environments).

The installer downloads the binary. Then run enx setup in your current shell and restart the shell if prompted.


2. Initialize a project

Navigate to an existing project directory and initialize it:

cd ~/code/my-app
enx init

This creates an enx.toml file with sensible defaults and registers the project so enx knows about it.


3. Configure your project

Open the generated enx.toml and customize it:

[project]
name = "my-app"

[start]
commands = ["npm run dev"]

[tasks.test]
command = "npm test"
description = "Run the test suite"

[tasks.lint]
command = "npm run lint"
description = "Lint the codebase"

[open]
repo = "https://github.com/myorg/my-app"

4. Run tasks

enx start          # starts the dev server
enx run test       # runs the test task
enx lint            # shorthand — same as `enx run lint`

5. Navigate between projects

Register more projects, then jump between them instantly:

cd ~/code/api-service
enx init

# Now from anywhere:
enx cd api          # fuzzy-matches "api-service", cd's to it
enx cd my           # fuzzy-matches "my-app", cd's to it

List everything you’ve registered:

$ enx projects
  ├─ my-app          ~/code/my-app
  └─ api-service     ~/code/api-service

6. Manage environments

Define environment-specific config files in your enx.toml:

[env]
development = ".env.development"
staging = ".env.staging"
production = ".env.production"

Switch between them:

enx env staging     # switches to the staging environment

7. Bootstrap the full environment

Define setup and teardown steps:

[up]
steps = [
    "npm install",
    "enx run db:migrate",
]

[down]
steps = [
    "docker compose down",
]
enx up              # install deps, run migrations
enx down            # tear everything down

What’s Next?