{"id":33185857,"url":"https://github.com/MikyStar/CLI-Manager","last_synced_at":"2025-11-30T14:03:15.828Z","repository":{"id":38055880,"uuid":"315464741","full_name":"MikyStar/CLI-Manager","owner":"MikyStar","description":"Providing an easy and usefull Command Line Interface for managing tasks locally on the fly","archived":false,"fork":false,"pushed_at":"2025-10-15T16:24:08.000Z","size":3018,"stargazers_count":22,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-16T14:36:24.098Z","etag":null,"topics":["cli","management","nodejs","task-manager","todolist","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MikyStar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-11-23T23:20:57.000Z","updated_at":"2025-10-15T16:24:11.000Z","dependencies_parsed_at":"2025-09-13T22:16:27.427Z","dependency_job_id":"925e55e1-95f3-4a42-9cf4-a7bfbfab9fdc","html_url":"https://github.com/MikyStar/CLI-Manager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MikyStar/CLI-Manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MikyStar%2FCLI-Manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MikyStar%2FCLI-Manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MikyStar%2FCLI-Manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MikyStar%2FCLI-Manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MikyStar","download_url":"https://codeload.github.com/MikyStar/CLI-Manager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MikyStar%2FCLI-Manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27394204,"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","status":"online","status_checked_at":"2025-11-30T02:00:05.582Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cli","management","nodejs","task-manager","todolist","typescript"],"created_at":"2025-11-16T05:00:20.103Z","updated_at":"2025-11-30T14:03:15.797Z","avatar_url":"https://github.com/MikyStar.png","language":"TypeScript","funding_links":[],"categories":["\u003ca name=\"todo-manager\"\u003e\u003c/a\u003eTodo managers"],"sub_categories":[],"readme":"![npm version](https://img.shields.io/npm/v/cli-task-manager)\n![npm downloads](https://img.shields.io/npm/dm/cli-task-manager)\n![npm license](https://img.shields.io/npm/l/cli-task-manager)\n[![code climate maintainability](https://api.codeclimate.com/v1/badges/2f735b091e3790be6c8f/maintainability)](https://codeclimate.com/github/MikyStar/CLI-Manager/maintainability)\n\n# CLI Task Manager\n\nProviding an easy and usefull Command Line Interface for managing tasks on the fly\n\nWill store inside a local file your tasks in a simple JSON format so you can track their evolution using version control.\n\n![Use](./assets/use.gif)\n\n---\n\n# Table of content\n\n- [Installation](#installation)\n- [Use](#use)\n  - [Init](#init)\n  - [Files](#files)\n    - [The storage file](#the-storage-file)\n    - [The config file](#the-config-file)\n  - [Printing arguments](#printing-arguments)\n  - [Commands](#commands)\n- [Intended workflow](#intended-workflow)\n- [Changelog](#changelog)\n\n---\n\n# Installation\n\nRequires [NPM](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)\n\n```sh\n# Install package\n\nnpm i -g cli-task-manager\n# Or\npnpm add -g cli-task-manager\n# Or\nyarn add -g cli-task-manager\n\ntask --version # Print installed version\ntask --help # Print the manuel\n```\n\n---\n\n# Use\n\n## Init\n\n```sh\ntask storage\t# Will generate a task storage file 'tasks.json' under working directory\ntask storage ./tasks/v0.1.0.json\t# Will generate a task storage file under specified location\ntask config\t# Will generate the optional config file 'task.config.json' to pass default arguments to the CLI\n```\n\n### Files\n\n- `tasks.json or the name you want`, a storage file\n- `task.config.json`, the configuration file, **optional**\n\n#### The storage file\n\nBy default named `tasks.json` in your working directory, he stores your tasks and states\n\n\u003e If your storage file is different than the default `tasks.json`, you either have to pass the _storage_ argument for every [CLI commands](#printing-arguments) or use the _storageFile_ attribute in the [config file](#the-config-file)\n\n_Example:_\n\n```sh\ntask storage [\u003crelative path\u003e] # Create a task storage file, path optional\n```\n\n```json\n{\n  \"meta\": {\n    \"states\": [\n      {\n        \"name\": \"todo\",\n        \"hexColor\": \"#ff8f00\",\n        \"icon\": \"☐\"\n      },\n      {\n        \"name\": \"wip\",\n        \"hexColor\": \"#ab47bc\",\n        \"icon\": \"✹\"\n      },\n      {\n        \"name\": \"to test\",\n        \"hexColor\": \"#2196f3\",\n        \"icon\": \"♦\"\n      },\n      {\n        \"name\": \"done\",\n        \"hexColor\": \"#66bb6a\",\n        \"icon\": \"✔\"\n      }\n    ]\n  },\n  \"datas\": [\n    {\n      \"name\": \"Add more stuff\",\n      \"description\": \"There's a lot of things to do\",\n      \"state\": \"todo\",\n      \"id\": 0\n    }\n  ]\n}\n```\n\n_states_:\n\nAn `ordered` array of objects that defined task state progression, feel free to add or remove any of them, their colors or icon.\n\n\u003e But every tasks of a storage file need to have their state listed in the meta.states\n\n#### The config file\n\n**Optional** file named `task.config.json` in your working directory, it defines the default argument to pass to the CLI.\n\n_Example:_\n\n```sh\ntask config # Create a task config file\n```\n\n```json\n{\n  \"hideDescription\": true,\n  \"hideTree\": true,\n  \"shouldNotPrintAfter\": false,\n  \"hideCompleted\": true,\n\n  \"depth\" : 3,\n\n  \"storageFile\": \"./tasks/v0.1.0.json\",\n}\n```\n\nCheck [printing options](#printing-arguments) for more options\n\n---\n\n## Printing arguments\n\nCan either be passed as CLI arguments or stored in the [config file](#the-config-file)\n\n| CLI arg              | CLI 'bypass' arg   | Config file attribute                    | Description                               |\n|----------------------|--------------------|------------------------------------------|-------------------------------------------|\n| --storage \\\u003cpath\u003e    | /                  | \"storageFile\": \"./path/storageFile.json\" | Which storage file to use, if not default |\n| --depth \\\u003cn\u003e         | /                  | \"depth\": n                               | Reduce the child subtask level depth      |\n| --hide-description   | --show-description | \"hideDescription\": true                  | Hide tasks descriprion                    |\n| --hide-completed     | --show-completed   | \"hideCompleted\": true                    | Hide tasks which reached final state      |\n| --hide-tree          | /                  | \"hideTree\": true                         | Hide tree branches                        |\n| --no-print           | --print            | \"shouldNotPrintAfter\": true              | Don't print task list after edition       |\n| --group \\\u003cattribute\u003e | /                  | \"group\": \"state\"                         | Group by attribute (state, id, priority)  |\n| --sort \\\u003casc\\| desc\u003e | /                  | \"sort\": \"desc\"                           | Sort order                                |\n| --clear              | --no-clear         | \"clearBefore\": false                     | Clear before printing                     |\n\n\n\u003e **Priority:** CLI arg \u003e CLI 'bypass' arg \u003e Config file attribute\n\n---\n\n## Commands\n\nYou can use the _help_ flag if you want a quick reminder of the CLI commands\n\n```sh\ntask --help # Full manuel\ntask a --help # Print help for adding task\n\n# Adding tasks\ntask a # Create a new task with interactive prompt\ntask a 5 # Create a new subtask of task 5 with interactive prompt\ntask a 'refactor logs'\t# Create a task 'refactor logs'\ntask a 'better interface' '!!'\t# Create 1 task 'better interface' with a priority of 2\ntask a 'long task' -d 'Some description'\t# Create a task with a Description\ntask a 'a statefull task' -s 'to test'\t# Create a task with the State 'to test'\ntask a 12 'first sub task'\t# Add sub-task to the task n° 12\n\n# View specific\ntask 9\t# Print only what's in task n°9\ntask 9,13\t# Print details on what's in task n°9 and 13\n\n# Editing tasks\ntask e 9 # Edit taks attributes with interactive prompt\ntask e 9 'renaming the task' -s 'wip'\t# Rename task n°9 and change its state\ntask e 9,7,2 -s 'to test'\t# Change state to 'to test'\ntask c 7\t# Put task to final state, 'Check'\ntask i 11,14\t# Pass tasks 11 and 14 to next state, \"Increment\"\ntask i 11,14 -r\t# Pass tasks 11 and 14 and their subtasks to next state, \"Increment\"\n\n# Moving tasks\ntask mv 9,7,11 3\t# Move multiple tasks and subtasks to task as subtasks (maintining tree structure)\n\n# Deleting tasks\ntask d 9,7,11\t# Delting tasks 9, 7 and 11\n\n# Extracting to new file\ntask x 9,7,11 newFile.json\t# Move tasks 9, 7 and 11 to a new storage file ./newFile.json\n```\n\n\u003e CLI commands are ment to help you manage your tasks quicker but you can manually edit them if you want !\n\n# Intended Workflow\n\nStart by a simple `task storage` at the root of your project\n\nCreate and manage your tasks and subtasks with CLI or direct file edition\n\nIf you feel like you should break down your storage file as it become to crowded, cut out some of the tasks into a new storage file, and change the default storage path in your config file (`task config`)\n\nKeep track of stuff you need to do using a VCS like Git\n\nYou may want to create a _tasks_ folder where you could add a new storage file for every release with `task storage ./tasks/v1.json`, with version control, it could act as a changelog for instance\n\nUsing `t` as an alias is also simpler\n\n---\n\n# Changelog\n\nCheck the `tasks` folder to see what has been done !\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMikyStar%2FCLI-Manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMikyStar%2FCLI-Manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMikyStar%2FCLI-Manager/lists"}