gplan is an awesome CLI to-do list management application that helps you keep track of your projects and tasks efficiently.
gplan is a simple yet powerful CLI tool designed to help you manage your projects and tasks effectively from the terminal. Whether you're a developer, a project manager, or just someone who loves to keep things organized, gplan is the perfect tool for you.
- Go
- Cobra - For building powerful modern CLI applications
- SQLite
- Tablewriter - For table formatting in terminal
- Treeprint - For tree formating in terminal
To get a local copy up and running, follow these simple steps.
You have several options to install gplan:
-
Download the official binary:
- Get the appropriate binary for your operating system and computer architecture from the releases page.
- Move the binary to a location in your PATH.
-
Install via Go:
go install github.com/d4r1us-drk/gplan@latest
-
Install using Make:
git clone https://github.com/d4r1us-drk/gplan.git cd gplan make install
gplan allows you to manage projects and tasks with various commands. Below are some usage examples.
-
Create a new project:
gplan new project -n "New Project" -d "Project Description"
-
Create a new task with priority:
gplan new task -n "New Task" -d "Task Description" -D "2024-08-15 23:00" -p "Existing Project" -P 1
Priority levels: 1 (High), 2 (Medium), 3 (Low), 4 (None)
-
Edit an existing project:
gplan edit project 1 -n "Updated Project Name" -d "Updated Description"
-
Edit a task's priority:
gplan edit task 1 -P 2
-
List all projects:
gplan list projects
-
List tasks by project:
gplan list tasks -p "Project Name"
-
Remove a project:
gplan remove project 1
-
Toggle task completion:
gplan toggle 1
For detailed help, use the help command:
gplan help
- Add task and project management
- Add priority levels for tasks
- Implement Cobra framework for improved CLI structure
- Add shell completion support
- Add sub-tasks and sub-projects
- Add a JSON output option to facilitate scripting
- Use MVC Architecture and dependency injection
- Add a TUI interface
- Add a config file with customizable options, like database path, date-time format, etc.
- Add reminders and notifications (this would require a daemon)
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GPLv3 License. See LICENSE
for more information.