tabmind 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tabmind-0.2.0/LICENSE +21 -0
- tabmind-0.2.0/MANIFEST.in +4 -0
- tabmind-0.2.0/PKG-INFO +417 -0
- tabmind-0.2.0/README.md +384 -0
- tabmind-0.2.0/pyproject.toml +51 -0
- tabmind-0.2.0/setup.cfg +4 -0
- tabmind-0.2.0/tabmind/__init__.py +16 -0
- tabmind-0.2.0/tabmind/ai_helper.py +18 -0
- tabmind-0.2.0/tabmind/cli.py +112 -0
- tabmind-0.2.0/tabmind/storage.py +91 -0
- tabmind-0.2.0/tabmind.egg-info/PKG-INFO +417 -0
- tabmind-0.2.0/tabmind.egg-info/SOURCES.txt +15 -0
- tabmind-0.2.0/tabmind.egg-info/dependency_links.txt +1 -0
- tabmind-0.2.0/tabmind.egg-info/entry_points.txt +2 -0
- tabmind-0.2.0/tabmind.egg-info/requires.txt +9 -0
- tabmind-0.2.0/tabmind.egg-info/top_level.txt +1 -0
- tabmind-0.2.0/website/index.html +79 -0
tabmind-0.2.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 TabMind Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
tabmind-0.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tabmind
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: TabMind - Smart Tab Manager with AI assistance and productivity features
|
|
5
|
+
Author: Ishika Banga
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/yourusername/TabMind
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/yourusername/TabMind/issues
|
|
9
|
+
Project-URL: Repository, https://github.com/yourusername/TabMind.git
|
|
10
|
+
Keywords: cli,tab-manager,productivity,ai,due-dates
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Development Status :: 3 - Alpha
|
|
19
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
20
|
+
Classifier: Topic :: Utilities
|
|
21
|
+
Requires-Python: >=3.8
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: click>=8.0.0
|
|
25
|
+
Requires-Dist: requests>=2.28.0
|
|
26
|
+
Requires-Dist: beautifulsoup4>=4.11.0
|
|
27
|
+
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: pytest>=6.0; extra == "dev"
|
|
29
|
+
Requires-Dist: black>=21.0; extra == "dev"
|
|
30
|
+
Requires-Dist: flake8>=3.9; extra == "dev"
|
|
31
|
+
Requires-Dist: mypy>=0.9; extra == "dev"
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
|
|
34
|
+
# TabMind - Smart Tab Manager with AI Assistance
|
|
35
|
+
|
|
36
|
+
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.
|
|
37
|
+
|
|
38
|
+
## 🌟 Features
|
|
39
|
+
|
|
40
|
+
- **Save Tabs**: Quickly save URLs with context about why you opened them
|
|
41
|
+
- **Auto-Fetch Titles**: Automatically retrieve page titles from URLs
|
|
42
|
+
- **Due Dates**: Set deadlines for your tabs to stay on track
|
|
43
|
+
- **Mark as Done**: Track which tabs you've completed
|
|
44
|
+
- **Statistics**: View analytics about your saved tabs
|
|
45
|
+
- **Review Tabs**: View all saved tabs with their reasons, titles, due dates, and status
|
|
46
|
+
- **AI Prompts**: Generate smart motivation prompts for your pending tasks using GitHub Copilot
|
|
47
|
+
- **Simple CLI**: Easy-to-use command-line interface
|
|
48
|
+
- **Persistent Storage**: Tabs are saved locally in JSON format
|
|
49
|
+
- **Python Library**: Use TabMind as a library in your own Python projects
|
|
50
|
+
|
|
51
|
+
## 📋 Table of Contents
|
|
52
|
+
|
|
53
|
+
- [Installation](#installation)
|
|
54
|
+
- [Quick Start](#quick-start)
|
|
55
|
+
- [Usage](#usage)
|
|
56
|
+
- [CLI Commands](#cli-commands)
|
|
57
|
+
- [Using as a Python Library](#using-as-a-python-library)
|
|
58
|
+
- [Requirements](#requirements)
|
|
59
|
+
- [Project Structure](#project-structure)
|
|
60
|
+
- [Contributing](#contributing)
|
|
61
|
+
- [License](#license)
|
|
62
|
+
|
|
63
|
+
## 💻 Installation
|
|
64
|
+
|
|
65
|
+
### From Source (Development)
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/IshikaBanga26/TabMind.git
|
|
69
|
+
cd TabMind
|
|
70
|
+
pip install -e .
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### From PyPI (Once Published)
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
pip install tabmind
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 🚀 Quick Start
|
|
80
|
+
|
|
81
|
+
### Add a Tab
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
tabmind add https://example.com
|
|
85
|
+
# When prompted, enter why you opened this link
|
|
86
|
+
# The page title will be fetched automatically
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Add a Tab with Due Date
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
tabmind add https://example.com --due-date 2024-12-31
|
|
93
|
+
# or
|
|
94
|
+
tabmind add https://example.com -d 2024-12-31
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
### Review Your Tabs
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
tabmind review
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Mark a Tab as Done
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
tabmind mark-done 1
|
|
108
|
+
# Marks tab #1 as completed
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Set a Due Date
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
tabmind due-date 2 2024-12-25
|
|
115
|
+
# Sets a due date for tab #2 (format: YYYY-MM-DD)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### View Statistics
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
tabmind stats
|
|
122
|
+
```
|
|
123
|
+
Shows total tabs, completed count, pending count, and tabs with due dates.
|
|
124
|
+
|
|
125
|
+
### Generate AI Prompts
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
tabmind ai-prompt
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
This will output GitHub Copilot prompts for pending tabs that you can run manually:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
gh copilot -p "Your generated prompt here"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## 📖 Usage
|
|
138
|
+
|
|
139
|
+
### CLI Commands
|
|
140
|
+
|
|
141
|
+
#### `tabmind add <URL> [OPTIONS]`
|
|
142
|
+
|
|
143
|
+
Save a new tab with a reason for opening it. Optionally set a due date.
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
$ tabmind add https://github.com
|
|
147
|
+
Why did you open this link? Learn Git workflows
|
|
148
|
+
✓ Tab saved successfully!
|
|
149
|
+
|
|
150
|
+
$ tabmind add https://python.org --due-date 2024-12-31
|
|
151
|
+
Why did you open this link? Check Python documentation
|
|
152
|
+
✓ Tab saved successfully!
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
#### `tabmind review`
|
|
156
|
+
|
|
157
|
+
Display all saved tabs with their details including titles, due dates, and status.
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
$ tabmind review
|
|
161
|
+
|
|
162
|
+
[1] ⏳ Pending | Due: 2024-12-31
|
|
163
|
+
Title: GitHub: Where the world builds software
|
|
164
|
+
URL: https://github.com
|
|
165
|
+
Reason: Learn Git workflows
|
|
166
|
+
Added: 2026-02-14 19:18:23
|
|
167
|
+
|
|
168
|
+
[2] ✓ Done
|
|
169
|
+
Title: Welcome to Python.org
|
|
170
|
+
URL: https://python.org
|
|
171
|
+
Reason: Check Python documentation
|
|
172
|
+
Added: 2026-02-14 19:20:15
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
#### `tabmind mark-done <TAB_NUMBER>`
|
|
176
|
+
|
|
177
|
+
Mark a specific tab as completed.
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
$ tabmind mark-done 1
|
|
181
|
+
✓ Tab 1 marked as done!
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
#### `tabmind due-date <TAB_NUMBER> <DATE>`
|
|
185
|
+
|
|
186
|
+
Set or update a due date for a tab (format: YYYY-MM-DD).
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
$ tabmind due-date 3 2024-12-25
|
|
190
|
+
✓ Due date for Tab 3 set to 2024-12-25
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
#### `tabmind stats`
|
|
194
|
+
|
|
195
|
+
Display statistics about your saved tabs.
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
$ tabmind stats
|
|
199
|
+
|
|
200
|
+
📊 TabMind Statistics
|
|
201
|
+
========================================
|
|
202
|
+
Total Tabs: 10
|
|
203
|
+
Completed: 4 ✓
|
|
204
|
+
Pending: 6 ⏳
|
|
205
|
+
With Due Date: 5 📅
|
|
206
|
+
========================================
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
#### `tabmind ai-prompt`
|
|
210
|
+
|
|
211
|
+
Generate AI-powered productivity reminders for pending tabs.
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
$ tabmind ai-prompt
|
|
215
|
+
|
|
216
|
+
-----------------------------------
|
|
217
|
+
Run this command in your terminal:
|
|
218
|
+
|
|
219
|
+
gh copilot -p "You are a productivity assistant.
|
|
220
|
+
|
|
221
|
+
The user saved this link:
|
|
222
|
+
URL: https://github.com
|
|
223
|
+
Reason: Learn Git workflows
|
|
224
|
+
Date Added: 2026-02-14 19:18:23
|
|
225
|
+
|
|
226
|
+
Write a short motivational reminder asking if they want to continue this task.
|
|
227
|
+
Keep it under 3 lines."
|
|
228
|
+
|
|
229
|
+
-----------------------------------
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Using as a Python Library
|
|
233
|
+
|
|
234
|
+
Import TabMind functions in your own Python projects:
|
|
235
|
+
|
|
236
|
+
```python
|
|
237
|
+
from storage import add_tab, get_tabs, mark_tab_done, set_due_date, get_stats, fetch_page_title
|
|
238
|
+
|
|
239
|
+
# Add a tab with auto-fetched title
|
|
240
|
+
add_tab("https://example.com", "Research machine learning")
|
|
241
|
+
|
|
242
|
+
# Add a tab with due date
|
|
243
|
+
add_tab("https://github.com", "Learn Git workflows", due_date="2024-12-31")
|
|
244
|
+
|
|
245
|
+
# Get all saved tabs
|
|
246
|
+
tabs = get_tabs()
|
|
247
|
+
for tab in tabs:
|
|
248
|
+
print(f"Title: {tab['title']}")
|
|
249
|
+
print(f"URL: {tab['url']}")
|
|
250
|
+
print(f"Reason: {tab['reason']}")
|
|
251
|
+
print(f"Status: {'Done' if tab['completed'] else 'Pending'}")
|
|
252
|
+
print(f"Due: {tab.get('due_date', 'N/A')}")
|
|
253
|
+
|
|
254
|
+
# Mark a tab as done
|
|
255
|
+
mark_tab_done(0)
|
|
256
|
+
|
|
257
|
+
# Set a due date
|
|
258
|
+
set_due_date(1, "2024-12-25")
|
|
259
|
+
|
|
260
|
+
# Get statistics
|
|
261
|
+
stats = get_stats()
|
|
262
|
+
print(f"Total: {stats['total']}, Completed: {stats['completed']}")
|
|
263
|
+
|
|
264
|
+
# Fetch page title
|
|
265
|
+
title = fetch_page_title("https://example.com")
|
|
266
|
+
print(f"Page title: {title}")
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## 📦 Requirements
|
|
270
|
+
|
|
271
|
+
- Python 3.8+
|
|
272
|
+
- `click` >= 8.0.0 (for CLI functionality)
|
|
273
|
+
- `requests` >= 2.28.0 (for fetching page titles)
|
|
274
|
+
- `beautifulsoup4` >= 4.11.0 (for parsing HTML)
|
|
275
|
+
- (Optional) GitHub CLI with Copilot access (for AI features)
|
|
276
|
+
|
|
277
|
+
### Install Requirements
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
pip install -r requirements.txt
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
## 📁 Project Structure
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
TabMind/
|
|
287
|
+
├── main.py # CLI entry point and commands
|
|
288
|
+
├── storage.py # Tab storage, retrieval, and title fetching
|
|
289
|
+
├── ai_helper.py # GitHub Copilot integration
|
|
290
|
+
├── tabs.json # Local storage for tabs (auto-generated)
|
|
291
|
+
├── setup.py # Package setup configuration
|
|
292
|
+
├── pyproject.toml # Modern Python packaging config
|
|
293
|
+
├── requirements.txt # Project dependencies
|
|
294
|
+
├── MANIFEST.in # Additional files to include in distribution
|
|
295
|
+
├── LICENSE # MIT License
|
|
296
|
+
└── README.md # This file
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## 📝 Data Storage
|
|
300
|
+
|
|
301
|
+
Tabs are stored locally in a `tabs.json` file in your current directory. Each tab entry contains:
|
|
302
|
+
|
|
303
|
+
```json
|
|
304
|
+
{
|
|
305
|
+
"url": "https://example.com",
|
|
306
|
+
"title": "Example Domain",
|
|
307
|
+
"reason": "Why you opened this link",
|
|
308
|
+
"date_added": "2026-02-14 19:18:23",
|
|
309
|
+
"due_date": "2024-12-31",
|
|
310
|
+
"completed": false
|
|
311
|
+
}
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
**Note**: The storage location can be customized by modifying the `FILE_NAME` variable in `storage.py`.
|
|
315
|
+
|
|
316
|
+
## 🔧 Development
|
|
317
|
+
|
|
318
|
+
### Setup Development Environment
|
|
319
|
+
|
|
320
|
+
```bash
|
|
321
|
+
# Clone the repository
|
|
322
|
+
git clone https://github.com/IshikaBanga26/TabMind.git
|
|
323
|
+
cd TabMind
|
|
324
|
+
|
|
325
|
+
# Create a virtual environment
|
|
326
|
+
python -m venv venv
|
|
327
|
+
|
|
328
|
+
# Activate virtual environment
|
|
329
|
+
# On Windows:
|
|
330
|
+
venv\Scripts\activate
|
|
331
|
+
# On macOS/Linux:
|
|
332
|
+
source venv/bin/activate
|
|
333
|
+
|
|
334
|
+
# Install in development mode
|
|
335
|
+
pip install -e .
|
|
336
|
+
|
|
337
|
+
# Install development dependencies
|
|
338
|
+
pip install -r requirements.txt
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### Testing Commands
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
# Test adding a tab
|
|
345
|
+
tabmind add https://test.com
|
|
346
|
+
|
|
347
|
+
# Test reviewing tabs
|
|
348
|
+
tabmind review
|
|
349
|
+
|
|
350
|
+
# Test AI prompt generation (requires GitHub Copilot)
|
|
351
|
+
tabmind ai-prompt
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
## 🤝 Contributing
|
|
355
|
+
|
|
356
|
+
Contributions are welcome! Here's how you can help:
|
|
357
|
+
|
|
358
|
+
1. Fork the repository
|
|
359
|
+
2. Create a feature branch (`git checkout -b feature/AmazingFeature`)
|
|
360
|
+
3. Make your changes
|
|
361
|
+
4. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
|
|
362
|
+
5. Push to the branch (`git push origin feature/AmazingFeature`)
|
|
363
|
+
6. Open a Pull Request
|
|
364
|
+
|
|
365
|
+
### Areas for Contribution
|
|
366
|
+
|
|
367
|
+
- Add unit tests
|
|
368
|
+
- Improve error handling
|
|
369
|
+
- Add support for additional data formats (CSV, SQLite)
|
|
370
|
+
- Implement cloud synchronization
|
|
371
|
+
- Add more AI integration options
|
|
372
|
+
- Improve documentation
|
|
373
|
+
|
|
374
|
+
## 🐛 Reporting Issues
|
|
375
|
+
|
|
376
|
+
Found a bug? Please open an issue on the [GitHub Issues](https://github.com/IshikaBanga26/TabMind/issues) page with:
|
|
377
|
+
|
|
378
|
+
- Description of the bug
|
|
379
|
+
- Steps to reproduce
|
|
380
|
+
- Expected behavior
|
|
381
|
+
- Your environment (OS, Python version)
|
|
382
|
+
|
|
383
|
+
## 📚 Future Features
|
|
384
|
+
|
|
385
|
+
- [ ] Web-based dashboard for viewing tabs
|
|
386
|
+
- [ ] Browser extension for quick tab saving
|
|
387
|
+
- [ ] Cloud synchronization
|
|
388
|
+
- [ ] Tab categorization and tagging
|
|
389
|
+
- [ ] Advanced analytics and insights
|
|
390
|
+
- [ ] Integration with more AI services
|
|
391
|
+
- [ ] Export to various formats (PDF, CSV, HTML)
|
|
392
|
+
|
|
393
|
+
## 📄 License
|
|
394
|
+
|
|
395
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
396
|
+
|
|
397
|
+
## 👤 Author
|
|
398
|
+
|
|
399
|
+
Your Name - [@yourhandle](https://github.com/IshikaBanga26)
|
|
400
|
+
|
|
401
|
+
## 🙏 Acknowledgments
|
|
402
|
+
|
|
403
|
+
- Built with [Click](https://click.palletsprojects.com/) - Python CLI framework
|
|
404
|
+
- GitHub Copilot integration for AI assistance
|
|
405
|
+
- Inspired by productivity and tab management tools
|
|
406
|
+
|
|
407
|
+
## 📧 Contact & Support
|
|
408
|
+
|
|
409
|
+
For questions or support:
|
|
410
|
+
|
|
411
|
+
- Open an issue on [GitHub](https://github.com/IshikaBanga26/TabMind/issues)
|
|
412
|
+
- Email: your.email@example.com
|
|
413
|
+
- Check the [Discussions](https://github.com/IshikaBanga26/TabMind/discussions) page
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
**Happy tab management!**
|