# no-nonsense-tasks
> 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.
- Author: Divya Jain
- Repository: no-nonsense-tools/tasks-skill
- Version: 20260128131732
- Stars: 0
- Forks: 0
- Last Updated: 2026-02-06
- Source: https://github.com/no-nonsense-tools/tasks-skill
- Web: https://mule.run/skillshub/@@no-nonsense-tools/tasks-skill~no-nonsense-tasks:20260128131732
---
---
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
**No-nonsense task manager.**
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 (safe to run multiple times):
```bash
./scripts/init_db.sh
```
The init script uses a migration system - it only applies new schema changes, so you can safely run it anytime.
Add your first task:
```bash
./scripts/task_add.sh "Build task tracker skill" "Create a SQLite-based task manager" "work,urgent" "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
Safe to run multiple times (uses migration system):
```bash
./scripts/init_db.sh
```
The script:
- Creates `schema_migrations` table to track applied migrations
- Applies only new migrations from `migrations/*.sql`
- Skips already-applied migrations
- Reports what was applied/skipped
Default location: `~/.no-nonsense/tasks.db`
Override with: `export TASKS_DB=/path/to/tasks.db`
### Add Task
```bash
./scripts/task_add.sh
[description] [tags] [status]
```
Examples:
```bash
./scripts/task_add.sh "Fix bug in API"
./scripts/task_add.sh "Review PR #123" "Check the auth changes" "code-review,urgent"
./scripts/task_add.sh "Deploy to prod" "Deploy v2.0" "deploy,critical" "todo"
```
### List Tasks
List all tasks (sorted by status priority):
```bash
./scripts/task_list.sh
```
List tasks by status:
```bash
./scripts/task_list.sh todo
./scripts/task_list.sh in-progress
./scripts/task_list.sh done
```
### Show Task Details
```bash
./scripts/task_show.sh
```
Example:
```bash
./scripts/task_show.sh 5
```
### Move Task to Different Status
```bash
./scripts/task_move.sh
```
Examples:
```bash
./scripts/task_move.sh 3 todo # Move to todo
./scripts/task_move.sh 7 in-progress # Start working on it
./scripts/task_move.sh 12 done # Mark as complete
```
### Update Task Fields
```bash
./scripts/task_update.sh
```
Fields: `title`, `description`, `tags`, `status`
Examples:
```bash
./scripts/task_update.sh 5 title "Updated title"
./scripts/task_update.sh 5 description "New description"
./scripts/task_update.sh 5 tags "new,tags,here"
```
### Update Tags (Shortcut)
```bash
./scripts/task_tag.sh
```
Example:
```bash
./scripts/task_tag.sh 8 "urgent,bug,frontend"
```
### Filter by Tag
```bash
./scripts/task_filter.sh
```
Examples:
```bash
./scripts/task_filter.sh urgent
./scripts/task_filter.sh work
```
### Delete Task
```bash
./scripts/task_delete.sh
```
Example:
```bash
./scripts/task_delete.sh 15
```
### 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" "" "" "backlog"`
2. Move tasks to todo when ready: `task_move.sh todo`
3. Start work: `task_move.sh in-progress`
4. Complete: `task_move.sh 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 in-progress`
- Plan your day: `task_list.sh todo`
- Review completed items: `task_list.sh done`
## Database Location
By default, the database is stored at `~/.no-nonsense/tasks.db`.
To use a different location, set the environment variable:
```bash
export TASKS_DB=/path/to/custom/tasks.db
```
Add to your shell profile to make it persistent.
## Schema Migrations
The skill uses a migration system for safe schema evolution:
- Migrations live in `migrations/*.sql` (numbered: `001_`, `002_`, etc.)
- `schema_migrations` table tracks which migrations have been applied
- `init_db.sh` automatically applies new migrations and skips old ones
- Safe to run `init_db.sh` anytime - it won't break existing data
**Adding new migrations:**
1. Create `migrations/00X_description.sql` (next number in sequence)
2. Write your SQL schema changes
3. Run `init_db.sh` - it will apply only the new migration
4. The migration is tracked and won't run again
Example migration naming:
- `001_initial_schema.sql`
- `002_add_priority.sql`
- `003_add_due_dates.sql`