{"id":26648934,"url":"https://github.com/ashkansamadiyan/togo","last_synced_at":"2025-03-25T00:47:23.004Z","repository":{"id":283897115,"uuid":"953210081","full_name":"ashkansamadiyan/togo","owner":"ashkansamadiyan","description":"a terminal-based Todo Manager","archived":false,"fork":false,"pushed_at":"2025-03-23T16:12:08.000Z","size":9628,"stargazers_count":14,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T16:33:19.439Z","etag":null,"topics":["adhd","cobra","go","go-package","golang","keyboard-driven","productivity","task-management","terminal-tool","todo-app","todolist","tui"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ashkansamadiyan.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":"2025-03-22T20:24:56.000Z","updated_at":"2025-03-23T14:33:07.000Z","dependencies_parsed_at":"2025-03-23T16:33:40.843Z","dependency_job_id":null,"html_url":"https://github.com/ashkansamadiyan/togo","commit_stats":null,"previous_names":["ashkansamadiyan/to-go","ashkansamadiyan/togo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashkansamadiyan%2Ftogo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashkansamadiyan%2Ftogo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashkansamadiyan%2Ftogo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashkansamadiyan%2Ftogo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ashkansamadiyan","download_url":"https://codeload.github.com/ashkansamadiyan/togo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245377955,"owners_count":20605375,"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":["adhd","cobra","go","go-package","golang","keyboard-driven","productivity","task-management","terminal-tool","todo-app","todolist","tui"],"created_at":"2025-03-25T00:47:22.503Z","updated_at":"2025-03-25T00:47:22.987Z","avatar_url":"https://github.com/ashkansamadiyan.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Togo\n\n\u003cp align=\"center\"\u003e\n  A command-line todo application built in Go for developers who need to capture ideas without breaking their workflow.\n\u003c/p\u003e\n\n[![togo CLI Demo Video](https://github.com/user-attachments/assets/14afdab1-2f6b-419c-9ace-958d8c167646)](https://github.com/user-attachments/assets/14afdab1-2f6b-419c-9ace-958d8c167646)\n\n\n\n## Why Togo Exists\n\nEver been programming and had a brilliant idea or remembered an important task? You know the struggle - interrupting your flow means losing focus, but ignoring it risks forgetting something important. This is where Togo shines, especially for those of us with ADHD tendencies.\n\nTogo lets you capture those thoughts instantly without breaking your workflow. Your terminal is always just a keystroke away, so just dump your todo with `togo add` and get back to what you were doing. Your brain can relax knowing the idea is safely stored somewhere, and you can maintain your precious focus.\n\n**The core philosophy:** Add it now, manage it later.\n\n## Features\n\n- **Zero-friction capture**: Add ideas directly from your terminal without interrupting your flow\n- **Beautiful terminal UI**: Interactive interface for managing todos when you're ready to organize\n- **VIM keybinds**: HJKL motions support\n- **Multiple management methods**: Use either interactive mode or command-line operations to manage\n- **Flexible organization**: Toggle completion, archive finished tasks, delete what's no longer needed\n- **Search/filtering**: Find tasks quickly in lists or through partial start-matching\n- **Shell integration**: Tab completion for workflow integration\n\n## Usage\n\n### Capturing Ideas (The Main Point!)\n\nWhen inspiration strikes or a task pops into your head, just:\n\n```bash\ntogo add should I use \"s in my shell std inputs?\n\ntogo add \"Call the client about project scope\"\n```\nThen get right back to what you were doing. No more mental juggling or lost ideas.\n\n### Managing Your Tasks\n\nTogo offers two primary ways to manage your tasks:\n\n#### 1. Interactive Mode\n\nOpen the interactive UI to work with your todos visually:\n\n```bash\ntogo\n# or\ntogo list           # Active todos only\ntogo list --all     # All todos\ntogo list --archived # Archived todos only\n```\n\nThe interactive mode shows helpful keyboard shortcuts right in the interface.\n\n![interactive](https://github.com/user-attachments/assets/e75cb61e-00f5-4c5b-ae44-66727521d2c4)\n\n#### 2. Command-Line Operations\n\nTogo offers flexible command syntax with three usage patterns:\n\n##### a) Direct selection by partial name\n\n```bash\ntogo toggle meeting\n```\n\nIf only one task contains \"meeting\", it executes immediately - no selection needed. If multiple tasks match (e.g., \"team meeting\" and \"client meeting\"), Togo automatically opens the selection list so you can choose which one you meant.\n\n##### b) Interactive selection list\n\n```bash\ntogo toggle\n```\n\nOpens a selection list where you can choose from available tasks:\n\n![Small selection list](./pics/small-list.png)\n\nAs you type, Togo searches through your tasks and filters the results.\n\n##### c) Shell completion integration\n\nIf you've installed shell completion (see below), you can use:\n\n```bash\ntogo toggle [TAB]\n```\n\nYour shell will present available tasks. Type a few letters to filter by name:\n\n```bash\ntogo toggle me[TAB]\n```\n\nShell will show only tasks containing \"me\" - perfect for quick selection.\n\n![shellvdef](https://github.com/user-attachments/assets/011b51e0-aad0-4f9e-b782-73ef6be77f07)\n\n\n### Available Commands\n\n- `togo add \"Task description\"` - Add a new task\n- `togo toggle [task]` - Toggle completion status\n- `togo archive [task]` - Archive a completed task\n- `togo unarchive [task]` - Restore an archived task\n- `togo delete [task]` - Remove a task permanently\n- `togo list [flags]` - View tasks (--all, --archived)\n\nEvery command supports `-h` or `--help` flags to display detailed usage information:\n\n```bash\ntogo toggle --help\ntogo add -h\n```\n\n## Installation\n\n### Option 1: Via Go Install\n\nThe simplest way to install Togo:\n\n```bash\ngo install github.com/ashkansamadiyan/togo@latest\n```\n\nMake sure `$GOPATH/bin` is in your PATH to access the installed binary.\n\n### Option 2: Manual Build\n\n```bash\n# Clone the repository\ngit clone https://github.com/ashkansamadiyan/togo.git\ncd togo\n\n# Build and install manually\ngo build\ngo install     # Installs to $GOPATH/bin\n```\n\n### Option 3: Using Make (Recommended)\n\n```bash\n# Clone the repository\ngit clone https://github.com/ashkansamadiyan/togo.git\ncd togo\n\n# Install to GOPATH/bin (includes automatic shell completion)\nmake install\n\n# OR install system-wide (requires sudo)\nmake install-system\n```\n\nAll Make installation methods include automatic shell completion setup out of the box, so you can immediately use tab completion for commands and task names.\n\n## Shell Completion\n\nSetting up shell completion makes Togo even more efficient by enabling tab completion for commands and tasks.\n\n### Zsh\n\n```bash\n# 1. Create completion directory\nmkdir -p ~/.zsh/completion\necho \"fpath=(~/.zsh/completion \\$fpath)\" \u003e\u003e ~/.zshrc\n\n# 2. Enable completions\necho \"autoload -Uz compinit \u0026\u0026 compinit\" \u003e\u003e ~/.zshrc\n\n# 3. apply Togo completion\ntogo completion zsh \u003e ~/.zsh/completion/_togo\nsource ~/.zshrc\n```\n\n\n### Bash\n\n```bash\n\n# 1. Ensure completion is sourced\necho \"[ -r /usr/share/bash-completion/bash_completion ] \u0026\u0026 . /usr/share/bash-completion/bash_completion\" \u003e\u003e ~/.bashrc\nsource ~/.bashrc\n\n# 2. Install Togo completion\ntogo completion bash \u003e ~/.bash_completion\nsource ~/.bash_completion\n```\n\n\n\n### Fish\n\n```bash\nmkdir -p ~/.config/fish/completions\ntogo completion fish \u003e ~/.config/fish/completions/togo.fish\n```\n\n### PowerShell\n\n```powershell\nyea, i dont think you PS guys need this tool :)\n```\n\n## Data Storage\n\nTogo stores all your data in a simple JSON file at `~/.togo/todos.json`.\n\n\n\n\n## License\n\nThis project is licensed under the do what ever u want with it - see the [LICENSE](LICENSE) file for details. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashkansamadiyan%2Ftogo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashkansamadiyan%2Ftogo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashkansamadiyan%2Ftogo/lists"}