# Create a project

> Create a runnable effect or instrument project with maru init or npm create maru, then open it in the workbench.

Canonical: https://maru.audio/docs/create
Documentation index: https://maru.audio/llms.txt

`maru init` creates a module project from a starter template. The project
is a working module with a sound and a face, so you change something that runs
rather than fill in an empty one.

```bash
maru init my-delay
cd my-delay
npm install
maru dev
```

`maru init` writes into the directory you name, or into the current directory
when you name none. It refuses a directory that is not empty unless you pass
`--force`. Pass `--install` to install dependencies right away; by default it
does not.

Without the CLI installed, `npm create maru` does the same thing. It runs
`maru init` from the latest `maruaudio` package and accepts the same options
after `--`:

```bash
npm create maru@latest my-delay
npm create maru@latest my-synth -- --kind processor-instrument --install
```

## Choose a starter

The default starter is a Processor effect: audio in, audio out, with its
sound processing in TypeScript you edit directly. Choose another with `--kind`:

```bash
maru init my-synth --kind processor-instrument
```

In a terminal, `maru init` without `--kind` shows a numbered list of starters
to pick from. With `--kind` or `--yes`, or when an agent or CI runs it, it
never asks. `maru init --help` lists the kinds. Processor starters come
first; the Graph starters `effect` and `instrument` wire included audio nodes
and suit a simple chain of nodes that already exist.
[Project structure](https://maru.audio/docs/project-structure.md) explains the files a starter
contains and which of them you change.

## Start from an existing module

Published modules are a good starting point when one already does most of what
you want. Browse the [module library](https://maru.audio/modules), or list modules and examples
from the terminal:

```bash
maru module list
maru module examples
```

`maru module spec <slug>` and `maru module params <slug>` show a module's
declaration and parameters, and `maru module files` and `maru module read`
show its source, which you or your agent can use as a reference for your own
project.

## Next steps

Open the [Development workbench](https://maru.audio/docs/dev.md) with `maru dev`, and ask your coding
agent to read `https://maru.audio/llms.txt` and the project's `AGENTS.md` before it
makes the first change. When the module sounds right, continue with
[Check, build and export](https://maru.audio/docs/export.md).
