A comprehensive command-line personal management tool built with Python that helps you organize todos, projects, moods, and Windows settings through an intuitive terminal interface.
- Add todos: Create new tasks with automatic ID assignment
- List todos: View all tasks with completion status (β /β)
- Toggle status: Mark tasks as complete/incomplete
- Set done: Force complete a task
- Update tasks: Modify existing todo items
- Delete todos: Remove individual tasks or clear all at once
- Package operations: Handle grouped tasks (tasks starting with "__")
- Add projects: Register project names with their directories
- Open in VSCode: Quickly launch projects in Visual Studio Code
- List projects: View all registered projects
- Update directories: Modify project paths
- Delete projects: Remove project entries
- CLI integration: Access PowerShell, Command Prompt, and Bash directly
- Folder organization: Group projects into folders for better organization
- Issue tracking: Record common problems or moods (boredom, anxiety, etc.)
- Routine suggestions: Add recommended routines for specific issues
- Mood-based help: Get suggested routines when experiencing certain moods
- Smart matching: Automatically link routines to existing issues
- Theme control: Switch between light/dark mode for system and apps
- Quick app access: Open common Windows apps (Music, Edge, Store, Settings, etc.)
- Web search: Quick search on Google, Bing, YouTube
- Productivity tools: Access Calendar, Mail, Photos, Camera, Maps
- Prayer times: Quick access to Muslim prayer times
- Python 3.7+
- Visual Studio Code (for project opening feature)
- Windows OS (for Windows settings features)
- Clone the repository:
git clone https://github.com/Bardala/Terminal-Task-master
cd terminal-task-manager- Install dependencies:
pip install -r requirements.txt- Run the application:
python main.pyWhen you start the application, you'll see the main prompt:
bardala>
Manage your task list:
bardala> todo
todo> help
Available commands:
add, toggle, done, list, delete, update, delete_all, clear, help
todo> add
add new todo
>>> Complete project documentation
>>> Buy groceries
>>> /
todo> list
1. Complete project documentation - β
2. Buy groceries - β
todo> toggle 1
'Complete project documentation' is now completed
todo> list
1. Complete project documentation - β
2. Buy groceries - β
Manage and open your coding projects:
bardala> project
project> add
Enter project name: my-app
Enter project dir: C:/Projects/my-app
project> list
my-app: C:/Projects/my-app
project> open my-app
# Opens the project in VSCode
Manage routines for different emotional states:
bardala> mood
mood> add
>>> What is the issue?
>> boredom
>>> What is the routine?
>> Watch philosophical videos
mood> mood
>>> What is your mood?
1. boredom
>> boredom
- Watch philosophical videos
Quick Windows utilities:
bardala> settings
settings> dark
Dark mode turned on
settings> light
Light mode turned on
settings> google
Enter search query: python tutorials
# Opens Google search in Edge
settings> youtube
Enter search query: music for coding
# Opens YouTube search
help- Show available commands for current modeclear- Clear the screen/- Exit current mode and return to main menu//- Exit the application entirely
The application uses SQLite with the following tables:
| Column | Type | Constraints | Description |
|---|---|---|---|
| id | INTEGER | PRIMARY KEY | Unique identifier for each task |
| task | TEXT | NOT NULL | The task description |
| due_date | TEXT | Optional due date for the task | |
| status | BOOLEAN | NOT NULL | Completion status (0 = incomplete, 1 = complete) |
| created_at | TEXT | Timestamp when the task was created |
| Column | Type | Constraints | Description |
|---|---|---|---|
| id | INTEGER | PRIMARY KEY | Unique identifier for each project |
| name | TEXT | NOT NULL, UNIQUE | Project name (must be unique) |
| directory | TEXT | NOT NULL, UNIQUE | File system path to the project directory |
| Column | Type | Constraints | Description |
|---|---|---|---|
| id | INTEGER | PRIMARY KEY | Unique identifier for each issue |
| issue | TEXT | NOT NULL, UNIQUE | Problem or emotional state description |
| created_at | TEXT | Timestamp when the issue was recorded |
| Column | Type | Constraints | Description |
|---|---|---|---|
| id | INTEGER | PRIMARY KEY | Unique identifier for each routine |
| issue_id | INTEGER | FOREIGN KEY REFERENCES issues(id) | Links to the associated issue |
| routine | TEXT | NOT NULL | Suggested action or routine |
| created_at | TEXT | Timestamp when the routine was created |
| Column | Type | Constraints | Description |
|---|---|---|---|
| id | INTEGER | PRIMARY KEY | Unique identifier for each folder |
| name | TEXT | NOT NULL, UNIQUE | Folder name for organizing projects |
| Column | Type | Constraints | Description |
|---|---|---|---|
| item_id | INTEGER | FOREIGN KEY REFERENCES projects(id) | Links to a project |
| folder_id | INTEGER | FOREIGN KEY REFERENCES folders(id) | Links to a folder |
| PRIMARY KEY | (item_id, folder_id) | COMPOSITE PRIMARY KEY | Ensures unique project-folder combinations |
terminal-task-manager/
βββ main.py # Application entry point
βββ controllers/ # Command handlers
β βββ base_controller.py # Base class for all controllers
β βββ todos.py # Todo management
β βββ vsCodeProjectOpener.py # Project management
β βββ mood_manager.py # Mood and routine management
β βββ windows_settings.py # Windows utilities
βββ database/ # Data persistence
β βββ sql_data_store.py # Database operations
β βββ migrations/ # Database schema
βββ utils/ # Utilities
β βββ error_handler.py # Error handling
β βββ helpers.py # Common functions
βββ enums/ # Constants and enums
βββ requirements.txt # Dependencies
The project uses Black for code formatting with 100 character line length.
- Create a new controller class inheriting from
BaseController - Implement command methods and add to
command_dict - Register the controller in
main.py
Add new SQL files in database/migrations/ following the naming pattern V{version}__description.sql
- Fork the repository
- Create a feature branch
- Make your changes
- Commit with descriptive messages
- Push to your fork
- Create a pull request
- Database issues: Delete
database/data_store.dbto reset - VSCode not opening: Ensure VSCode is installed and in PATH
- Permission errors: Run as administrator for Windows settings features
- Color issues: Ensure your terminal supports ANSI colors
This tool embodies a "mission framework" approach to problem-solving - creating systematic routines and solutions for recurring life challenges. It serves as both a productivity tool and a knowledge base for personal growth strategies.
Note: This is a personal productivity tool designed for Windows environments. Some features may not work on other operating systems.