Skip to content

vladevelops/tasker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Note

The project is new and may have some bugs

TASKER

tasker is a lightweight, local-first Command Line Interface (CLI) tool designed to manage and organize your tasks using human-readable Markdown files.

Features

  • Local-First & Text-Based: Every task is stored in its own folder with a dedicated TASK.md file.
  • Smart Metadata: Built-in support for filtering by STATUS, PRIORITY, and custom TAGS.
  • Auto-Sorting: The ls command automatically parses and ranks open tasks from highest to lowest priority.
  • No External DB: Your filesystem is your database.

Inspiration

This project is heavily inspired by the task management workflow and design proposed by Tsoding. You can check out his work and content here:


Installation

Ensure you have Go installed, clone the repository, and build the binary:

git clone [https://github.com/vladevelops/tasker.git](https://github.com/vladevelops/tasker.git)
cd tasker
go build -o tasker
go install tasker

Or after go build -o tasker just move the binary to your local system path (optional):

mv tasker /usr/local/bin/

Usage

Run the global help menu to see an overview of available commands:

tasker -h

Commands

1. Add a Task

Creates a new task folder under ./tasks/ with a templated TASK.md file.

tasker add Implement authentication feature

To customize status or priority during creation, check subcommand flags via tasker add -h.

2. List Open Tasks

Lists all current OPEN tasks sorted from highest to lowest priority.

tasker ls

Filter your tasks on the fly by tags using -t or --tags:

tasker ls -t frontend
tasker ls -t bug,refactor

3. Close a Task

Closes an open task by its ID/folder suffix and prompts for a mandatory resolution reason.

tasker close 7 Feature deployed successfully to staging

This updates the inner status to CLOSE and appends your reason to the task notes. The folder in self becomes a .folder so it can be filtered


Architecture & File Structure

Tasks are contained within a root ./tasks/ directory using an organized, predictable naming layout:

tasks/
├── 1_NEW_FOO_01_07_2026/
│   └── TASK.md
└── 7_NEW_MOO_07_07_2026/
    └── TASK.md

The TASK.md Structure

Inside each directory, metadata is maintained at the top of the file using predictable headers that tasker updates dynamically:

# Implement authentication feature

- STATUS: OPEN
- PRIORITY: 100
- TAGS: auth, backend

NOTES:
- Use JWT for session tokens.

TODO:
- [ ] Set up middleware
- [ ] Write integration tests

Contributing

  1. Fork the project.
  2. Create your feature branch (git checkout -b feature/new_feature).
  3. Commit your changes (git commit -m 'Add some new_feature').
  4. Push to the branch (git push origin feature/new_feature).
  5. Open a Pull Request.

Future Development & Roadmap

Here are the upcoming features and improvements planned for tasker:

  • Neovim Plugin Integration: Create a native lazy.nvim plugin to toggle, add, close and update tasks dynamically via a floating UI window or Telescope picker without leaving the editor.
  • update Command: Implement an interactive or flag-based subcommand to quickly modify existing task metadata (e.g., change priority, append tags, or modify titles) directly from the terminal.

License

Distributed under the MIT License. See LICENSE for more information.

About

A lightweight, local-first Command Line Interface (CLI) tool designed to manage and organize your tasks using human-readable Markdown files.

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors