summaryrefslogtreecommitdiff
path: root/README.md
blob: 808fc2f8ef74839765ce28ccc517af97d9c09b73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# Task Samurai

<img src="logo.png" alt="tasksamurai logo" width="250" /> <img src="logo_realistic.png" alt="tasksamurai reaalistic logo" width="250" />

Task Samurai is a fast terminal interface for [Taskwarrior](https://taskwarrior.org/) written in Go using the [Bubble Tea](https://github.com/charmbracelet/bubbletea) framework. It shows your tasks in a table and lets you manage them without leaving your keyboard.

## Why does this exist?

- I wanted to tinker with agentic coding. This project was entirely implemented using OpenAI Codex.
- I wanted a faster UI for Taskwarrior than other options like vit which is Python based.
- I wanted something built with Bubble Tea but never had time to deep dive into it.

## How it works

Task Samurai invokes the `task` command to read and modify tasks. The tasks are displayed in a Bubble Tea table where each row represents a task. Hotkeys trigger Taskwarrior commands such as starting, completing or annotating tasks. The UI refreshes automatically after each action so the table is always up to date.

## Hotkeys

### Navigation

- `↑/k` and `↓/j`: move up and down
- `←/h` and `→/l`: move left and right
- `b/pgup`: page up
- `pgdn`: page down
- `u` or `ctrl+u`: half page up
- `ctrl+d`: half page down
- `g/home/0`: go to start
- `G/end`: go to end
- `enter` or `i`: expand/collapse or edit the current cell depending on the column

### Task actions

- `e` or `E`: edit task
- `s`: toggle start/stop
- `d`: mark task done
- `o`: open URL from description
- `U`: undo last done
- `D`: set due date
- `+`: add task
- `r`: random due date
- `R`: edit recurrence
- `a`: annotate task
- `A`: replace annotations
- `p`: set priority
- `t`: edit tags

### Search

- `/` or `?`: start search
- `n` and `N`: next/previous search match

### Misc

- `f`: change filter
- `c`: random theme
- `C`: reset theme
- `space`: refresh tasks
- `H`: toggle help
- `q` or `esc`: close search/help or quit (press `q` when nothing is open)

Example: press `+`, type `Buy milk` and hit Enter to add a new task called "Buy milk".

## Screenshot

![Task Samurai screenshot](screenshot.png)

## Installation

There are two ways to install the `tasksamurai` command:

```bash
go install codeberg.org/snonux/tasksamurai/cmd/tasksamurai@latest
```

Alternatively, clone this repository and run:

```bash
go-task install
```

The second method requires [go-task](https://taskfile.dev/) to be installed.