kanteto (κάντε το) — "Do It" in Greek.
A TUI tool for tracking small tasks and promises that are too small for tickets but still need to get done on time.
Note: Kanteto is under active development. Features may change between releases. Feel free to take it for a test drive and open an issue if you have ideas or run into problems.
- Go 1.25+
go install -tags gms_pure_go github.com/jwp23/kanteto/cmd/kt@latestOr build from source:
git clone https://github.com/jwp23/kanteto.git
cd kanteto
go build -tags gms_pure_go -o kt ./cmd/ktThe gms_pure_go tag uses Go's stdlib regex instead of ICU, which removes
the cgo/ICU dependency and allows a clean go install on any platform.
kt # launch the TUI
kt migrate # one-time SQLite→Dolt migrationRun kt with no arguments to launch the interactive terminal UI.
| Key | Action |
|---|---|
j / k |
Move cursor down / up |
h / l |
Previous / next time period |
t |
Jump to today |
Enter |
Drill down from month view into day view |
| Key | View |
|---|---|
d |
Day |
w |
Week |
m |
Month |
| Key | Action |
|---|---|
space |
Complete task |
a |
Add task inline (supports natural language: Call dentist by march 11) |
s |
Snooze task |
e |
Edit task deadline |
x |
Delete task |
? |
Help overlay |
q |
Quit |
Task IDs support prefix matching — type just enough characters to be unambiguous.
One-time migration from an existing SQLite database to Dolt.
kt migrate # reads kanteto.db, writes to dolt/
kt migrate --force # re-run even if tasks already exist in DoltKanteto uses an embedded Dolt engine — no separate Dolt server or CLI is
required at runtime. Task data lives at ~/.local/share/kanteto/.
Every mutation (add, complete, delete, edit) is automatically committed in-process. If a remote is configured, changes are pushed in the background.
Use P (push) and p (pull) in the TUI for manual sync.
Remote configuration requires the dolt CLI as a one-time setup step.
Install it from https://docs.dolthub.com/introduction/installation, then:
cd ~/.local/share/kanteto/dolt # Dolt data directory
dolt remote add origin <url>
dolt push origin mainDolt supports several remote backends:
| Remote type | URL format |
|---|---|
| Git (GitHub, GitLab, etc.) | git@github.com:user/repo.git or https://github.com/user/repo.git |
| DoltHub | https://doltremoteapi.dolthub.com/user/repo |
| Filesystem | /path/to/remote/dir |
| AWS (S3 + DynamoDB) | aws://[table:bucket]/db |
| GCS | gs://bucket/path |
Note: When using a Git remote (GitHub, GitLab), the repo needs at least one commit before Dolt can push. Create the repo, push an empty commit (
git commit --allow-empty -m "init" && git push), then add it as a Dolt remote.
On another machine, after building kt, clone the remote into the data
directory:
mkdir -p ~/.local/share/kanteto
dolt clone <url> ~/.local/share/kanteto/doltAfter this one-time setup, kt handles all sync automatically.
Kanteto uses an optional TOML config file at ~/.config/kanteto/config.toml:
active_profile = "default" # current profileData is stored in an embedded Dolt database at ~/.local/share/kanteto/dolt/.
Both paths follow the XDG Base Directory spec.
MIT