Managing GitLab todos inbox. Use when listing, filtering, or triaging GitLab todos (mark done, mark pending).
Scanned 5/28/2026
Install to Claude Code
npx -y skills add bendrucker/claude --skill todos --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Todos?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/bendrucker-todos)More formats (shields.io, HTML) on the badges page.
---
name: gitlab:todos
description: Managing GitLab todos inbox. Use when listing, filtering, or triaging GitLab todos (mark done, mark pending).
---
# GitLab Todos
Manage the GitLab todos inbox via `glab api`.
## Listing
```bash
glab api /todos --paginate | jq '[.[] | select(.state == "pending")]'
```
### Fields
| Field | Description |
|-------|-------------|
| `id` | Todo ID for actions |
| `action_name` | `assigned`, `mentioned`, `build_failed`, `approval_required`, `review_requested`, `directly_addressed` |
| `target_type` | `MergeRequest`, `Issue` |
| `target.title` | Target title |
| `target.web_url` | Browser URL |
| `state` | `pending`, `done` |
| `project.path_with_namespace` | Full project path |
## Actions
```bash
glab api -X POST /todos/{id}/mark_as_done # Mark single done
glab api -X POST /todos/mark_as_done # Mark all done
```
## Filtering
Filter in jq after the API call:
```bash
# By action
... | jq '[.[] | select(.state == "pending" and .action_name == "review_requested")]'
# MRs only
... | jq '[.[] | select(.state == "pending" and .target_type == "MergeRequest")]'
```
## Bulk Mark Done
```bash
glab api /todos --paginate | \
jq -r '[.[] | select(.state == "pending")] | .[].id' | \
xargs -I {} glab api -X POST /todos/{}/mark_as_done
```
No comments yet. Be the first to comment!