TabMind - Smart Tab Manager with AI assistance and productivity features
Project description
TabMind - Smart Tab Manager with AI Assistance
A powerful Python CLI tool to manage your browser tabs, track why you opened them, set deadlines, and get AI-powered productivity reminders using GitHub Copilot.
๐ Features
- Save Tabs: Quickly save URLs with context about why you opened them
- Auto-Fetch Titles: Automatically retrieve page titles from URLs
- Due Dates: Set deadlines for your tabs to stay on track
- Mark as Done: Track which tabs you've completed
- Statistics: View analytics about your saved tabs
- Review Tabs: View all saved tabs with their reasons, titles, due dates, and status
- AI Prompts: Generate smart motivation prompts for your pending tasks using GitHub Copilot
- Simple CLI: Easy-to-use command-line interface
- Persistent Storage: Tabs are saved locally in JSON format
- Python Library: Use TabMind as a library in your own Python projects
๐ Table of Contents
๐ป Installation
From Source (Development)
git clone https://github.com/IshikaBanga26/TabMind.git
cd TabMind
pip install -e .
From PyPI (Once Published)
pip install tabmind
๐ Quick Start
Add a Tab
tabmind add https://example.com
# When prompted, enter why you opened this link
# The page title will be fetched automatically
Add a Tab with Due Date
tabmind add https://example.com --due-date 2024-12-31
# or
tabmind add https://example.com -d 2024-12-31
Review Your Tabs
tabmind review
Mark a Tab as Done
tabmind mark-done 1
# Marks tab #1 as completed
Set a Due Date
tabmind due-date 2 2024-12-25
# Sets a due date for tab #2 (format: YYYY-MM-DD)
View Statistics
tabmind stats
Shows total tabs, completed count, pending count, and tabs with due dates.
Generate AI Prompts
tabmind ai-prompt
This will output GitHub Copilot prompts for pending tabs that you can run manually:
gh copilot -p "Your generated prompt here"
๐ Usage
CLI Commands
tabmind add <URL> [OPTIONS]
Save a new tab with a reason for opening it. Optionally set a due date.
$ tabmind add https://github.com
Why did you open this link? Learn Git workflows
โ Tab saved successfully!
$ tabmind add https://python.org --due-date 2024-12-31
Why did you open this link? Check Python documentation
โ Tab saved successfully!
tabmind review
Display all saved tabs with their details including titles, due dates, and status.
$ tabmind review
[1] โณ Pending | Due: 2024-12-31
Title: GitHub: Where the world builds software
URL: https://github.com
Reason: Learn Git workflows
Added: 2026-02-14 19:18:23
[2] โ Done
Title: Welcome to Python.org
URL: https://python.org
Reason: Check Python documentation
Added: 2026-02-14 19:20:15
tabmind mark-done <TAB_NUMBER>
Mark a specific tab as completed.
$ tabmind mark-done 1
โ Tab 1 marked as done!
tabmind due-date <TAB_NUMBER> <DATE>
Set or update a due date for a tab (format: YYYY-MM-DD).
$ tabmind due-date 3 2024-12-25
โ Due date for Tab 3 set to 2024-12-25
tabmind stats
Display statistics about your saved tabs.
$ tabmind stats
๐ TabMind Statistics
========================================
Total Tabs: 10
Completed: 4 โ
Pending: 6 โณ
With Due Date: 5 ๐
========================================
tabmind ai-prompt
Generate AI-powered productivity reminders for pending tabs.
$ tabmind ai-prompt
-----------------------------------
Run this command in your terminal:
gh copilot -p "You are a productivity assistant.
The user saved this link:
URL: https://github.com
Reason: Learn Git workflows
Date Added: 2026-02-14 19:18:23
Write a short motivational reminder asking if they want to continue this task.
Keep it under 3 lines."
-----------------------------------
Using as a Python Library
Import TabMind functions in your own Python projects:
from storage import add_tab, get_tabs, mark_tab_done, set_due_date, get_stats, fetch_page_title
# Add a tab with auto-fetched title
add_tab("https://example.com", "Research machine learning")
# Add a tab with due date
add_tab("https://github.com", "Learn Git workflows", due_date="2024-12-31")
# Get all saved tabs
tabs = get_tabs()
for tab in tabs:
print(f"Title: {tab['title']}")
print(f"URL: {tab['url']}")
print(f"Reason: {tab['reason']}")
print(f"Status: {'Done' if tab['completed'] else 'Pending'}")
print(f"Due: {tab.get('due_date', 'N/A')}")
# Mark a tab as done
mark_tab_done(0)
# Set a due date
set_due_date(1, "2024-12-25")
# Get statistics
stats = get_stats()
print(f"Total: {stats['total']}, Completed: {stats['completed']}")
# Fetch page title
title = fetch_page_title("https://example.com")
print(f"Page title: {title}")
๐ฆ Requirements
- Python 3.8+
click>= 8.0.0 (for CLI functionality)requests>= 2.28.0 (for fetching page titles)beautifulsoup4>= 4.11.0 (for parsing HTML)- (Optional) GitHub CLI with Copilot access (for AI features)
Install Requirements
pip install -r requirements.txt
๐ Project Structure
TabMind/
โโโ main.py # CLI entry point and commands
โโโ storage.py # Tab storage, retrieval, and title fetching
โโโ ai_helper.py # GitHub Copilot integration
โโโ tabs.json # Local storage for tabs (auto-generated)
โโโ setup.py # Package setup configuration
โโโ pyproject.toml # Modern Python packaging config
โโโ requirements.txt # Project dependencies
โโโ MANIFEST.in # Additional files to include in distribution
โโโ LICENSE # MIT License
โโโ README.md # This file
๐ Data Storage
Tabs are stored locally in a tabs.json file in your current directory. Each tab entry contains:
{
"url": "https://example.com",
"title": "Example Domain",
"reason": "Why you opened this link",
"date_added": "2026-02-14 19:18:23",
"due_date": "2024-12-31",
"completed": false
}
Note: The storage location can be customized by modifying the FILE_NAME variable in storage.py.
๐ง Development
Setup Development Environment
# Clone the repository
git clone https://github.com/IshikaBanga26/TabMind.git
cd TabMind
# Create a virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# Install in development mode
pip install -e .
# Install development dependencies
pip install -r requirements.txt
Testing Commands
# Test adding a tab
tabmind add https://test.com
# Test reviewing tabs
tabmind review
# Test AI prompt generation (requires GitHub Copilot)
tabmind ai-prompt
๐ค Contributing
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Make your changes
- Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Areas for Contribution
- Add unit tests
- Improve error handling
- Add support for additional data formats (CSV, SQLite)
- Implement cloud synchronization
- Add more AI integration options
- Improve documentation
๐ Reporting Issues
Found a bug? Please open an issue on the GitHub Issues page with:
- Description of the bug
- Steps to reproduce
- Expected behavior
- Your environment (OS, Python version)
๐ Future Features
- Web-based dashboard for viewing tabs
- Browser extension for quick tab saving
- Cloud synchronization
- Tab categorization and tagging
- Advanced analytics and insights
- Integration with more AI services
- Export to various formats (PDF, CSV, HTML)
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ค Author
Your Name - @yourhandle
๐ Acknowledgments
- Built with Click - Python CLI framework
- GitHub Copilot integration for AI assistance
- Inspired by productivity and tab management tools
๐ง Contact & Support
For questions or support:
- Open an issue on GitHub
- Email: your.email@example.com
- Check the Discussions page
Happy tab management!
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 tabmind-0.2.0.tar.gz.
File metadata
- Download URL: tabmind-0.2.0.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4665794f40759949b27ff44f97940264552354b12f4ac63e34ac5471ec3f305
|
|
| MD5 |
d82beb7e20973fce7374b15a22992c05
|
|
| BLAKE2b-256 |
df7446787ffe220c403b5608c4b020ea1fc856d1215a3ab64f6c719654faec8c
|
File details
Details for the file tabmind-0.2.0-py3-none-any.whl.
File metadata
- Download URL: tabmind-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80bcaebbb305236be7777bf38f991c8487c5ee0ebf138d825a74c33effd47a4f
|
|
| MD5 |
f0d508cd624533addfcd6e2e468b60ef
|
|
| BLAKE2b-256 |
2665cfcf4f7ed91c7143d5ec3ce5879b6c14f0f699543b81592fb06f79d2d3ad
|