This skill should be used when the user asks to "create an angreal project", "initialize angreal", "set up angreal", "add angreal to project", "start new angreal project", "create .angreal directory", or needs guidance on setting up angreal in a new or existing project, project templates, or initial task file structure.
View on GitHubSelect agents to install to:
npx add-skill https://github.com/angreal/angreal/blob/main/plugin/skills/angreal-init/SKILL.md -a claude-code --skill angreal-initInstallation paths:
.claude/skills/angreal-init/# Initializing Angreal Projects
Set up angreal task automation in a new or existing project.
## What is an Angreal Project?
An angreal project is any directory containing a `.angreal/` subdirectory with task files. Angreal provides development task automation - think of it as your project's `make` or `npm run`.
## Quick Setup
### 1. Create the .angreal Directory
```bash
mkdir .angreal
```
### 2. Create Your First Task File
```python
# .angreal/task_dev.py
import angreal
@angreal.command(name="hello", about="Test angreal setup")
def hello():
print("Angreal is working!")
return 0
```
### 3. Verify Setup
```bash
angreal tree # Should show: hello - Test angreal setup
angreal hello # Should print: Angreal is working!
```
## Recommended Project Structure
### Minimal Setup
```
my-project/
├── .angreal/
│ └── task_dev.py # Start with one task file
├── src/
└── ...
```
### Standard Setup
```
my-project/
├── .angreal/
│ ├── task_dev.py # Development utilities
│ ├── task_test.py # Testing commands
│ ├── task_build.py # Build commands
│ └── task_docs.py # Documentation commands
├── src/
└── ...
```
### With Shared Utilities
```
my-project/
├── .angreal/
│ ├── utils.py # Shared helper functions
│ ├── task_dev.py
│ ├── task_test.py
│ └── task_build.py
├── src/
└── ...
```
## Starter Templates
### Development Utilities
```python
# .angreal/task_dev.py
import angreal
import subprocess
import os
@angreal.command(name="check-deps", about="Verify development tools")
def check_deps():
"""Check that required tools are installed."""
tools = ["python", "git"]
missing = []
for tool in tools:
result = subprocess.run(
["which", tool],
capture_output=True
)
if result.returncode != 0:
missing.append(tool)
if missing:
print(f"Missing tools: {', '.join(missing)}")
return 1
print("All tools available!")
return