Files
skill-tududi/README.md

4.5 KiB

Skill Tududi Tasks

OpenClaw integration for Tududi — self-hosted task management system with smart suggestions and daily reminders.

Features

Quick task capture — Add tasks to inbox without friction
Smart suggestions — AI suggests priority, tags, and projects
Inbox management — Read inbox status and upcoming tasks
Daily reminders — Automatic morning recap (overdue + today tasks)
No auto-sync — Manual control, you decide what goes where

Installation

1. Clone to OpenClaw Skills Directory

cd ~/.openclaw/skills
git clone https://forge.dilain.com/Remora/skill-tududi.git

2. Configure Environment Variables

Add to your OpenClaw gateway environment or shell profile:

export TUDUDI_API_URL="https://todo.dilain.com/api/v1"
export TUDUDI_API_KEY="tt_5e3ac7fc2bf5ae5162ebac5d1d66dcc2ff9d9d0ab343b9d3d4c5a7c439ef67f5"

Or configure in openclaw.json:

{
  "env": {
    "vars": {
      "TUDUDI_API_URL": "https://todo.dilain.com/api/v1",
      "TUDUDI_API_KEY": "tt_5e3ac7fc..."
    }
  }
}

3. Restart OpenClaw

openclaw gateway restart

Usage

Add a Task to Inbox

./scripts/tududi-api.sh add-task "Task name" "Optional description"

Or via Discord:

"Add task: Fix the CI/CD pipeline"

I'll suggest priority and tags, then add to Tududi inbox.

List Inbox

./scripts/tududi-api.sh list-inbox

Shows all tasks with no project assigned.

Get Smart Suggestions

Ask me to suggest priority/tags/projects:

"I want to add 'Setup staging environment'. Suggest priority and project."

Response example:

{
  "priority": "high",
  "tags": ["devops", "infrastructure"],
  "projects_available": [
    {"id": 1, "name": "Infrastructure"},
    {"id": 2, "name": "DevOps"}
  ]
}

Daily Reminder

Configured to run 8:00 AM (Europe/Paris timezone) every day.

Reminder format:

📋 Tududi Morning Reminder (Monday)

🔴 Overdue (2):
  • Fix payment bug (high)
  • Respond to client email (normal)

📅 Today (3):
  • Deploy v2.1 (high)
  • Team standup (normal)
  • Review PRs (normal)

Scripts

tududi-api.sh

Core API wrapper for Tududi REST API.

Commands:

# Add task to inbox
tududi-api.sh add-task "name" "description" [project_id]

# List tasks in inbox (no project)
tududi-api.sh list-inbox

# List all projects
tududi-api.sh list-projects

# Get single task details
tududi-api.sh get-task <task_id>

tududi-suggest.sh

Analyze task name/description and suggest priority, tags, and available projects.

tududi-suggest.sh "Task name" "Optional description"

Output: JSON with suggestions.

Configuration

Change Reminder Time

Edit openclaw.json:

{
  "cron": {
    "jobs": [{
      "name": "Tududi Morning Reminder",
      "schedule": {
        "kind": "cron",
        "expr": "0 9 * * *",
        "tz": "Europe/Paris"
      }
    }]
  }
}

Change "0 9" to your preferred hour.

Disable Reminders

openclaw cron remove <job-id>

Customize Reminder Content

Edit the system prompt in heartbeat config:

{
  "agents": {
    "defaults": {
      "heartbeat": {
        "prompt": "Custom reminder logic here..."
      }
    }
  }
}

Troubleshooting

Scripts fail with "TUDUDI_API_KEY not set"

# Test env vars
echo $TUDUDI_API_URL
echo $TUDUDI_API_KEY

# If empty, source your env file or set them:
export TUDUDI_API_KEY="..."

No tasks returned from list-inbox

  1. Verify API connection:

    curl -s -H "Authorization: Bearer $TUDUDI_API_KEY" \
      "$TUDUDI_API_URL/tasks" | jq '.' | head
    
  2. Check if tasks have project_id set (inbox tasks have null)

Reminder not firing at 8 AM

  1. Check gateway logs:

    openclaw logs | grep -i tududi
    
  2. Verify cron job is enabled:

    openclaw cron list
    
  3. Check timezone:

    date
    

Development

Add New Suggestion Rules

Edit scripts/tududi-suggest.sh to add keyword detection:

# Example: detect "meeting" → tag:communication
if echo "$task_name $task_desc" | grep -iE "meeting"; then
  tag_array="${tag_array}\"meeting\","
fi

Test API Directly

API_KEY="..." API_URL="..." ./scripts/tududi-api.sh list-inbox

Support

License

MIT