junior init
Use junior init when you want a new project to start from the supported runtime shape instead of wiring Junior by hand.
pnpm dlx @sentry/junior init my-botThe command requires exactly one argument: the target directory.
What it creates
Section titled “What it creates”The scaffold includes:
package.jsonwithhono,@sentry/node,@sentry/junior,nitro, andviteserver.tsnitro.config.tsvite.config.tsvercel.jsonapp/SOUL.mdapp/WORLD.mdapp/DESCRIPTION.mdapp/skills/app/plugins/.env.example.gitignore
SOUL.md sets Junior’s default voice, WORLD.md holds operational context, and DESCRIPTION.md powers the user-facing app description. Add other app/*.md files only when you want optional reference material available to the agent at runtime. ABOUT.md is not part of the scaffold and is not supported.
This gives you the minimum app shape needed to run Junior locally and continue with plugin or skill setup.
Example output
Section titled “Example output”After a successful run, the CLI prints the created path and the next command to run:
Created my-bot at /path/to/my-bot
cd my-bot && pnpm install && pnpm devConstraints
Section titled “Constraints”junior init is strict about the target path:
- The path must be a directory, not a file
- The directory must be empty if it already exists
- Extra arguments are rejected
If validation fails, the CLI exits non-zero and prints an error such as:
junior command failed: refusing to initialize non-empty directory: /path/to/my-botVerification
Section titled “Verification”After scaffolding:
- Run
cd my-bot && pnpm install. - Fill in the required values from
.env.example. - Run
pnpm dev. - Check
http://localhost:3000/health.
For the complete setup flow, continue with Quickstart.
Next step
Section titled “Next step”Follow Quickstart to add env vars, then run junior check once you start adding skills or plugins.