Garden Layout Planner
Design your garden with smart planning tools for companion planting, spacing, and sun requirements.
Quick Start
Add a garden bed to your layout
garden_layout.py add-bed "<bed_name>" --width <feet> --length <feet> --sun "full/partial/shade"
Add plants to a bed
garden_layout.py add-plant "<bed_name>" "<plant>" --row <row> --col <col>
Get companion planting suggestions
garden_layout.py companions "<plant>"
Get spacing requirements
garden_layout.py spacing "<plant>"
Show complete garden layout
garden_layout.py layout
Export layout to markdown
garden_layout.py export "<output_file>"
Usage Patterns
For new garden setup
# Define your beds
garden_layout.py add-bed "Bed 1" --width 4 --length 8 --sun "full"
garden_layout.py add-bed "Bed 2" --width 3 --length 6 --sun "partial"
# Check companion planting
garden_layout.py companions "tomato" # Best with basil, carrots, onions
garden_layout.py companions "cucumber" # Best with beans, corn, peas
# Add plants with proper spacing
garden_layout.py add-plant "Bed 1" "tomato" --row 1 --col 1
garden_layout.py add-plant "Bed 1" "basil" --row 1 --col 3 # Companion!
garden_layout.py add-plant "Bed 2" "beans" --row 1 --col 1
garden_layout.py add-plant "Bed 2" "corn" --row 2 --col 1 # Companion!
# Review your layout
garden_layout.py layout
For companion planting optimization
# Check what grows well together
garden_layout.py companions "carrots" # Good with tomatoes, onions, lettuce
garden_layout.py companions "onions" # Good with carrots, tomatoes, beets
# Avoid bad combinations
garden_layout.py incompatible "potatoes" # Avoid with tomatoes, cucumbers
For small space maximization
# Use vertical growing for space efficiency
garden_layout.py add-bed "Trellis" --width 1 --length 6 --sun "full"
garden_layout.py add-plant "Trellis" "cucumber" --row 1 --col 1
garden_layout.py add-plant "Trellis" "peas" --row 2 --col 1
# Intensive planting with succession
garden_layout.py add-bed "Intensive Bed" --width 3 --length 4 --sun "full"
garden_layout.py add-plant "Intensive Bed" "lettuce" --row 1 --col 1
garden_layout.py add-plant "Intensive Bed" "radishes" --row 1 --col 2 # Fast harvest
For crop rotation planning
# Track what you planted each year
garden_layout.py add-season "2026" # Starts fresh layout
garden_layout.py add-plant "Bed 1" "tomatoes" --row 1 --col 1
garden_layout.py add-plant "Bed 2" "beans" --row 1 --col 1
# Next year, change families
garden_layout.py add-season "2027" # New layout
garden_layout.py add-plant "Bed 1" "carrots" --row 1 --col 1 # Different family
garden_layout.py add-plant "Bed 2" "corn" --row 1 --col 1 # Different family
Companion Planting Guide
Best Combinations (Good Together)
| Plant |
Good With |
Why |
| Tomatoes |
Basil, carrots, onions, marigolds |
Basil enhances flavor, carrots repel pests |
| Cucumbers |
Beans, corn, peas, radishes |
Beans fix nitrogen, corn provides support |
| Lettuce |
Carrots, radishes, onions |
Radishes mark rows, carrots break soil |
| Peppers |
Basil, onions, carrots |
Basil repels aphids |
| Beans |
Corn, potatoes, cucumbers |
Nitrogen fixation benefits neighbors |
| Carrots |
Tomatoes, onions, lettuce |
Onions repel carrot fly |
| Corn |
Beans, squash, cucumbers |
Three Sisters method |
| Squash |
Corn, beans, radishes |
Beans repel squash beetles |
Incompatible Plants (Avoid Together)
| Plant |
Avoid With |
Why |
| Tomatoes |
Potatoes, cucumbers, fennel |
Same pests/diseases |
| Beans |
Onions, garlic |
Inhibit growth |
| Carrots |
Dill, parsnips |
Dill attracts carrot fly |
| Cucumbers |
Potatoes, sage |
Potatoes compete for space |
| Onions |
Beans, peas |
Inhibit bean growth |
Spacing Requirements
Small Plants (6-12 inches apart)
- Lettuce: 6-8 inches
- Spinach: 4-6 inches
- Radishes: 2-3 inches
- Onions: 4-6 inches
- Carrots: 2-3 inches
Medium Plants (12-24 inches apart)
- Peppers: 18-24 inches
- Eggplant: 18-24 inches
- Beans (bush): 12-18 inches
- Cabbage: 18-24 inches
Large Plants (24+ inches apart)
- Tomatoes: 24-36 inches
- Squash: 24-48 inches (or trellis)
- Corn: 12-18 inches (in blocks for pollination)
- Potatoes: 12-15 inches
Sun Requirements
Full Sun (6-8+ hours daily)
- Tomatoes, peppers, eggplant, squash, corn, beans, cucumbers
Partial Sun (4-6 hours daily)
- Lettuce, spinach, kale, peas, carrots, beets
Shade (<4 hours daily)
- Some leafy greens, herbs like mint, chives
Examples
Three Sisters Garden (Traditional)
# Classic Native American companion planting
garden_layout.py add-bed "Three Sisters" --width 8 --length 8 --sun "full"
# Plant corn in center (support)
garden_layout.py add-plant "Three Sisters" "corn" --row 4 --col 4
# Plant beans around corn (nitrogen)
garden_layout.py add-plant "Three Sisters" "beans" --row 4 --col 2
garden_layout.py add-plant "Three Sisters" "beans" --row 4 --col 6
# Plant squash at edges (ground cover)
garden_layout.py add-plant "Three Sisters" "squash" --row 1 --col 1
garden_layout.py add-plant "Three Sisters" "squash" --row 1 --col 8
garden_layout.py add-plant "Three Sisters" "squash" --row 8 --col 1
garden_layout.py add-plant "Three Sisters" "squash" --row 8 --col 8
Tomato-Basil Garden
# Simple companion planting
garden_layout.py add-bed "Tomato Patch" --width 4 --length 6 --sun "full"
garden_layout.py add-plant "Tomato Patch" "tomato" --row 1 --col 1
garden_layout.py add-plant "Tomato Patch" "basil" --row 1 --col 3 # Companion!
garden_layout.py add-plant "Tomato Patch" "carrots" --row 2 --col 1 # Under tomatoes
garden_layout.py add-plant "Tomato Patch" "carrots" --row 2 --col 3
Mixed Bed for Small Spaces
# Intensive planting
garden_layout.py add-bed "Small Space" --width 3 --length 4 --sun "partial"
garden_layout.py add-plant "Small Space" "lettuce" --row 1 --col 1
garden_layout.py add-plant "Small Space" "radishes" --row 1 --col 2 # Fast, marks row
garden_layout.py add-plant "Small Space" "lettuce" --row 1 --col 3
garden_layout.py add-plant "Small Space" "spinach" --row 2 --col 1
garden_layout.py add-plant "Small Space" "onions" --row 2 --col 2
garden_layout.py add-plant "Small Space" "spinach" --row 2 --col 3
Search Features
- Find compatible plants for companion planting
- Get spacing requirements for any plant
- Search layouts by plant name
- Filter by sun requirements
Security
Path Validation
The export function validates output paths to prevent malicious writes:
- ✅ Allowed:
~/.openclaw/workspace/, /tmp/, and home directory
- ❌ Blocked: System paths (
/etc/, /usr/, /var/, etc.)
- ❌ Blocked: Sensitive dotfiles (
~/.bashrc, ~/.ssh, etc.)
Data Storage
- Garden layouts stored in:
~/.openclaw/workspace/garden_layout_db.json
- Each bed tracks: dimensions, sun exposure, plants with positions
- Companion database built-in with 50+ plant relationships
- JSON format makes it easy to backup or migrate
Best Practices
- Plan before planting - Use layout planner to visualize before putting seeds in ground
- Use companion planting - Plant compatible species together
- Check spacing - Don't overcrowd, plants need room to grow
- Track sun exposure - Different beds have different sun requirements
- Plan for rotation - Track what you plant where each year
- Export for reference - Keep a backup of your garden plan
Related Skills
- plant-tracker - Track individual plants with care schedules and harvests
- seasonal-planting-guide - What to plant when in your growing zone
Use together for complete garden management!
1---2name: garden-layout-planner3description: Garden design and layout planning for gardeners. Plan your garden with companion planting, spacing, and sun requirements. Use when designing a new garden, planning crop rotation, or optimizing space. Security: file exports restricted to safe directories. Perfect for home gardeners, small farmers, and anyone maximizing their growing space.4---56# Garden Layout Planner78Design your garden with smart planning tools for companion planting, spacing, and sun requirements.910## Quick Start1112### Add a garden bed to your layout13```bash14garden_layout.py add-bed "<bed_name>" --width <feet> --length <feet> --sun "full/partial/shade"15```1617### Add plants to a bed18```bash19garden_layout.py add-plant "<bed_name>" "<plant>" --row <row> --col <col>20```2122### Get companion planting suggestions23```bash24garden_layout.py companions "<plant>"25```2627### Get spacing requirements28```bash29garden_layout.py spacing "<plant>"30```3132### Show complete garden layout33```bash34garden_layout.py layout35```3637### Export layout to markdown38```bash39garden_layout.py export "<output_file>"40```4142## Usage Patterns4344### For new garden setup45```bash46# Define your beds47garden_layout.py add-bed "Bed 1" --width 4 --length 8 --sun "full"48garden_layout.py add-bed "Bed 2" --width 3 --length 6 --sun "partial"4950# Check companion planting51garden_layout.py companions "tomato" # Best with basil, carrots, onions52garden_layout.py companions "cucumber" # Best with beans, corn, peas5354# Add plants with proper spacing55garden_layout.py add-plant "Bed 1" "tomato" --row 1 --col 156garden_layout.py add-plant "Bed 1" "basil" --row 1 --col 3 # Companion!57garden_layout.py add-plant "Bed 2" "beans" --row 1 --col 158garden_layout.py add-plant "Bed 2" "corn" --row 2 --col 1 # Companion!5960# Review your layout61garden_layout.py layout62```6364### For companion planting optimization65```bash66# Check what grows well together67garden_layout.py companions "carrots" # Good with tomatoes, onions, lettuce68garden_layout.py companions "onions" # Good with carrots, tomatoes, beets6970# Avoid bad combinations71garden_layout.py incompatible "potatoes" # Avoid with tomatoes, cucumbers72```7374### For small space maximization75```bash76# Use vertical growing for space efficiency77garden_layout.py add-bed "Trellis" --width 1 --length 6 --sun "full"78garden_layout.py add-plant "Trellis" "cucumber" --row 1 --col 179garden_layout.py add-plant "Trellis" "peas" --row 2 --col 18081# Intensive planting with succession82garden_layout.py add-bed "Intensive Bed" --width 3 --length 4 --sun "full"83garden_layout.py add-plant "Intensive Bed" "lettuce" --row 1 --col 184garden_layout.py add-plant "Intensive Bed" "radishes" --row 1 --col 2 # Fast harvest85```8687### For crop rotation planning88```bash89# Track what you planted each year90garden_layout.py add-season "2026" # Starts fresh layout91garden_layout.py add-plant "Bed 1" "tomatoes" --row 1 --col 192garden_layout.py add-plant "Bed 2" "beans" --row 1 --col 19394# Next year, change families95garden_layout.py add-season "2027" # New layout96garden_layout.py add-plant "Bed 1" "carrots" --row 1 --col 1 # Different family97garden_layout.py add-plant "Bed 2" "corn" --row 1 --col 1 # Different family98```99100## Companion Planting Guide101102### Best Combinations (Good Together)103| Plant | Good With | Why |104|-------|-----------|------|105| Tomatoes | Basil, carrots, onions, marigolds | Basil enhances flavor, carrots repel pests |106| Cucumbers | Beans, corn, peas, radishes | Beans fix nitrogen, corn provides support |107| Lettuce | Carrots, radishes, onions | Radishes mark rows, carrots break soil |108| Peppers | Basil, onions, carrots | Basil repels aphids |109| Beans | Corn, potatoes, cucumbers | Nitrogen fixation benefits neighbors |110| Carrots | Tomatoes, onions, lettuce | Onions repel carrot fly |111| Corn | Beans, squash, cucumbers | Three Sisters method |112| Squash | Corn, beans, radishes | Beans repel squash beetles |113114### Incompatible Plants (Avoid Together)115| Plant | Avoid With | Why |116|-------|-----------|------|117| Tomatoes | Potatoes, cucumbers, fennel | Same pests/diseases |118| Beans | Onions, garlic | Inhibit growth |119| Carrots | Dill, parsnips | Dill attracts carrot fly |120| Cucumbers | Potatoes, sage | Potatoes compete for space |121| Onions | Beans, peas | Inhibit bean growth |122123## Spacing Requirements124125### Small Plants (6-12 inches apart)126- Lettuce: 6-8 inches127- Spinach: 4-6 inches128- Radishes: 2-3 inches129- Onions: 4-6 inches130- Carrots: 2-3 inches131132### Medium Plants (12-24 inches apart)133- Peppers: 18-24 inches134- Eggplant: 18-24 inches135- Beans (bush): 12-18 inches136- Cabbage: 18-24 inches137138### Large Plants (24+ inches apart)139- Tomatoes: 24-36 inches140- Squash: 24-48 inches (or trellis)141- Corn: 12-18 inches (in blocks for pollination)142- Potatoes: 12-15 inches143144## Sun Requirements145146### Full Sun (6-8+ hours daily)147- Tomatoes, peppers, eggplant, squash, corn, beans, cucumbers148149### Partial Sun (4-6 hours daily)150- Lettuce, spinach, kale, peas, carrots, beets151152### Shade (<4 hours daily)153- Some leafy greens, herbs like mint, chives154155## Examples156157### Three Sisters Garden (Traditional)158```bash159# Classic Native American companion planting160garden_layout.py add-bed "Three Sisters" --width 8 --length 8 --sun "full"161162# Plant corn in center (support)163garden_layout.py add-plant "Three Sisters" "corn" --row 4 --col 4164165# Plant beans around corn (nitrogen)166garden_layout.py add-plant "Three Sisters" "beans" --row 4 --col 2167garden_layout.py add-plant "Three Sisters" "beans" --row 4 --col 6168169# Plant squash at edges (ground cover)170garden_layout.py add-plant "Three Sisters" "squash" --row 1 --col 1171garden_layout.py add-plant "Three Sisters" "squash" --row 1 --col 8172garden_layout.py add-plant "Three Sisters" "squash" --row 8 --col 1173garden_layout.py add-plant "Three Sisters" "squash" --row 8 --col 8174```175176### Tomato-Basil Garden177```bash178# Simple companion planting179garden_layout.py add-bed "Tomato Patch" --width 4 --length 6 --sun "full"180181garden_layout.py add-plant "Tomato Patch" "tomato" --row 1 --col 1182garden_layout.py add-plant "Tomato Patch" "basil" --row 1 --col 3 # Companion!183garden_layout.py add-plant "Tomato Patch" "carrots" --row 2 --col 1 # Under tomatoes184garden_layout.py add-plant "Tomato Patch" "carrots" --row 2 --col 3185```186187### Mixed Bed for Small Spaces188```bash189# Intensive planting190garden_layout.py add-bed "Small Space" --width 3 --length 4 --sun "partial"191192garden_layout.py add-plant "Small Space" "lettuce" --row 1 --col 1193garden_layout.py add-plant "Small Space" "radishes" --row 1 --col 2 # Fast, marks row194garden_layout.py add-plant "Small Space" "lettuce" --row 1 --col 3195196garden_layout.py add-plant "Small Space" "spinach" --row 2 --col 1197garden_layout.py add-plant "Small Space" "onions" --row 2 --col 2198garden_layout.py add-plant "Small Space" "spinach" --row 2 --col 3199```200201## Search Features202203- Find compatible plants for companion planting204- Get spacing requirements for any plant205- Search layouts by plant name206- Filter by sun requirements207208## Security209210### Path Validation211The `export` function validates output paths to prevent malicious writes:212- ✅ Allowed: `~/.openclaw/workspace/`, `/tmp/`, and home directory213- ❌ Blocked: System paths (`/etc/`, `/usr/`, `/var/`, etc.)214- ❌ Blocked: Sensitive dotfiles (`~/.bashrc`, `~/.ssh`, etc.)215216## Data Storage217218- Garden layouts stored in: `~/.openclaw/workspace/garden_layout_db.json`219- Each bed tracks: dimensions, sun exposure, plants with positions220- Companion database built-in with 50+ plant relationships221- JSON format makes it easy to backup or migrate222223## Best Practices2242251. **Plan before planting** - Use layout planner to visualize before putting seeds in ground2262. **Use companion planting** - Plant compatible species together2273. **Check spacing** - Don't overcrowd, plants need room to grow2284. **Track sun exposure** - Different beds have different sun requirements2295. **Plan for rotation** - Track what you plant where each year2306. **Export for reference** - Keep a backup of your garden plan231232## Related Skills233234- **plant-tracker** - Track individual plants with care schedules and harvests235- **seasonal-planting-guide** - What to plant when in your growing zone236237Use together for complete garden management!