Task Terminal - A local-first developer tool for generating and tracking task IDs
Project description
Task Terminal (tt)
A local-first developer tool for generating and tracking task IDs that seamlessly link to GitHub PRs.
Task Terminal (tt) is a polished terminal application that helps developers maintain a monotonically increasing, globally unique sequence of task IDs across all their projects, with automatic GitHub PR detection and linking.
✨ Features
- 🎯 Global Task IDs - Monotonically increasing IDs (tt-1, tt-2, tt-3...) that never reset
- 💾 Local SQLite Storage - All data stored locally in
~/.tt/tasks.db - 🔗 GitHub PR Integration - Automatic detection and linking of PRs via GitHub CLI
- 🚀 Cross-Project - One global sequence across all your repositories
- 🔍 PR Management - View, link, and open PRs directly from the terminal
📦 Installation
Prerequisites
- Python 3.9 or higher
- GitHub CLI (optional, for PR features)
Install from PyPI
pip install task-terminal
Or with uv:
uv pip install task-terminal
Setup GitHub CLI (Optional)
For PR detection and linking features:
# Windows
winget install --id GitHub.cli
# macOS
brew install gh
# Authenticate
gh auth login
Quick Start
-
Install Task Terminal
pip install task-terminal
-
Launch the application
tt
If
ttcommand is not found, try:python -m tt.main
-
Navigate to your project (for PR features)
cd ~/projects/your-repo tt
-
Create your first task
- Navigate to "Create Task" with arrow keys
- Press Enter to generate a task ID
- The ID (e.g.,
tt-1) is copied to your clipboard
-
Use the task ID in your workflow
git checkout -b feature/tt-1-implement-auth # Make your changes git push origin feature/tt-1-implement-auth
-
Import and link PRs
- Create a PR on GitHub with tt-1 in the branch name or title
- Open tt and navigate to "PR Inbox"
- Press 'l' or Enter on tt-1 to import and link the PR
📖 Usage Guide
Main Menu
Navigate with arrow keys and select with Enter:
- Create Task - Generate a new task ID
- Tasks - View all tasks and their status
- PR Inbox - Detect and link PRs to tasks
- Settings - Coming soon
- Quit - Exit the application
Shortcuts: q or Escape to quit
Create Task Screen
Shortcuts:
Enter- Generate a new task IDEscape- Go back to main menu
The generated task ID is automatically copied to your clipboard for immediate use.
Tasks Screen
View all your tasks with their status, creation date, and linked PRs.
Shortcuts:
Arrow keys- Navigate tasksd- Delete the highlighted tasko- Open the linked PR in your browserr- Refresh the task listEscape- Go back to main menu
PR Inbox Screen
Automatically scans for PRs in the current repository and detects task IDs in branch names and PR titles.
Features:
- Import - Task IDs found in the repo but not in your local database
- Link - PRs for existing tasks that need to be linked
Shortcuts:
Arrow keys- Navigate itemsEnterorl- Link PR or import task IDi- Ignore the highlighted item (session only)r- Refresh and rescan the repositoryEscape- Go back to main menu
🎯 Workflow Example
# 1. Install Task Terminal
pip install task-terminal
# 2. Generate a task ID
tt
# Navigate to "Create Task", press Enter
# Result: tt-42 (copied to clipboard)
# 3. Navigate to your project and create a branch
cd ~/projects/my-api
git checkout -b feature/tt-42-add-authentication
# 4. Implement your feature
# ... make changes ...
git add .
git commit -m "Add JWT authentication for API"
git push origin feature/tt-42-add-authentication
# 5. Create a PR on GitHub (with task ID in title or branch)
gh pr create --title "tt-42: Add authentication" --body "Implements JWT auth"
# 6. Import and link the task in tt
tt
# Navigate to "PR Inbox"
# You'll see "Import | tt-42 | #123 | Add authentication"
# Press 'l' or Enter to import and link
# 7. View your tasks
# Navigate to "Tasks"
# See tt-42 status: linked, with PR #123 and title
# Press 'o' to open the PR in your browser
🔧 Development
Setup Development Environment
# Clone the repository
git clone https://github.com/sumanthaka/TerminalTask.git
cd TerminalTask
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install in development mode with dev dependencies
pip install -e ".[dev]"
Run from Source
tt
Code Style
# Format code
ruff format
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Built with Textual - An amazing TUI framework
- Inspired by the need for simple, local-first developer tools
- GitHub CLI integration powered by gh
📞 Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
🗺️ Roadmap
- Task search and filtering
- Export tasks to JSON/CSV
- Multi-PR support per task
Project details
Release history Release notifications | RSS feed
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 task_terminal-0.2.0.tar.gz.
File metadata
- Download URL: task_terminal-0.2.0.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abc82383c754bc6b5c548539baecd05d608ab743671dd6a6f06efa10914b1933
|
|
| MD5 |
717f028a939f6a378e4432e4ed6c4df7
|
|
| BLAKE2b-256 |
0b3d725e845e5204c4ad1d830bbe91390ba6d23e841d5a95e16e10b317c36d96
|
File details
Details for the file task_terminal-0.2.0-py3-none-any.whl.
File metadata
- Download URL: task_terminal-0.2.0-py3-none-any.whl
- Upload date:
- Size: 19.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
859310b531a7d1f938e8e25b8c1b466bfb8cb9c71f37b6c1d11d3968913cee6a
|
|
| MD5 |
b15bacb8f45761d40faa948cc5d10630
|
|
| BLAKE2b-256 |
3a5ac0dfebb10dd891fc4a52c745dd99592a8bf51ec5f52845e2b7c26425d6e3
|