{"id":21475200,"url":"https://github.com/q1chenl/todoism","last_synced_at":"2025-07-15T09:32:22.120Z","repository":{"id":226375122,"uuid":"768511682","full_name":"Q1CHENL/todoism","owner":"Q1CHENL","description":"A simple and easy-to-use todo TUI","archived":false,"fork":false,"pushed_at":"2024-06-09T09:38:13.000Z","size":2880,"stargazers_count":6,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-13T17:15:02.093Z","etag":null,"topics":["curses","pip","python","task-manager","terminal","todo","todo-app","todolist","tui"],"latest_commit_sha":null,"homepage":"","language":"Python","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/Q1CHENL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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-03-07T08:13:50.000Z","updated_at":"2024-05-31T13:14:43.000Z","dependencies_parsed_at":"2024-03-18T20:26:12.981Z","dependency_job_id":"398b7610-9ff1-4a42-9193-df12e2eaf123","html_url":"https://github.com/Q1CHENL/todoism","commit_stats":null,"previous_names":["q1chenl/todoism"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Q1CHENL%2Ftodoism","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Q1CHENL%2Ftodoism/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Q1CHENL%2Ftodoism/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Q1CHENL%2Ftodoism/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Q1CHENL","download_url":"https://codeload.github.com/Q1CHENL/todoism/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226033299,"owners_count":17563125,"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":["curses","pip","python","task-manager","terminal","todo","todo-app","todolist","tui"],"created_at":"2024-11-23T10:38:43.059Z","updated_at":"2025-07-15T09:32:22.107Z","avatar_url":"https://github.com/Q1CHENL.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# todoism\n\nA powerful yet easy-to-use todo TUI\n\n## Screenshots\n\n![screenshot](https://raw.githubusercontent.com/Q1CHENL/todoism/v1.21.9-release/assets/screenshot-latest.png)\n![screenshot-help](https://raw.githubusercontent.com/Q1CHENL/todoism/v1.21.9-release/assets/screenshot-help-latest.png)\n\n## Highlights\n\n- Simple, intuitive interface\n- Mouse support: click \u0026 scroll\n- Easy task search\n- Customizable: theme, sorting, and more\n- Common Keyboard shortcuts support for editing\n- Vim-like commands available for convenience\n\n## Install and use\n\n- Install: `pip install todoism`\n- Run: `todoism` or `todo`\n- Update: `pip install todoism --upgrade`\n- Use: Invoke help message using command `:help` to see commonly used operations and commands\n\n\u003e [!NOTE]\n\u003e Some terminals does not support mouse click or strike through effect.\n\u003e **Ptyxis** (new default terminal for GNOME 47) does not fully support strikethrough effect. **Ghostty** does not has good support for bold text.\n\u003e You can turn them off in **preference panel** (open with `:pref` as specified in the help message)\n\n### Keycode recording\n\nWhen you first start todoism, you'll be prompted to record key combinations for text navigation.\n\n- **CTRL + LEFT**: Move cursor one word left when editing text\n- **CTRL + RIGHT**: Move cursor one word right when editing text\n- **CTRL + SHIFT + LEFT**: Select text from cursor position to one word left\n- **CTRL + SHIFT + RIGHT**: Select text from cursor position to one word right\n- **ALT + LEFT**:\n  - Move cursor to the beginning of the text\n  - Jump to top task/category\n- **ALT + RIGHT**:\n  - Move cursor to the end of the text\n  - Jump to bottom task/category\n\n\u003e [!NOTE]\n\u003e Some terminals like **Ghostty** and **kitty** may have built-in key bindings that conflict with the above. You need to disable them before recording.\n\n## Develop\n\n- Run with docker in dev mode with test files (run in **project root**):\n\n  1. Build docker image: `docker build -t ubuntu-todoism .`\n  2. Run `./test/todocker.sh`\n\n  - Add `--profile` to enable profiling\n\n- Or run `python -m todoism --dev` directly (for using debugger)\n\n  - Add `--profile` to enable profiling\n\n\u003e Flag `--dev` and `--profile` are not available in PyPI installation\n\n- Automated integration test (Experimental):\n\n  1. Install `wmctrl` with your package manager (for auto window focus)\n  2. Run `python test/integration.py` in **project root**\n\n  - Add `--profile` to enable profiling\n\n  3. Read the instructions printed in the terminal carefully\n\n- Normal Configuration and data files are located in `~/.todoism/`. Test ones are in `test/.todoism`\n\n\u003e [!CAUTION]\n\u003e Todoism is currently under active development and backwards compatibility is not guaranteed as I refine features and data structures. Automatic data migration (tasks, categories, settings) between versions may not be fully supported. Please backup your data when needed. **v1.21 and lower versions are perticularly deprecated!**\n\n## Contribute\n\nIssues and PRs are welcome! Todoism is built from scratch with curses library. Please refer to the curses [docs](https://docs.python.org/3/library/curses.html#module-curses) and [how-to](https://docs.python.org/3/howto/curses.html) to get started.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fq1chenl%2Ftodoism","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fq1chenl%2Ftodoism","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fq1chenl%2Ftodoism/lists"}