T2DO
A todo list that lives in your terminal.
Why
Most todo apps want to be more than a todo list. They want boards, tags, projects, reminders, a mobile app, a login, a subscription. All you actually need most days is: write the thing down, look at the thing, check it off.
T2DO is a small floating box that pops up in your terminal, holds your tasks, and gets out of the way. No accounts, no sync, no clutter.
Your tasks are just saved to a plain JSON file on your machine. Open it, back it up, edit it by hand if you want.
Install
pip install t2do
Works on Linux, macOS, and Windows.
Run
t2do
Using it
a— add a taskEnter— save itEsc— cancel typing, or quit the app if you're not typing↑/↓orj/k— move through your listSpace— check a task off (or uncheck it)d— delete the selected task
That's the entire interface. If your list gets long, it scrolls, with a
small ^ / v marker so you know there's more above or below.
Where your data lives
- Linux/macOS:
~/.config/t2do/todos.json - Windows:
%APPDATA%\t2do\todos.json
Delete that file if you ever want to start over.
Philosophy
If this app ever grows a settings menu, tags, or a sync feature, something went wrong. It's supposed to stay this small.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file t2do-1.0.0.tar.gz.
File metadata
- Download URL: t2do-1.0.0.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
836638f0c3f3d4023b4e4ee929682b61c1a94b16533f84f49860d193398c38f2
|
|
| MD5 |
729dac694fc841072562691a49f6881e
|
|
| BLAKE2b-256 |
c2cc367d7cbc89aea8611d6ae8ef822723c2f292c1282829ad4265122be9ff13
|
Provenance
The following attestation bundles were made for t2do-1.0.0.tar.gz:
Publisher:
publish.yml on 0xbad4/t2do
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
t2do-1.0.0.tar.gz -
Subject digest:
836638f0c3f3d4023b4e4ee929682b61c1a94b16533f84f49860d193398c38f2 - Sigstore transparency entry: 2303062274
- Sigstore integration time:
-
Permalink:
0xbad4/t2do@57547e87fa4f037aeb0882116959d3f8f68b073d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/0xbad4
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@57547e87fa4f037aeb0882116959d3f8f68b073d -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file t2do-1.0.0-py3-none-any.whl.
File metadata
- Download URL: t2do-1.0.0-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6e1299837ebc791cf81cec7580956398c1b7955fb921777e120eb92f4a43720
|
|
| MD5 |
6f543f977af01b817f688ffb8169983f
|
|
| BLAKE2b-256 |
1e553888f3b5a23fb0391d37603a858053b78aaae8893f1a3752d2e8d2e46eeb
|
Provenance
The following attestation bundles were made for t2do-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on 0xbad4/t2do
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
t2do-1.0.0-py3-none-any.whl -
Subject digest:
b6e1299837ebc791cf81cec7580956398c1b7955fb921777e120eb92f4a43720 - Sigstore transparency entry: 2303062323
- Sigstore integration time:
-
Permalink:
0xbad4/t2do@57547e87fa4f037aeb0882116959d3f8f68b073d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/0xbad4
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@57547e87fa4f037aeb0882116959d3f8f68b073d -
Trigger Event:
workflow_dispatch
-
Statement type: