Initialize new Dojo projects with proper directory structure, configuration files, and dependencies. Use when starting a new Dojo game project or setting up the initial project structure.
Scanned 2/12/2026
Install to Claude Code
npx -y skills add dojoengine/book --skill dojo-init --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Dojo Init?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dojoengine-dojo-init)More formats (shields.io, HTML) on the badges page.
---
name: dojo-init
description: Initialize new Dojo projects with proper directory structure, configuration files, and dependencies. Use when starting a new Dojo game project or setting up the initial project structure.
allowed-tools: Read, Write, Bash, Glob
---
# Dojo Project Initialization
Initialize new Dojo projects with the complete directory structure, configuration files, and dependencies.
## When to Use This Skill
- "Create a new Dojo project"
- "Initialize a Dojo game called [name]"
- "Set up a new Dojo application"
- "Start a new provable game project"
## What This Skill Does
Creates a complete Dojo project with:
- `Scarb.toml` with Dojo dependencies
- `dojo_dev.toml` for local development
- Source directory structure
- Example models and systems
- Test files
## Quick Start
**Using sozo init:**
```bash
sozo init my-game
```
This creates a new Dojo project from the [dojo-starter template](https://github.com/dojoengine/dojo-starter).
**Interactive mode:**
```
"Create a new Dojo project called my-game"
```
## Project Structure
After initialization:
```
my-game/
├── Scarb.toml # Package manifest and dependencies
├── dojo_dev.toml # Local development profile
├── dojo_release.toml # Production deployment profile
└── src/
├── lib.cairo # Module exports
├── models.cairo # Game state models
├── systems/
│ └── actions.cairo # Game logic systems
└── tests/
└── test_world.cairo # Integration tests
```
## Configuration Files
### Scarb.toml
Package manifest with Dojo dependencies:
```toml
[package]
cairo-version = "2.12.2"
name = "my_game"
version = "1.0.0"
edition = "2024_07"
[[target.starknet-contract]]
sierra = true
build-external-contracts = ["dojo::world::world_contract::world"]
[dependencies]
starknet = "2.12.2"
dojo = "1.7.1"
[dev-dependencies]
cairo_test = "2.12.2"
dojo_cairo_test = "1.7.1"
[tool.scarb]
allow-prebuilt-plugins = ["dojo_cairo_macros"]
```
### dojo_dev.toml
Local development configuration:
```toml
[world]
name = "My Game"
seed = "my_game"
[env]
rpc_url = "http://localhost:5050/"
account_address = "0x127fd..."
private_key = "0xc5b2f..."
[namespace]
default = "my_game"
[writers]
"my_game" = ["my_game-actions"]
```
## Starter Template Contents
The starter template includes:
### Models (`src/models.cairo`)
- `Position` model with player key and Vec2 coordinates
- `Moves` model tracking remaining moves and direction
- `Direction` enum
### Systems (`src/systems/actions.cairo`)
- `spawn` function to initialize player state
- `move` function to update player position
- Example event emission
### Tests (`src/tests/test_world.cairo`)
- Test world setup with `spawn_test_world`
- Integration tests for spawn and move
## Development Workflow
1. **Initialize project:**
```bash
sozo init my-game
cd my-game
```
2. **Start Katana:**
```bash
katana --dev --dev.no-fee
```
3. **Build and deploy:**
```bash
sozo build && sozo migrate
```
4. **Test your system:**
```bash
sozo execute my_game-actions spawn
```
5. **Run tests:**
```bash
sozo test
```
## Customization
After initialization, customize your project:
1. **Add models:** Create new model structs in `src/models.cairo` or separate files
2. **Add systems:** Create new contract modules in `src/systems/`
3. **Update permissions:** Edit `[writers]` in `dojo_dev.toml`
4. **Add dependencies:** Edit `[dependencies]` in `Scarb.toml`
## Next Steps
After initialization:
1. Use `dojo-model` skill to add game state models
2. Use `dojo-system` skill to implement game logic
3. Use `dojo-test` skill to write tests
4. Use `dojo-deploy` skill to deploy your world
## Related Skills
- **dojo-model**: Add models to your project
- **dojo-system**: Add systems to your project
- **dojo-config**: Modify configuration
- **dojo-deploy**: Deploy your project
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!