Skip to main content

Yui - personal task manager

Git based personal task manager. 100% command line. (also, Japanese girl name)

According to TDD as described in "Extreme Programming: Test Driven Development" by Kent Beck, we need to start every day with blank sheet of paper, white down small tasks and stroke out what is done. This is digital replacement for that paper sheets.

Install

Pip 3

pip3 install yui

4 dummies

  1. yui without arguments will display help

Workflow:

  1. Add task to the heap yui create task name or short descriprion
    1. Show tasks in heap yui list heap
  2. Pick the task to current day schedule yui pick %taskId%
    1. Show tasks for current day yui list cur
  3. Open task in text editor yui open %taskId%
    1. Task file is just md file with yaml header
    2. Adjust status in header
    3. Write any notes below
    4. Save
  4. When you done working, or before next day
    1. Move unfinished tasks back to heap yui reset all
    2. Archive tasks with status done yui archive today
  5. View archive for specific date yui list 2023-01-11
  6. Run manual git command on task list yui git %git_command% %git_command_args%
  7. Adjust visible scope with yui scope

Optional configuration: .yui/config.yaml .yui/projects/%projectName%.yaml

How it works

  1. There is git repository behind the scenes. So you have history and you can sync tasks using any git server. History, branches, etc.
    1. Create/pick/reset/archive commands will invoke git add + git commit commands automatically.
  2. Task data stored in plain text files.
    1. Format markdown(.md) with yaml header.
    2. You work with single task using plain text editor, like kate
  3. yui tool is used to organize and navigate .md files

The method

Step 1: Write it down and forget.

Once you spot new task or idea - you just add it to the heap, and continue with your current work. So you stay focused.

yui create

Heap is the most chaotic, unorganised, unsorted, backlog you can imagine. Do not waste your time on details, just stock pile it in the heap as is.

Imagine that you are working with paper stickers and you have a big box of chaotic notes written on stickers - that's the heap.

yui list heap

Will show you tasks in the heap in form of table

 id | context  | project    | name                                                                   | status
----|----------|------------|------------------------------------------------------------------------|-------
 7  | personal | yui        | show creation date column in task list                                 | new   
 15 | personal | yui        | sanitize slashes in task filename                                      | new

First column is taskId you will need it to manipulate the task

Step 2: pick the task into daily plan

Pick all tasks you are planning to work with today.

yui pick %taskId%

Will pick the task

yui list cur

Will display tasks for current day.

If you made a mistake, you can return the task back to heap

yui reset %taskId%

Step 3: open the task in text editor

yui open %taskId%

Step 4: change status to work

Adjust yaml header, simple replace status: new with status: work.

You can use any custom statuses, but buildin - new, work, done will be highlighted in yui list output.

Step 5: Make notes while you are working on the task

As for it's just .md file, you can make any notes behind yaml header.

Note: you can work with as many tasks at once as you want

That's just plain text files, after all.

Step 6: change task status to done

In yaml header, replace status: work with status: done.

Step 7: check your progress

yui list cur

Will get more green lines while you complete the tasks.

Step 8: Cleanup workspace

yui reset all

Will return unfinished tasks back to the heap

yui archive today

Will move only done tasks to archive folder with current day. You can also use "yesterday" or specify date as "YYYY-MM-DD", or anything else recognized by php strtotime() function.

To view archived tasks use:

yui list YYYY-MM-DD

Step 9: apply git

All git commands are mapped with yui git.

Most used: - yui git log history of changes in tasks - yui git remote add origin %link% link your task list with remote repository - yui git push save local changes to remote repository - yui git pull load fresh changes from remote repository

Apllication working folder

Defaut:

  • Linux: ~/.yui
  • Windows: c:\Users\%username%\AppData\Local\yui Can be overwriten with YUI_HOME environment variable, like YUI_HOME=mypath yui list heap

config.yaml

Location: %application-working-folder%/config.yaml

Example:

---
# % will be replaced with filename
# Examples:
#   To run gui editor: nohup kate % > /dev/null 2>&1 &
#   To run in terminal: mcedit %
# You can use nano, vi, mcedit etc
# If not specified, tsk will try EDITOR environment variable and then mcedit, nano, vim, vi, ee in that order
editor: nohup kate % > /dev/null 2>&1 &
---

Project configuration

Location: %application-working-folder%/projects/%projectName%.yaml

Example file:projects/myProject.yaml:

---
# this will make YUI_PROJECT=myProject yui create test
# work the same way as YUI_PROJECT=myProject YUI_CONTEXT=myContext yui create test
defaultContext: myContext
---

View archives

yui list_archives

Will display list of existing archives, from application working folder

To view tasks in single archive use

yui list %archiveName%

Advanced options

You can pick range of items like so pick 141,142,143..154

Release files for yui 1.0.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yui 1.0.8
File Size Uploaded
yui-1.0.8.tar.gz 14.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yui 1.0.8
File Interpreter ABI Platform
yui-1.0.8-py3-none-any.whl Python 3 none any Details

Total release size: 31.3 kB

Release files / yui-1.0.8.tar.gz

Download URL yui-1.0.8.tar.gz
Size 14.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8060384ee6ba70260d92b0aae8a73ea1f9678b98e85e68dc64c9fda6d80b14e0
BLAKE2b-256 checksum
How to use checksums
58a6a674361ad5d0889d894f9b7e1994428cddf24e9a61b9c486ea548c186164
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.8

Release files / yui-1.0.8-py3-none-any.whl

Download URL yui-1.0.8-py3-none-any.whl
Size 16.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
414c8662b92e46f29ad10879b9030234e1f700396656fa2318efa20f5af51bd9
BLAKE2b-256 checksum
How to use checksums
ae39e3086c3421af7d16d1ad69d2dbf70ac8dfca5c405fc263e97c46c8c20fdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.8

Release history Release notifications | RSS feed

This release

1.0.8 This release

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page