← Back to Plugins
Tools

Task Tracker

neilellis By neilellis 👁 6 views ▲ 0 votes

Lightweight stateful task management plugin for OpenClaw

GitHub

Install

npm install
npm

Configuration Example

{
  "plugins": {
    "entries": {
      "openclaw-task-tracker": {
        "config": {
          "tasksDir": "my-tasks"
        }
      }
    }
  }
}

README

# OpenClaw Task Tracker

Lightweight stateful task management plugin for [OpenClaw](https://openclaw.ai). Designed for multi-party coordination — scheduling meetings, tracking errands, managing reminders across messaging channels.

## Installation

```bash
# From local path (development)
openclaw plugins install -l /path/to/openclaw-task-tracker

# Restart gateway to load
openclaw restart
```

## Configuration

In your OpenClaw config, optionally set a custom tasks directory:

```json
{
  "plugins": {
    "entries": {
      "openclaw-task-tracker": {
        "config": {
          "tasksDir": "my-tasks"
        }
      }
    }
  }
}
```

Default tasks directory: `tasks/` (relative to workspace).

## Agent Tool

The plugin registers a `task_tracker` tool for AI agents with these actions:

| Action     | Description                          | Required params       |
|------------|--------------------------------------|-----------------------|
| `create`   | Create a new task                    | `name`                |
| `update`   | Update task state/context            | `task_id`             |
| `list`     | List tasks (optionally filter)       | —                     |
| `get`      | Get task details                     | `task_id`             |
| `complete` | Mark task as completed               | `task_id`             |
| `check`    | Find tasks needing attention         | —                     |

### Example: Meeting Coordination

```
Agent: I'll create a task to coordinate the meeting.
→ task_tracker(action: "create", name: "Team sync", type: "meeting",
    participants: [{name: "Dimple"}, {name: "Richard", phone: "+1234567890"}],
    context: {proposed_time: "Tuesday 3pm"})

Agent: Dimple confirmed. Updating the task.
→ task_tracker(action: "update", task_id: "a1b2c3d4",
    state: "waiting", context: {dimple_confirmed: true})

Agent: Everyone confirmed. Marking complete.
→ task_tracker(action: "complete", task_id: "a1b2c3d4")
```

## CLI Commands

```bash
openclaw tasks list              # List all tasks
openclaw tasks list -s pending   # Filter by state
openclaw tasks create "Buy groceries" -t errand
openclaw tasks get <id>          # Show task details
openclaw tasks update <id> -s confirmed
openclaw tasks complete <id>
openclaw tasks check             # Show tasks needing attention
```

## Gateway RPC

Available methods:

- `task-tracker.list` — List tasks (optional `state` filter)
- `task-tracker.create` — Create task (`name` required)
- `task-tracker.update` — Update task (`id` required)
- `task-tracker.get` — Get task (`id` required)
- `task-tracker.complete` — Complete task (`id` required)
- `task-tracker.check` — Check for active tasks

## Task Format

Tasks are stored as individual JSON files:

```json
{
  "id": "a1b2c3d4",
  "name": "Schedule team sync",
  "type": "meeting",
  "state": "pending",
  "participants": [
    { "name": "Dimple", "phone": "+1234567890" },
    { "name": "Richard", "chat_id": 42 }
  ],
  "context": {
    "proposed_time": "Tuesday 3pm",
    "location": "Zoom"
  },
  "workflow": [
    { "wait": "all_confirmed", "then": "send_calendar_invite" }
  ],
  "created_at": "2026-02-12T10:00:00.000Z",
  "updated_at": "2026-02-12T10:30:00.000Z"
}
```

## Development

```bash
npm install
npm run build     # compile TypeScript
npm run dev       # watch mode
```

## License

MIT
tools

Comments

Sign in to leave a comment

Loading comments...