7.2 KiB
7.2 KiB
Gantt Board CLI
A comprehensive command-line interface for managing tasks, projects, and sprints in the Gantt Board system.
Scripts
task.sh- Full CRUD operations for tasksproject.sh- Project managementsprint.sh- Sprint management
Installation
- Make scripts executable:
chmod +x task.sh project.sh sprint.sh
- Ensure dependencies are installed:
brew install jq
Configuration
Scripts use the following defaults:
- Supabase URL:
https://qnatchrjlpehiijwtreh.supabase.co - Default Project: OpenClaw iOS
- Default Assignee: Max
Task Management (task.sh)
Create Task
# Minimal task
./task.sh create --title "Fix bug"
# Full task with all fields
./task.sh create \
--title "Implement OAuth" \
--description "Add OAuth2 login support" \
--type task \
--status todo \
--priority high \
--project "Gantt Board" \
--sprint "current" \
--assignee "Max" \
--due-date "2026-03-01" \
--tags "auth,security" \
--comments "Starting implementation"
# Create from JSON file
./task.sh create --file task.json
# Interactive mode
./task.sh create --interactive
# Auto-create project if not found
./task.sh create --title "New Feature" --project "New Project" --auto-create
List Tasks
# List all tasks
./task.sh list
# Filter by status
./task.sh list --status todo
# Filter by priority
./task.sh list --priority high
# Filter by project (auto-resolves name)
./task.sh list --project "Gantt Board"
# Filter by assignee
./task.sh list --assignee "Max"
# Filter by type
./task.sh list --type bug
# JSON output
./task.sh list --json
# Limit results
./task.sh list --limit 10
Get Task
./task.sh get <task-id>
Update Task
# Update status
./task.sh update <task-id> --status in-progress
# Update multiple fields
./task.sh update <task-id> \
--status done \
--priority low \
--add-comment "Task completed"
# Update assignee
./task.sh update <task-id> --assignee "Matt"
# Clear tags
./task.sh update <task-id> --clear-tags
# Update tags
./task.sh update <task-id> --tags "new-tag,another-tag"
Delete Task
./task.sh delete <task-id>
Bulk Create
# From JSON file
./task.sh bulk-create tasks.json
# With auto-create for projects
./task.sh bulk-create tasks.json --auto-create
JSON Format:
[
{
"title": "Task 1",
"description": "Description",
"type": "task",
"status": "todo",
"priority": "high",
"project": "Project Name",
"sprint": "Sprint 1",
"assignee": "Max",
"due_date": "2026-03-01",
"tags": "tag1,tag2",
"comments": "Initial comment"
}
]
Project Management (project.sh)
Create Project
./project.sh create --name "New Project" --description "Project description" --color "#3b82f6"
List Projects
# List all projects
./project.sh list
# JSON output
./project.sh list --json
Get Project
# By ID
./project.sh get <project-id>
# By name (auto-resolves)
./project.sh get "Gantt Board"
Update Project
./project.sh update <project-id-or-name> \
--name "Updated Name" \
--description "Updated description" \
--color "#ff0000"
Delete Project
./project.sh delete <project-id-or-name>
Sprint Management (sprint.sh)
Create Sprint
./sprint.sh create \
--name "Sprint 3" \
--project "Gantt Board" \
--goal "Complete API integration" \
--start-date "2026-02-24" \
--end-date "2026-03-07"
List Sprints
# List all sprints
./sprint.sh list
# List active sprints
./sprint.sh list --active
# Filter by project
./sprint.sh list --project "Gantt Board"
# JSON output
./sprint.sh list --json
Get Sprint
# By ID
./sprint.sh get <sprint-id>
# By name
./sprint.sh get "Sprint 1"
Update Sprint
./sprint.sh update <sprint-id-or-name> \
--name "Updated Sprint" \
--goal "Updated goal" \
--status active \
--start-date "2026-02-25" \
--end-date "2026-03-10"
Close Sprint
./sprint.sh close <sprint-id-or-name>
Delete Sprint
./sprint.sh delete <sprint-id-or-name>
Name Resolution
All scripts support automatic name-to-ID resolution:
- Projects: "Gantt Board" →
68d05855-a399-44a4-9c36-3ee78257c2c9 - Sprints: "Sprint 1" →
b2c3d4e5-0001-0000-0000-000000000001 - Assignees:
- "Max" →
9c29cc99-81a1-4e75-8dff-cd7cc5ceb5aa - "Matt" →
0a3e400c-3932-48ae-9b65-f3f9c6f26fe9
- "Max" →
- Special: Use "current" for the most recent active sprint
Task Types
task- Standard taskbug- Bug fixresearch- Research spikeplan- Planning taskidea- Idea/backlog item
Task Statuses
open- Newly createdtodo- Ready to startblocked- Blockedin-progress- Currently workingreview- Ready for reviewvalidate- Needs validationdone- Completed
Priorities
lowmediumhighurgent
Examples
Daily Workflow
# Create a new task
./task.sh create --title "Fix login bug" --type bug --priority urgent --project "Gantt Board"
# List my high priority tasks
./task.sh list --assignee "Max" --priority high
# Update task status
./task.sh update <task-id> --status in-progress
# Add progress comment
./task.sh update <task-id> --add-comment "Working on reproduction steps"
# Mark as done
./task.sh update <task-id> --status done --add-comment "Fixed in commit abc123"
Sprint Planning
# Create new sprint
./sprint.sh create --name "Sprint 5" --project "Gantt Board" --start-date 2026-03-01 --end-date 2026-03-14
# Create multiple tasks for the sprint
./task.sh bulk-create sprint-tasks.json
# Close previous sprint
./sprint.sh close "Sprint 4"
Project Setup
# Create new project
./project.sh create --name "Mobile App" --description "iOS and Android app" --color "#8b5cf6"
# Create initial sprint
./sprint.sh create --name "Sprint 1" --project "Mobile App" --goal "MVP release"
# Create starter tasks
./task.sh create --title "Setup repo" --project "Mobile App" --sprint "Sprint 1"
./task.sh create --title "Design system" --project "Mobile App" --sprint "Sprint 1"
Exit Codes
0- Success1- Error (invalid input, API failure, not found)
Environment Variables
Scripts use hardcoded configuration at the top of each file. To customize, edit:
SUPABASE_URL- Supabase instance URLSERVICE_KEY- Supabase service role keyDEFAULT_PROJECT_ID- Default project for tasksDEFAULT_ASSIGNEE_ID- Default assignee for tasksMATT_ID- Matt's user ID
Troubleshooting
"Project not found"
- Use
--auto-createflag to create project automatically - Check project name spelling
- Use
./project.sh listto see available projects
"Sprint not found"
- Use "current" to reference the most recent active sprint
- Check sprint name with
./sprint.sh list
"jq parse error"
- Ensure
jqis installed:brew install jq - Check JSON file syntax
Empty response on create
- This is normal - Supabase returns empty on successful POST
- Check list command to verify creation:
./task.sh list --limit 5
License
Part of the OpenClaw Gantt Board project.