| Crates.io | tedi |
| lib.rs | tedi |
| version | 0.13.0 |
| created_at | 2026-01-19 20:21:02.20565+00 |
| updated_at | 2026-01-25 20:36:56.121487+00 |
| description | Personal productivity CLI for task tracking, time management, and GitHub issue integration |
| homepage | |
| repository | https://github.com/valeratrades/tedi |
| max_upload_size | |
| id | 2055243 |
| size | 791,281 |
Personal productivity CLI for task tracking, time management, and GitHub issue integration.
nix build
Create ~/.config/todo/settings.toml:
# Required for GitHub integration
github_token = "ghp_..."
# Required for Clockify integration
clockify_api_key = "..."
clockify_workspace_id = "..."
# Optional
default_extension = "md" # or "typ" for typst
# Blocker management (main workflow)
todo blocker add "implement feature X" # Add a new blocker
todo blocker # Open current blocker file in $EDITOR
todo blocker pop # Complete current blocker, move to next
todo blocker set projectname # Switch to different project
# GitHub Issues
todo open https://github.com/owner/repo/issues/123 # Fetch and open issue
todo open -t owner/repo/my-issue # Create new issue (touch mode)
todo open pattern # Fuzzy find local issue
# Milestones
todo milestones # Show current milestones
todo milestones push "goal description" # Add goal to current milestone
# Time tracking
todo clockify start # Start tracking current blocker
todo clockify stop # Stop tracking
# Shell integration (add to your shell rc)
eval "$(todo init zsh)" # Or: bash, fish
closed issues/sub-issues wrap their content in vim fold markers using {{{always suffix.
To auto-close these folds in nvim, add:
vim.opt.foldtext = [[substitute(getline(v:foldstart),'{{{]] .. [[always\s*$','{{{','')]] -- Custom foldtext that strips "always" from fold markers
vim.api.nvim_create_autocmd("BufReadPost", {
callback = function()
vim.defer_fn(function()
vim.cmd([[silent! g/{{]] .. [[{always$/normal! zc]])
end, 10)
end,
})