# npx dojofoo add



## Usage [#usage]

```sh
npx dojofoo add <source>
```

Examples:

```sh
npx dojofoo add dojofoo/effect-ts
npx dojofoo add dojofoo/starter
npx dojofoo add @dojofoo/effect-ts
npx dojofoo add ./my-dojo
```

An `owner/repository` source is downloaded directly from a public GitHub repository.
After a successful first install, the CLI reports the canonical public repository to
the dojofoo API. The API fetches and validates its `dojo.json` itself before listing
the dojo in the marketplace. Maintainers do not submit a registry pull request.

* The source and content hash are recorded in `.dojos/<name>/.dojo-source.json`.
* Dependencies are installed with the project's package manager.
* Agent commands and skills are linked into the project.
* Any dojo `prepare.sh` lifecycle script is run.

## Updating a GitHub dojo [#updating-a-github-dojo]

```sh
npx dojofoo update dojofoo/starter
```

The update resolves the recorded source, replaces only the installed copy under
`.dojos/`, and leaves learner work, progress, sessions, and notes in place.

## Removing a dojo [#removing-a-dojo]

Use the CLI:

```sh
npx dojofoo remove effect-ts
```

The command removes the package and refreshes the project registration.
