Back to Projects

CLI Task Manager

Backend Development

A Python CLI tool to add, categorize, complete, and delete tasks with persistent local JSON storage.

A command-line interface application that allows users to manage tasks directly from the terminal. It supports adding tasks with categories, listing all tasks, marking tasks as completed, and deleting them. Data persists between sessions using a local JSON file.

Python
CLI
Automation
CLI Task Manager

Project Overview

CLI Task Manager is a command-line application built in Python that lets you manage your to-do list directly from the terminal. It supports the full task lifecycle: adding, listing, completing, and deleting tasks, all persisted locally in a JSON file.

Technical Implementation

Task Operations

The tool provides four core subcommands:

  • add: Create a new task with an optional category
  • list: Display all tasks with their status, date, category, and ID
  • complete: Mark a task as done using its UUID
  • delete: Remove a task permanently by its UUID

Data Persistence

Tasks are stored in a local JSON file, making the tool completely self-contained with no need for a database or external service. Each task is identified by a UUID, ensuring unique identification even across sessions.

CLI Design

The interface uses Python’s argparse module with subcommands, following Unix CLI conventions. The output is clean and readable, showing completion status with [X] and [ ] indicators.

The Challenge

  • Designing a simple yet flexible data model for tasks that supports categories and completion status
  • Implementing reliable data persistence between sessions using a local JSON file
  • Creating an intuitive CLI interface with clear subcommands for each operation

The Approach

  • Used Python dictionaries with UUID-based identifiers stored in a JSON file for lightweight persistence
  • Leveraged argparse subcommands to create a clean, Unix-style CLI interface
  • Implemented category support as optional metadata to keep task creation simple yet flexible

Results

  • A functional CLI task manager that works entirely offline with zero external dependencies
  • Clean terminal output with visual indicators for task completion status
  • Demonstrated proficiency in Python scripting and CLI application design

Impact

You jot down tasks from the terminal and they are still there next time. They live in a text file you can open or copy yourself. Nothing to install, no account to create.

Project Details

Objective

Build a practical, lightweight CLI utility for personal task management that demonstrates clean Python scripting and data persistence.

Theme

Technical and minimalist CLI tool aesthetic.

Date

April 3, 2026

Category

Backend Development

Technologies

Python 3.12
Argparse
JSON (local persistence)
UUID