home / skills / openclaw / skills / no-nonsense-tasks

no-nonsense-tasks skill

/skills/dvjn/no-nonsense-tasks

This skill provides a no-nonsense SQLite-backed task manager to track tasks by status, description, and tags for personal and project workflows.

npx playbooks add skill openclaw/skills --skill no-nonsense-tasks

Review the files below or copy the command above to add this skill to your agents.

Files (17)
SKILL.md
3.3 KB
---
name: no-nonsense-tasks
description: No-nonsense task manager using SQLite. Track tasks with statuses (backlog, todo, in-progress, done), descriptions, and tags. Use when managing personal tasks, to-do items, project tracking, or any workflow that needs status-based task organization. Supports adding, listing, filtering, updating, moving, and deleting tasks.
---

# No Nonsense Tasks

Simple SQLite-backed task tracking. No fluff, no complexity, just tasks that get done.

## Prerequisites

- `sqlite3` CLI tool must be installed

## Quick Start

Initialize the database:

```bash
./scripts/init_db.sh
```

Add your first task:

```bash
./scripts/task_add.sh "Build task tracker skill" \
  --description "Create a SQLite-based task manager" \
  --tags "work,urgent" \
  --status todo
```

List all tasks:

```bash
./scripts/task_list.sh
```

## Task Statuses

Tasks flow through four statuses:

- **backlog** - Ideas and future tasks
- **todo** - Ready to work on
- **in-progress** - Currently being worked on
- **done** - Completed tasks

## Commands

### Initialize Database

```bash
./scripts/init_db.sh
```

Default location: `~/.no-nonsense/tasks.db`  
Override with: `export NO_NONSENSE_TASKS_DB=/path/to/tasks.db`

### Add Task

```bash
./scripts/task_add.sh <title> [options]
```

**Options:**
- `-d, --description TEXT` - Task description
- `-t, --tags TAGS` - Comma-separated tags
- `-s, --status STATUS` - Task status (default: backlog)

**Example:**
```bash
./scripts/task_add.sh "Deploy to prod" --description "Deploy v2.0" --tags "deploy,critical" --status todo
```

### List Tasks

```bash
./scripts/task_list.sh [--status STATUS]
```

**Examples:**
```bash
./scripts/task_list.sh              # All tasks
./scripts/task_list.sh --status todo
```

### Show Task Details

```bash
./scripts/task_show.sh <task_id>
```

### Move Task to Different Status

```bash
./scripts/task_move.sh <task_id> --status <STATUS>
```

**Example:**
```bash
./scripts/task_move.sh 7 --status in-progress
```

### Update Task Fields

```bash
./scripts/task_update.sh <task_id> [options]
```

**Options:**
- `--title TEXT` - Update title
- `-d, --description TEXT` - Update description
- `-t, --tags TAGS` - Update tags (comma-separated)
- `-s, --status STATUS` - Update status

### Update Tags (Shortcut)

```bash
./scripts/task_tag.sh <task_id> --tags <TAGS>
```

**Example:**
```bash
./scripts/task_tag.sh 8 --tags "urgent,bug,frontend"
```

### Filter by Tag

```bash
./scripts/task_filter.sh <tag>
```

### Delete Task

```bash
./scripts/task_delete.sh <task_id>
```

### View Statistics

```bash
./scripts/task_stats.sh
```

Shows count of tasks by status and total.

## Usage Tips

**Typical workflow:**

1. Add new ideas to backlog: `task_add.sh "Task idea" --status backlog`
2. Move tasks to todo when ready: `task_move.sh <id> --status todo`
3. Start work: `task_move.sh <id> --status in-progress`
4. Complete: `task_move.sh <id> --status done`

**Tag organization:**

- Use tags for categories: `work`, `personal`, `urgent`, `bug`, `feature`
- Combine tags: `urgent,work,api` or `personal,home,shopping`
- Filter by any tag: `task_filter.sh urgent`

**Status filtering:**

- Focus on current work: `task_list.sh --status in-progress`
- Plan your day: `task_list.sh --status todo`
- Review completed: `task_list.sh --status done`

Overview

This skill is a no-nonsense SQLite-backed task manager for simple, status-driven task tracking. It focuses on core task operations — add, list, filter, update, move, and delete — with lightweight tag support and a small set of statuses. It’s ideal for users who want straightforward, scriptable task management without web UIs or heavy dependencies.

How this skill works

The skill stores tasks in a local SQLite database (default: ~/.no-nonsense/tasks.db) and provides shell scripts to operate on that database. Each task has a title, description, comma-separated tags, and one of four statuses: backlog, todo, in-progress, or done. Scripts handle initializing the DB, adding tasks, listing and filtering by status or tag, showing details, moving between statuses, updating fields, and deleting tasks.

When to use it

  • You want a minimal, local task tracker with no external services.
  • You prefer CLI/scriptable workflows and automation hooks.
  • You need status-based organization (backlog → todo → in-progress → done).
  • You want lightweight tagging and simple filters for prioritization.
  • You need an archiveable, single-file SQLite datastore for backups.

Best practices

  • Keep titles concise and use the description for details to make lists scannable.
  • Use a small consistent set of tags (e.g., work, personal, urgent, bug) for predictable filtering.
  • Move tasks through statuses as work progresses: backlog → todo → in-progress → done.
  • Back up the SQLite file regularly or set NO_NONSENSE_TASKS_DB to a versioned path for snapshots.
  • Use scripts in automation (cron, CI, or shell aliases) to seed daily todo lists or generate reports.

Example use cases

  • Capture quick ideas to backlog and triage them later with tags and status moves.
  • Prepare a daily worklist by listing tasks with status todo or in-progress.
  • Track feature work or bugfixes using tags to group related items across projects.
  • Automate task creation from other tools by calling task_add.sh in scripts or webhooks.
  • Generate simple statistics or reports of task counts by status for weekly reviews.

FAQ

How do I change the database location?

Set the NO_NONSENSE_TASKS_DB environment variable to the desired path before running scripts.

What statuses are supported and can I add more?

Supported statuses are backlog, todo, in-progress, and done. The scripts and schema are built for these four; adding new statuses requires editing the scripts and schema accordingly.