{"id":24350956,"url":"https://github.com/webmatze/task_manager","last_synced_at":"2025-12-24T09:21:09.272Z","repository":{"id":271301638,"uuid":"912999470","full_name":"webmatze/task_manager","owner":"webmatze","description":"A command-line task management application built in Ruby that helps you manage tasks and track time spent on each task.","archived":false,"fork":false,"pushed_at":"2025-01-14T12:36:07.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-14T13:48:12.860Z","etag":null,"topics":["task-manager","task-timer","task-tracker"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webmatze.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-06T20:33:53.000Z","updated_at":"2025-01-14T12:36:11.000Z","dependencies_parsed_at":"2025-01-06T22:22:24.860Z","dependency_job_id":"9cb29bb1-0620-47b5-b4dc-5728699c145d","html_url":"https://github.com/webmatze/task_manager","commit_stats":null,"previous_names":["webmatze/task_manager"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Ftask_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Ftask_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Ftask_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Ftask_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webmatze","download_url":"https://codeload.github.com/webmatze/task_manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243158971,"owners_count":20245669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["task-manager","task-timer","task-tracker"],"created_at":"2025-01-18T14:44:54.325Z","updated_at":"2025-12-24T09:21:09.245Z","avatar_url":"https://github.com/webmatze.png","language":"Ruby","readme":"# Ruby Task Manager with Time Tracking\n\nA command-line task management application built in Ruby that helps you manage tasks and track time spent on each task.\n\n[![Task Manager](assets/demo.gif)](https://github.com/webmatze/task_manager)\n\n## Features\n\n- Create and manage tasks\n- Add tags to tasks\n- Mark tasks as complete\n- Delete tasks\n- Track time spent on tasks\n  - Start/stop time tracking\n  - Multiple time entries per task\n  - Total time tracking\n  - Visual indicator for active timing\n- Time reporting\n  - Daily summary of time entries\n  - Total time per day\n  - Chronological listing of all activities\n- Flexible storage options\n  - Local tasks per project/directory\n  - Global tasks accessible from anywhere\n- Persistent storage using JSON\n- Simple command-line interface\n\n## Installation\n\n1. Ensure you have Ruby installed on your system\n2. Clone this repository:\n\n   ```bash\n   git clone https://github.com/webmatze/task_manager.git\n   cd task_manager\n   ```\n\n3. Make the script executable:\n\n   ```bash\n   chmod +x task_manager.rb\n   ```\n\n4. Create a symbolic link to make it available system-wide:\n\n   ```bash\n   sudo ln -s \"$(pwd)/task_manager.rb\" /usr/local/bin/task_manager\n   ```\n\nNow you can use the `task_manager` command from anywhere in your terminal!\n\n## Usage\n\nThe following commands are available:\n\n- `task_manager add \"task description\"` - Add a new task\n- `task_manager list` - Show all tasks\n- `task_manager show \u003ctask id\u003e` - Show detailed task information\n- `task_manager complete \u003ctask id\u003e` - Mark a task as complete\n- `task_manager delete \u003ctask id\u003e` - Remove a task\n- `task_manager start \u003ctask id\u003e` - Start timing a task\n- `task_manager stop \u003ctask id\u003e` - Stop timing a task\n- `task_manager help` - Display available commands\n- `task_manager report` - Show daily time report\n\n### Local vs Global Tasks\n\nThe task manager supports two storage modes:\n\n1. **Local Tasks** (default)\n   - Stored in `tasks.json` in the current directory\n   - Perfect for project-specific tasks\n   - Can be committed to version control\n   - Different task lists for different projects\n\n2. **Global Tasks**\n   - Stored in `~/.task_manager/tasks.json`\n   - Accessible from any directory\n   - Perfect for personal tasks\n   - Single task list across all locations\n\nUse the `--global` flag with any command to access global tasks:\n\n```bash\n# Local task examples\ntask_manager add \"Project specific task\"\ntask_manager list\n\n# Global task examples\ntask_manager --global add \"Call dentist\"\ntask_manager --global list\n```\n\n### Example Usage\n\n```bash\n$ task_manager add \"Write documentation\"\nNew Task added: Write documentation\n\n$ task_manager list\nTasks:\n1. [ ] Write documentation - Total time: 0h 0m\n\n$ task_manager start 1\nStarted time tracking for task 1\n\n$ task_manager stop 1\nStopped time tracking for task 1. Duration: 0h 5m\n\n$ task_manager show 1\nTask 1: [ ] Write documentation\n\nTotal time: 0h 5m\n\nTime entries:\n1. 2023-05-20 14:30 to 2023-05-20 14:35 (0h 5m)\n\n$ task_manager complete 1\nTask 1 marked as complete!\n\n$ task_manager list\nTasks:\n1. [✓] Write documentation - Total time: 0h 5m\n```\n\n### Time Reports\n\nThe task manager can generate detailed daily reports of all time entries:\n\n```bash\n$ task_manager report\nTime Report:\n------------\n\nMonday, May 22, 2023:\nTotal: 2h 15m\n  [1] Write documentation\n      09:00 - 10:30 (1h 30m)\n  [2] Review code\n      14:00 - 14:45 (0h 45m)\n\nSunday, May 21, 2023:\nTotal: 1h 45m\n  [1] Write documentation\n      13:00 - 14:45 (1h 45m)\n```\n\nReports show:\n\n- Daily summaries with total time\n- Individual task entries with start and end times\n- Task IDs for easy reference\n- Chronological ordering (most recent first)\n\nLike other commands, you can use `--global` to see reports for your global tasks:\n\n```bash\ntask_manager --global report\n```\n\n## Data Storage\n\nTasks are automatically saved to one of two locations:\n\n- Local tasks: `tasks.json` in the current directory\n- Global tasks: `~/.task_manager/tasks.json` in your home directory\n\nThe storage location is determined by the presence of the `--global` flag when running commands.\nLocal storage is perfect for project-specific tasks that you might want to commit to version control,\nwhile global storage is ideal for personal tasks that you want to access from anywhere.\n\n## Requirements\n\n- Ruby (version 2.0 or higher)\n- JSON gem (included in Ruby standard library)\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebmatze%2Ftask_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebmatze%2Ftask_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebmatze%2Ftask_manager/lists"}