{"id":21152168,"url":"https://github.com/reykjalin/todui","last_synced_at":"2025-05-07T04:06:40.785Z","repository":{"id":259815069,"uuid":"878751075","full_name":"reykjalin/todui","owner":"reykjalin","description":"Task management and note taking TUI powered by plaintext with full mouse support. Built with Zig.","archived":false,"fork":false,"pushed_at":"2024-11-21T23:23:52.000Z","size":1397,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T04:06:31.912Z","etag":null,"topics":["notes","task-manager","todo","tui","zig"],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reykjalin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-26T02:43:35.000Z","updated_at":"2025-04-15T01:34:16.000Z","dependencies_parsed_at":"2025-03-14T14:53:48.596Z","dependency_job_id":null,"html_url":"https://github.com/reykjalin/todui","commit_stats":null,"previous_names":["reykjalin/todui"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reykjalin%2Ftodui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reykjalin%2Ftodui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reykjalin%2Ftodui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reykjalin%2Ftodui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reykjalin","download_url":"https://codeload.github.com/reykjalin/todui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252810273,"owners_count":21807759,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["notes","task-manager","todo","tui","zig"],"created_at":"2024-11-20T10:35:48.318Z","updated_at":"2025-05-07T04:06:40.767Z","avatar_url":"https://github.com/reykjalin.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Todui\n\n\u003e **Note**\n\u003e\n\u003e I consider Todui to be mostly feature complete at this point.\n\u003e Future development will be slow and mostly consist of minor quality-of-life improvements or fixing little annoyances and bugs that come up.\n\nA filesystem based TUI app for managing todo lists.\nThe [`.todo` file specification](./SPECIFICATION.md) was created to fit this specific implementation.\n\nThe TUI is fully mouse aware so you can use both the keybindings listed below or the mouse to navigate the TUI.\n\nYou can find the planned list of future tasks, including details where applicable, in the [todo](./todo/) directory.\nView the list of tasks by running `todui .` from the root of the repo for the best experience viewing those.\n\n![Todui task list at commit hash `2d2f133904a97292c5ac50917e7ed175fb71a569`](./screenshots/task-list-2d2f133904a97292c5ac50917e7ed175fb71a569.webp)\n\n\n## Installation instructions\n\n### Download binaries\n\nThe tags and releases have binaries available for macOS (arm64 and x86_64), Linux (arm64 and x86_64), and Windows (x86_64).\nYou can download a pre-built binary for your system from there.\nThe binaries are static so you can store them wherever you like and run them from there.\n\n### Build from source\n\n1. Clone this repository or download the source some other way.\n2. Run `zig build -Doptimize=ReleaseSafe --prefix=~/.local` and the `todui` executable will be installed in `~/.local/bin/todui`.\n    * If you build without the `--prefix=~/.local` parameter the binary will be in `./zig-out/bin/todui`. It's static so you can move it wherever you want.\n\n\n## CLI Help\n\n```sh\n$ todui --help\nUsage: todui [storage_folder]\n\nPositional options:\n\n  [storage_folder]  The path to where todui data should be stored.\n                    Defaults to ~/.local/share/todo/ when no path is provided.\n\nGeneral options:\n\n  -h, --help     Print todui help\n  -v, --version  Print todui version\n```\n\nThe `storage_folder` positional argument can be used to change where tasks are stored.\nThe default path is `~/.local/share/` and tasks will be saved in `~/.local/share/todo/`.\nIf you'd like to, for example, have the tasks stored in `~/.config` you can run `todui ~/.config`.\nIf you do, tasks will be saved in `~/.config/todo/`.\n\nThis is very helpful for testing, but also if you'd like to maintain distinct lists for different\npurposes.\nFor example, a complete separation between work and personal lists.\nYou could do the same with tags, but in that case the storage is the same for both.\n\n\n## Keybindings\n\n### Task List\n\n| Key | Action |\n|:---:|:---:|\n| \u003ckbd\u003ej\u003c/kbd\u003e / \u003ckbd\u003edown\u003c/kbd\u003e | Move selection down |\n| \u003ckbd\u003ek\u003c/kbd\u003e / \u003ckbd\u003eup\u003c/kbd\u003e | Move selection up|\n| \u003ckbd\u003eg\u003c/kbd\u003e | Move selection to top |\n| \u003ckbd\u003eG\u003c/kbd\u003e | Move selection to bottom |\n| \u003ckbd\u003eJ\u003c/kbd\u003e / \u003ckbd\u003eshift+down\u003c/kbd\u003e | Move selected task down |\n| \u003ckbd\u003eK\u003c/kbd\u003e / \u003ckbd\u003eshift+up\u003c/kbd\u003e | Move selected task up |\n| \u003ckbd\u003el\u003c/kbd\u003e / \u003ckbd\u003eenter\u003c/kbd\u003e | Open task details view for the selected task |\n| \u003ckbd\u003eA\u003c/kbd\u003e | Create new task, appended to the bottom of the list |\n| \u003ckbd\u003ee\u003c/kbd\u003e | Edit selected task |\n| \u003ckbd\u003ec\u003c/kbd\u003e | Complete selected task |\n| \u003ckbd\u003er\u003c/kbd\u003e | Reload task list |\n| \u003ckbd\u003ef\u003c/kbd\u003e | Open filter view |\n| \u003ckbd\u003eH\u003c/kbd\u003e | Hide the tags column |\n| \u003ckbd\u003etab\u003c/kbd\u003e | Open completed task list view |\n\n### Completed Task List\n\n| Key | Action |\n|:---:|:---:|\n| \u003ckbd\u003ej\u003c/kbd\u003e / \u003ckbd\u003edown\u003c/kbd\u003e | Move selection down |\n| \u003ckbd\u003ek\u003c/kbd\u003e / \u003ckbd\u003eup\u003c/kbd\u003e | Move selection up|\n| \u003ckbd\u003eg\u003c/kbd\u003e | Move selection to top |\n| \u003ckbd\u003eG\u003c/kbd\u003e | Move selection to bottom |\n| \u003ckbd\u003el\u003c/kbd\u003e / \u003ckbd\u003eenter\u003c/kbd\u003e | Open task details view for the selected task |\n| \u003ckbd\u003er\u003c/kbd\u003e | Reload task list |\n| \u003ckbd\u003ef\u003c/kbd\u003e | Open filter view |\n| \u003ckbd\u003eH\u003c/kbd\u003e | Hide the tags column |\n| \u003ckbd\u003etab\u003c/kbd\u003e | Open task list view |\n\n### Task Details\n\n| Key | Action |\n|:---:|:---:|\n| \u003ckbd\u003eh\u003c/kbd\u003e / \u003ckbd\u003eesc\u003c/kbd\u003e | Go back to previous view |\n| \u003ckbd\u003ee\u003c/kbd\u003e | Edit task |\n| \u003ckbd\u003ec\u003c/kbd\u003e | Complete task |\n\n### Task Filter\n\n| Key | Action |\n|:---:|:---:|\n| \u003ckbd\u003eenter\u003c/kbd\u003e | Save filter. Empty filter results in no filtering being applied |\n\n\n## Dev build instructions\n\nThis app is written in Zig and libvaxis and uses the Zig Build system.\nTo build, simply download Zig and run `zig build run`.\nDependencies will automatically be fetched and built for your system.\n\nTo make a release build run `zig build -Doptimize=ReleaseSafe`.\nYou'll find the built release executable in `./zig-out/bin/todui`.\n\n\n## Screenshots\n\n![Todui task list at commit hash `2d2f133904a97292c5ac50917e7ed175fb71a569`](./screenshots/task-list-2d2f133904a97292c5ac50917e7ed175fb71a569.webp)\n![Todui completed tasks at commit hash `2d2f133904a97292c5ac50917e7ed175fb71a569`](./screenshots/completed-tasks-2d2f133904a97292c5ac50917e7ed175fb71a569.webp)\n![Todui task details at commit hash `2d2f133904a97292c5ac50917e7ed175fb71a569`](./screenshots/task-details-2d2f133904a97292c5ac50917e7ed175fb71a569.webp)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freykjalin%2Ftodui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freykjalin%2Ftodui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freykjalin%2Ftodui/lists"}