A todo.txt CLI for the modern era
Find a file
renovate-bot e8a6f59ec6
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
ci/woodpecker/push/clippy Pipeline was successful
ci/woodpecker/push/fmt Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/doc Pipeline was successful
chore(deps): update dependency rust to v1.96.0
2026-06-04 20:03:26 +00:00
.woodpecker Add an access token for releases 2025-08-08 15:31:10 -06:00
src fix: Fix Created column not being sized properly 2025-08-10 17:55:49 -06:00
.editorconfig Add editorconfig 2025-08-07 22:28:54 -06:00
.gitignore Initial commit 2025-08-07 22:20:47 -06:00
.pre-commit-config.yaml chore: Add committed config and pre-commit hook 2025-08-10 11:11:28 -06:00
Cargo.lock chore(deps): update rust crate clap to v4.6.1 2026-04-23 13:27:43 +00:00
Cargo.toml fix(deps): update rust crate nanoid to 0.5.0 2026-04-21 12:39:33 +00:00
CHANGELOG.md chore: Release sayo version 0.4.0 2025-08-10 18:04:22 -06:00
CODE_OF_CONDUCT.md First draft, make it a real project 2025-08-07 23:04:08 -06:00
committed.toml chore: Add committed config and pre-commit hook 2025-08-10 11:11:28 -06:00
CONTRIBUTING.md docs: Add CONTRIBUTING.md 2025-08-10 11:09:30 -06:00
LICENSE.md First draft, make it a real project 2025-08-07 23:04:08 -06:00
mise.toml chore(deps): update dependency rust to v1.96.0 2026-06-04 20:03:26 +00:00
README.md fix(docs): update CI badge [ci skip] 2026-05-27 11:30:56 -06:00
renovate.json Update renovate.json 2026-05-27 16:01:58 +00:00

作用 (sayo)

status-badge Crates.io Version Crates.io License

A todo.txt CLI for the modern era.

Install

Install using cargo:

cargo install sayo

Uninstall it just as easily:

cargo uninstall sayo

Usage

List all tasks in your todo file with sayo ls:

$ sayo ls
───────────────────────────────────────────────────────────────────────────────────────────────────
  #  ✓  !  Created     Completed   Due         Subject
═══════════════════════════════════════════════════════════════════════════════════════════════════
  1  -  A  -           -           -           Call Mom @Phone +Family
  2  -  A  -           -           -           Schedule annual checkup +Health
  3  -  B  -           -           -           Outline chapter 5 +Novel @Computer
  4  -  C  -           -           -           Add cover sheets @Office +TPSReports
  5  -  -  -           -           -           Plan backyard herb garden @Home
  6  -  -  -           -           -           Pick up milk @GroceryStore
  7  -  -  -           -           -           Research self-publishing services +Novel @Computer
  8  ✓  -  -           -           -           Download Todo.txt mobile app @Phone
───────────────────────────────────────────────────────────────────────────────────────────────────

Add one using sayo add:

$ sayo add "Do my weekly review"
────────────────────────────────────────────────────────────────────────────
  #  ✓  !  Created     Completed   Due         Subject
════════════════════════════════════════════════════════════════════════════
  2  -  -  2025-08-10  -           -           Do my weekly review id:34kb
────────────────────────────────────────────────────────────────────────────

New tasks get a creation date and a small random ID automatically.

Remove a task using sayo remove with the ID given by sayo ls and sayo add:

sayo remove 2

You can use sayo edit to open your task file in your $EDITOR.

sayo edit

Run sayo --help for complete usage instructions.

Maintainer

This project is maintained by Rosa Richter. See her contact page for ways to get in touch.

Contributing

Issues, comments, questions, and pull requests are all welcome. See the contributing guide for details.

License

Copyright © 2025 Rosa Richter

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.