Skip to content

Goqueue is a command-line To-Do app written in Go — for people who’d rather miss a deadline than leave the terminal 👨‍💻

License

Notifications You must be signed in to change notification settings

Irtesaam/goqueue

Repository files navigation

GoQueue CLI Application

Goqueue is a command-line To-Do app written in Go — for people who’d rather miss a deadline than leave the terminal. It combines a modern CLI powered by Cobra with flexible configuration via Viper, giving you a fast, no-nonsense workflow right in your terminal.

image

Features

🎯 Core Functionality

  • Add tasks: goq add "Your task description"
  • List tasks: goq list (or goq ls) with table formatting
  • Toggle completion: goq toggle 0 to mark tasks as done/undone
  • Edit tasks: goq edit 0 "Updated description"
  • Delete tasks: goq delete 0 (or goq del 0)
  • Persistent storage: JSON-based storage with automatic backups

Installation

Quick Install (Recommended)

The easiest way to install GoQueue:

curl -fsSL https://raw.githubusercontent.com/Irtesaam/goqueue/master/install.sh | bash

This script will:

  • Detect your operating system and architecture
  • Download the latest pre-built binary
  • Install it to your system PATH
  • Handle permissions automatically

Uninstall GoQueue

To remove GoQueue and all its data:

sudo rm /usr/local/bin/goq
rm -rf ~/.config/goqueue

Usage

Basic Commands

# Add a new todo
goq add "Buy groceries"
goq add "Complete the project report"

# List all todos
goq list           # or: goq ls, goq show

# Toggle completion status
goq toggle 0       # Toggle first task

# Edit a task
goq edit 1 "Updated task description"

# Delete a task
goq delete 2       # or: goq del 2, goq rm 2

# Get help
goq --help
goq add --help     # Help for specific commands

Configuration Examples

1. Using configuration file

Create ~/.config/goqueue/config.yaml:

file: "/path/to/your/custom/todos.json"

2. Using environment variables

export GOQUEUE_FILE="/tmp/work-todos.json"
goq add "Work-related task"

3. Using command-line flags

goq --file "/tmp/personal-todos.json" add "Personal task"
goq --file "/tmp/personal-todos.json" list

4. Multiple todo lists

# Work todos
alias work-goq='goq --file "$HOME/.config/goqueue/work.json"'
work-goq add "Review code"

# Personal todos
alias personal-goq='goq --file "$HOME/.config/goqueue/personal.json"'
personal-goq add "Buy milk"

Future Enhancements🔥

The current architecture supports easy extension:

  • Priority levels: Add priority field to todos
  • Categories/Tags: Organize todos by project or context
  • Due dates: Add deadline support with notifications
  • Themes: Customizable colors and formatting
  • Sync: Cloud synchronization capabilities
  • Import/Export: Support for other todo formats
  • Search: Full-text search across todos
  • Statistics: Completion rates and productivity metrics

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Commit changes: git commit -am 'Add feature'
  4. Push to branch: git push origin feature-name
  5. Create Pull Request

License

MIT License - see LICENSE file for details.

Made with love ❤️ by Irtesaam

About

Goqueue is a command-line To-Do app written in Go — for people who’d rather miss a deadline than leave the terminal 👨‍💻

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published