npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cli-task-manager

v1.0.1

Published

Providing an easy and usefull command line interface for managing tasks with local files

Downloads

33

Readme

npm version npm downloads Snyk Vulnerabilities for npm package npm license code climate maintainability

CLI Task Manager

Providing an easy and usefull Command Line Interface for managing tasks on the fly

Will store inside a local file your tasks in a simple JSON format so you can track their evolution using version control.

Use


Table of content


Installation

Requires NPM

# Install package

npm i -g cli-task-manager
# Or
pnpm add -g cli-task-manager
# Or
yarn add -g cli-task-manager

task --version # Print installed version
task --help # Print the manuel

Use

Init

task storage	# Will generate a task storage file 'tasks.json' under working directory
task storage ./tasks/v0.1.0.json	# Will generate a task storage file under specified location
task config	# Will generate the optional config file 'task.config.json' to pass default arguments to the CLI

Files

  • tasks.json or the name you want, a storage file
  • task.config.json, the configuration file, optional

The storage file

By default named tasks.json in your working directory, he stores your tasks and states

If your storage file is different than the default tasks.json, you either have to pass the storage argument for every CLI commands or use the storageFile attribute in the config file see []

Example:

task storage [<relative path>] # Create a task storage file, path optional
{
	"meta":
	{
		"states": [
			{
				"name": "todo",
				"hexColor": "#ff8f00",
				"icon": "☐"
			},
			{
				"name": "wip",
				"hexColor": "#ab47bc",
				"icon": "✹"
			},
			{
				"name": "to test",
				"hexColor": "#2196f3",
				"icon": "♦"
			},
			{
				"name": "done",
				"hexColor": "#66bb6a",
				"icon": "✔"
			}
		]
	},
	"datas":
	[
		{
			"name": "Add more stuff",
			"description": "There's a lot of things to do",
			"state": "todo",
			"id": 0,
		}
	]
}

states:

An ordered array of objects that defined task state progression

The config file

Optional file named task.config.json in your working directory, it defines the default argument to pass to the CLI.

Example:

task config # Create a task config file
{
	"hideDescription": true,
	"hideTree": true,
	"shouldNotPrintAfter": false,
	"hideCompleted": true,

	"depth" : 3,

	"storageFile": "./tasks/v0.1.0.json",
}

Check printing options for more options


Printing arguments

Can either be passed as CLI arguments or stored in the config file

| CLI arg | CLI 'bypass' arg | Config file attribute | Description | | ----- | ----- | ----- | ----- | | --storage <path> | / | "storageFile": "./path/storageFile.json" | Which storage file to use, if not default | | --depth <n> | / | "depth": n | Reduce the child subtask level depth | | --hide-description | --show-description | "hideDescription": true | Hide tasks descriprion | | --hide-completed | --show-completed | "hideCompleted": true | Hide tasks which reached final state | | --hide-tree | / | "hideTree": true | Hide tree branches | | --no-print | --print | "shouldNotPrintAfter": true | Don't print task list after edition | | --group <attribute> | / | "group": "state" | Group by attribute (state, id, priority) | | --sort <asc|desc> | / | "sort": "desc" | Sort order | | --clear | --no-clear | "clearBefore": false | Clear before printing |

Priority: CLI arg > CLI 'bypass' arg > Config file attribute


Commands

You can use the help flag if you want a quick reminder of the CLI commands

task --help # Full manuel
task a --help # Print help for adding task

# Adding tasks
task a	# Create a new task with interactive prompt
task a 'refactor logs'	# Create a task 'refactor logs'
task a 'better interface' '!!'	# Create 1 task 'better interface' with a priority of 2
task a 'long task' -d 'Some description'	# Create a task with a Description
task a 'a statefull task' -s 'to test'	# Create a task with the State 'to test'
task a 12 'first sub task'	# Add sub-task to the task n° 12

# View specific
task 9	# Print only what's in task n°9
task 9,13	# Print details on what's in task n°9 and 13

# Editing tasks
task e 9	# Edit taks attributes with interactive prompt
task e 9 'renaming the task' -s 'wip'	# Rename task n°9 and change its state
task e 9,7,2 -s 'to test'	# Change state to 'to test'
task c 7	# Put task to final state, 'Check'
task i 11,14	# Pass tasks 11 and 14 to next state, "Increment"
task i 11,14 -r	# Pass tasks 11 and 14 and their subtasks to next state, "Increment"

# Moving tasks
task mv 9,7,11 3	# Move multiple tasks and subtasks to task as subtasks (maintining tree structure)

# Deleting tasks
task d 9,7,11	# Delting tasks 9, 7 and 11

# Extracting to new file
task x 9,7,11 newFile.json	# Move tasks 9, 7 and 11 to a new storage file ./newFile.json

CLI commands are ment to help you manage your tasks quicker but you can manually edit them if you want !

Intended Workflow

Start by a simple task storage at the root of your project

Create and manage your tasks and subtasks with CLI or direct file edition

If 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)

Keep track of stuff you need to do using a VCS like Git

You 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

Using t as an alias is also simpler


Changelog

Check the tasks folder to see what has been done !