AlgoKit Project Initialization
Create new Algorand projects using AlgoKit's official templates.
Overview / Core Workflow
- •Confirm project details with user (name, template, customizations)
- •Run
algokit initwith appropriate flags - •Handle any initialization errors
- •Provide next steps for building/testing
How to proceed
- •
Confirm project details with user:
- •Project name (directory name)
- •Template choice (TypeScript or Python)
- •Any customizations (
--no-git,--no-bootstrap, author name) - •For TypeScript: confirm Production preset for production projects
- •
Run initialization command:
TypeScript (Production Preset):
bashalgokit init -n <project-name> -t typescript --answer preset "Production" --answer author_name "<name>" --defaults
TypeScript (Starter Preset):
bashalgokit init -n <project-name> -t typescript --answer author_name "<name>" --defaults
Python (Production Preset):
bashalgokit init -n <project-name> -t python --answer preset "Production" --answer author_name "<name>" --defaults
Python (Starter Preset):
bashalgokit init -n <project-name> -t python --answer author_name "<name>" --defaults
With custom options (no git, no bootstrap):
bashalgokit init -n <project-name> -t typescript --no-git --no-bootstrap --defaults
- •
Handle errors:
- •Check if project directory already exists
- •Verify AlgoKit is installed:
algokit --version - •Ensure target directory is writable
- •Valid templates:
typescript,python,tealscript,react,fullstack,base
- •
Provide next steps:
- •
cd <project-name> - •
algokit project run build— Compile contracts - •
algokit project run test— Run test suite - •
algokit localnet start— Start local network (if deploying) - •
algokit project run deploy— Deploy contracts to local network
- •
Important Rules / Guidelines
- •Always confirm with user before executing — Never run
algokit initwithout explicit confirmation - •Default to TypeScript — Recommended for production applications
- •Use Production preset — For any project because it includes testing framework and deployment scripts
- •Include author name — Pass
--answer author_name "<name>"for attribution - •Use
--defaults— Accepts all other default values for non-interactive mode
Common Variations / Edge Cases
| Scenario | Approach |
|---|---|
| Python with TypeScript deployment | --answer deployment_language "typescript" |
| Existing directory | Check and warn if directory already exists |
| No Git initialization | Use --no-git flag |
| No dependency installation | Use --no-bootstrap flag |
| Custom author name | --answer author_name "Your Name" |
| Fullstack (frontend + contracts) | Use -t fullstack template |
| React frontend only | Use -t react template |
| Standalone (no workspace) | Use --no-workspace flag |
| Initialize from example | Use algokit init example subcommand |