Metadata-Version: 2.4
Name: whatdidido
Version: 0.1.6
Summary: Track your work across Jira and Linear. Generate AI-powered summaries of your activities.
Author-email: Olivier Morissette <oliviersm199@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/oliviersm199/whatdididoagain
Project-URL: Repository, https://github.com/oliviersm199/whatdididoagain
Project-URL: Issues, https://github.com/oliviersm199/whatdididoagain/issues
Project-URL: Documentation, https://github.com/oliviersm199/whatdididoagain#readme
Keywords: jira,linear,productivity,work-tracking,ai,openai,cli
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Office/Business
Classifier: Topic :: Utilities
Classifier: Environment :: Console
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.0.0
Requires-Dist: filelock>=3.0.0
Requires-Dist: jira>=3.0.0
Requires-Dist: pytz>=2025.2
Requires-Dist: questionary>=2.1.1
Requires-Dist: python-dotenv>=1.1.1
Requires-Dist: pydantic>=2.12.3
Requires-Dist: openai>=2.6.0
Requires-Dist: rich>=13.0.0
Requires-Dist: tiktoken>=0.5.0
Provides-Extra: dev
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
Requires-Dist: black>=24.0.0; extra == "dev"
Requires-Dist: flake8>=7.0.0; extra == "dev"
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-cov>=6.0.0; extra == "dev"
Dynamic: license-file

# What Did I Do Again?

[![PyPI version](https://badge.fury.io/py/whatdidido.svg)](https://badge.fury.io/py/whatdidido.svg)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

**Track your work across Jira and Linear. Generate AI-powered summaries of your activities.**

**Runs 100% locally on your machine. Bring your own API keys (BYOK) - your credentials stay under your control.**

`whatdidido` is a command-line tool that syncs your work items from ticketing systems (Jira, Linear) and generates intelligent summaries using OpenAI. Perfect for status reports, performance reviews, and keeping track of what you've accomplished.

![Example Output](images/exampleOutput.png)

## Installation

Prequisite is [Python 3.10](https://www.python.org/downloads/) and above installed

### pipx

```bash
brew install pipx
pip install whatdidido
```

## Quick Start

### 1. Configure Your Integrations

```bash
whatdidido connect
```

This interactive wizard will guide you through:

- Selecting which integrations to connect (Jira, Linear)
- Entering API credentials
- Configuring OpenAI for AI summaries (optional)

### 2. Sync Your Work

```bash
whatdidido sync
```

Fetches your work items from all configured integrations.

### 3. Generate a Report

```bash
whatdidido report
```

Creates an AI-powered summary of your activities in `whatdidido.md`.

## Cost Considerations

When using the AI-powered summarization feature, OpenAI API usage will incur costs. Here's what to expect:

**Example Usage Cost:**

- **19 Jira tickets analyzed**
- **API Usage:** ~25,000 input tokens, ~3,079 output tokens
- **Approximate Cost:** $0.06 USD

Actual costs will vary based on:

- Number of work items synced
- Complexity and length of ticket descriptions
- OpenAI model used (configurable)
- Frequency of report generation

**Cost Management Tips:**

- Use date ranges to limit the number of items synced
- Sync only when you need to generate reports
- Monitor your OpenAI API usage at [platform.openai.com](https://platform.openai.com)

## Usage Examples

```bash
# Sync work from the last 30 days (Suppose today is 2025-10-23)
whatdidido sync --start-date 2025-09-23

# Sync work for a specific user
whatdidido sync --user colleague@company.com

# Sync a specific date range
whatdidido sync --start-date 2024-01-01 --end-date 2024-12-31

# View current configuration
whatdidido config

# Clean up synced data
whatdidido clean
```

## Available Commands

| Command      | Description                              |
| ------------ | ---------------------------------------- |
| `connect`    | Configure integrations and credentials   |
| `sync`       | Fetch work items from configured sources |
| `report`     | Generate AI-powered summary report       |
| `config`     | Display current configuration            |
| `disconnect` | Remove integration credentials           |
| `clean`      | Delete synced data files                 |

## Contributing

We welcome contributions! To contribute:

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Run tests: `pytest`
5. Format code: `black .`
6. Submit a pull request

### Development Setup

For local development:

```bash
git clone https://github.com/oliviersm199/whatdididoagain.git
cd whatdididoagain
pip install -e ".[dev]"
pre-commit install
```

### Running Tests

```bash
pytest
pytest --cov=src  # with coverage
```

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Support

- **Issues**: [GitHub Issues](https://github.com/oliviersm199/whatdididoagain/issues)
