Skip to Content
Working with MisoConfiguration

Configuring Miso

You can edit miso.json directly to change it’s settings:

JSON Schema (IDE Support)

Add a $schema property to get autocomplete and validation in VS Code, Cursor, and other editors:

{ "$schema": "https://misojs.dev/miso.schema.json", "package-manager": "bun", "name": "my-project", "scripts": "./scripts" }

The schema is available at https://misojs.dev/miso.schema.json  — use this URL in your miso.json for type-safe editing.

Package Manager

Set or update your project’s package manager:

>miso.json
packageManager: "bun"
bun

Sets “package manager” to “bun”

pnpm

Sets “package manager” to “pnpm”

yarn

Sets “package manager” to “yarn”

npm

Sets “package manager” to “npm”

Package Manager

Set or update your project’s package manager:

>miso.json
name: "my-cool-react-app"
string

Set’s the name of your project. To be honest, I don’t know why. I think I had a reason at first, but it’s already in package.json so this will probably be deprecated at some point.

Package Manager

Set or update your project’s package manager:

>miso.json
packageManager: "bun"
bun

Sets “package manager” to “bun”

pnpm

Sets “package manager” to “pnpm”

yarn

Sets “package manager” to “yarn”

npm

Sets “package manager” to “npm”

Scripts

Sets the path to the folder you want miso to use when you run custom scripts:

>miso.json
scripts: "./scripts"
string

This path is relative to the location of your miso.json file. Learn more about Scripting in Miso

Shell

Default interpreter for scripts with no shebang and no recognized extension. If not set, Miso uses sh:

>miso.json
shell: "bash"
string

Examples: "sh", "bash", "zsh". The interpreter must be available in your PATH.

Repo

Configure whether your project is a single project or a monorepo:

>miso.json
repo: "mono"
"single"

Default. Treats the project as a single repository. All scripts resolve from the root scripts/ folder.

"mono"

Enables monorepo mode. Unlocks workspace-scoped script execution using the workspace:script syntax and automatic CWD-based scoping. Requires a workspaces field in your root package.json.

When set to "mono", miso reads workspace paths from your root package.json:

{ "workspaces": ["apps/*", "packages/*"] }

See Monorepo Scripts for full details on workspace script execution.

Env

Configure environment variable validation for miso env:

{ "env": { "path": [".env.local", ".env"], "required": "all", "variables": { "PORT": "port", "DATABASE_URL": "url", "NODE_ENV": { "type": "enum", "values": ["development", "production", "test"], "optional": true } } } }
  • path: Array of .env file paths (relative to project root). Loaded in order; later files override earlier. If omitted, miso discovers .env.local, .env.production, .env.development, or .env.
  • required: "all" (every variable unless optional), "none", or an array of specific keys.
  • variables: Either an object (type validation) or array (presence only). See Env validation for the full spec.
Last updated on