terminaltask

module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 3, 2026 License: GPL-3.0

README

terminaltask

CI Release codecov Go Report Card

terminaltask is a keyboard-driven task manager that runs directly in your terminal. It provides a clean, minimal interface for capturing, reviewing, and updating tasks without leaving the command line.

Features

  • Task management: Create, edit, delete, and mark tasks as completed.
  • List view: Navigate through tasks with a focused, scrollable list.
  • Keyboard first: Drive everything with keys – no mouse required.
  • Date picker: Set due dates via a keyboard-driven date picker.
  • Inline help: Toggle contextual help with key bindings in both list and edit views.
  • Themed UI: Uses lipgloss and other Charm libraries for a pleasant terminal UI.

Installation

Ensure you have Go installed (version 1.20 or higher is recommended).

Building from Source
  1. Clone the repository:

    git clone https://github.com/jacobdanielrose/terminaltask.git
    cd terminaltask
    
  2. Build the application using the Makefile:

    make build
    ./bin/terminaltask
    
Downloading Binaries

You can also download pre-built binaries from the GitHub releases page:

Download the appropriate archive for your OS, extract it, and run the binary from your terminal.

Usage

  • Navigation:

    • Use arrow keys or j/k to move through the task list.
    • Press n to create a new task.
    • Press e to edit the currently selected task.
    • Press space to toggle a task as completed.
    • Press esc to exit edit mode.
    • Press ctrl+c at any time to quit.
  • Editing:

    • Text input fields for title and description.
    • bubble-datepicker (thanks EthanEFung!) for selecting task due dates.
    • Use enter to move between fields.
    • When the date picker is focused, press tab to move focus from the year/month header down to the calendar, and shift+tab to move focus back up to the header.
    • Press ctrl+s to save changes.
    • Press esc to exit the edit menu without saving.
  • Shortcuts:

    • ? to toggle the help menu and view key bindings in the list view.
    • ctrl+o to toggle the help menu and view key bindings in the edit view.

Testing

This project uses Go’s standard testing tools.

  • Run all tests:

    make test
    
  • Run tests with coverage (-cover):

    make test cover
    
  • Generate a coverage profile:

    make test coverage
    

Continuous integration runs the test suite and updates coverage on every push and pull request.

Development / Roadmap

This project is actively developed. Some planned enhancements include:

  • Expanding test coverage across core packages (internal/task, internal/store, internal/app).
  • Filtering out completed tasks.
  • Filtering by description.
  • Synchronizing with an external CalDAV server.

If you have ideas for improvements or new features, feel free to open an issue or reach out at jacobdanielrose@protonmail.com.

Contributing

Contributions are welcome! Please fork the repository and submit a pull request with your changes.
Tests are appreciated where practical, especially for core behavior in the task model, storage, and app update logic.

License

This project is licensed under the GNU General Public License. See the LICENSE file for details.

Contact

For questions or support, please feel free to open an issue on GitHub.

Directories

Path Synopsis
cmd
terminaltask command
internal
app
Package app contains the primary Bubble Tea application model for terminaltask.
Package app contains the primary Bubble Tea application model for terminaltask.
task
Package task defines the Task type and related styles, key bindings, and messages used to represent and render tasks in the list view.
Package task defines the Task type and related styles, key bindings, and messages used to represent and render tasks in the list view.
task/editmenu
Package editmenu provides a Bubble Tea sub-model for creating and editing tasks, including a form, validation, and contextual help.
Package editmenu provides a Bubble Tea sub-model for creating and editing tasks, including a form, validation, and contextual help.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL