# 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 <task_id> ``` Example: ```bash ./scripts/task_show.sh 5 ``` ### Move Task to Different Status ```bash ./scripts/task_move.sh <task_id> <new_status> ``` 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 <task_id> <field> <value> ``` 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 <task_id> <tags> ``` Example: ```bash ./scripts/task_tag.sh 8 "urgent,bug,frontend" ``` ### Filter by Tag ```bash ./scripts/task_filter.sh <tag> ``` Examples: ```bash ./scripts/task_filter.sh urgent ./scripts/task_filter.sh work ``` ### Delete Task ```bash ./scripts/task_delete.sh <task_id> ``` 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 <id> todo` 3. Start work: `task_move.sh <id> in-progress` 4. Complete: `task_move.sh <id> 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`