Files
skill-tududi/README.md

251 lines
4.5 KiB
Markdown
Raw Normal View History

# 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
```bash
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:
```bash
export TUDUDI_API_URL="https://todo.dilain.com/api/v1"
export TUDUDI_API_KEY="tt_5e3ac7fc2bf5ae5162ebac5d1d66dcc2ff9d9d0ab343b9d3d4c5a7c439ef67f5"
```
Or configure in `openclaw.json`:
```json
{
"env": {
"vars": {
"TUDUDI_API_URL": "https://todo.dilain.com/api/v1",
"TUDUDI_API_KEY": "tt_5e3ac7fc..."
}
}
}
```
### 3. Restart OpenClaw
```bash
openclaw gateway restart
```
## Usage
### Add a Task to Inbox
```bash
./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
```bash
./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:
```json
{
"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:**
```bash
# 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.
```bash
tududi-suggest.sh "Task name" "Optional description"
```
Output: JSON with suggestions.
## Configuration
### Change Reminder Time
Edit `openclaw.json`:
```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
```bash
openclaw cron remove <job-id>
```
### Customize Reminder Content
Edit the system prompt in heartbeat config:
```json
{
"agents": {
"defaults": {
"heartbeat": {
"prompt": "Custom reminder logic here..."
}
}
}
}
```
## Troubleshooting
### Scripts fail with "TUDUDI_API_KEY not set"
```bash
# 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:
```bash
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:
```bash
openclaw logs | grep -i tududi
```
2. Verify cron job is enabled:
```bash
openclaw cron list
```
3. Check timezone:
```bash
date
```
## Development
### Add New Suggestion Rules
Edit `scripts/tududi-suggest.sh` to add keyword detection:
```bash
# Example: detect "meeting" → tag:communication
if echo "$task_name $task_desc" | grep -iE "meeting"; then
tag_array="${tag_array}\"meeting\","
fi
```
### Test API Directly
```bash
API_KEY="..." API_URL="..." ./scripts/tududi-api.sh list-inbox
```
## Support
- **Issues**: Report on Forge: https://forge.dilain.com/Remora/skill-tududi/issues
- **Docs**: See `SKILL.md` for full feature documentation
## License
MIT