Metadata-Version: 2.4
Name: stock-tracker-cli
Version: 0.2.0
Summary: A CLI tool to track stock portfolios with AI-powered analysis and automated GitHub Actions reporting.
Author-email: Chukwuebuka Ezeokeke <ebulamicheal@gmail.com>
Project-URL: Homepage, https://github.com/Chukwuebuka-2003/stock_cli
Project-URL: Bug Tracker, https://github.com/Chukwuebuka-2003/stock_cli/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Office/Business :: Financial :: Investment
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click==8.1.7
Requires-Dist: alpha-vantage
Requires-Dist: pandas==2.1.4
Requires-Dist: groq>=0.9.0
Requires-Dist: python-dateutil==2.8.2
Requires-Dist: appdirs>=1.4.4
Requires-Dist: tavily-python>=0.5.0
Requires-Dist: yfinance==0.2.38
Requires-Dist: schedule==1.2.0
Requires-Dist: python-dotenv==1.0.0
Dynamic: license-file

# Stock Tracker CLI

A command-line tool to track your stock portfolio and get AI-powered investment analysis.

## Features

- 📊 **Portfolio Management**: Add and remove stock positions with purchase prices
- 💹 **Real-time Data**: Fetch current stock prices using Alpha Vantage API
- 🤖 **AI Analysis**: Get intelligent insights using Groq's LLM (llama-3.3-70b-versatile)
- 📧 **Email Reports**: Send HTML-formatted reports with AI analysis via email
- ⚡ **Smart Caching**: 15-minute cache to reduce API calls
- 🐳 **Docker Support**: Containerized deployment with automated scheduled reports
- 🚨 **GitHub Actions Automation**: Scheduled and event-based reporting with Tavily API integration
- 📰 **Market Event Detection**: Automatically trigger reports when significant market events affect your portfolio

## Installation

### From PyPI

```bash
pip install stock-tracker-cli
```

### From Source

```bash
git clone https://github.com/Chukwuebuka-2003/stock_cli.git
cd stock_cli
pip install -e .
```

## Quick Start

### 1. Configure API Keys

```bash
# Setup Groq API key for AI analysis
stock-tracker setup-ai

# Setup Alpha Vantage API key for stock data
stock-tracker setup-alpha-vantage

# Setup email settings (optional, for email reports)
stock-tracker setup-email
```

**Get Free API Keys:**
- Groq: https://console.groq.com/
- Alpha Vantage: https://www.alphavantage.co/support/#api-key

### 2. Add Stock Positions

```bash
# Add a stock position
stock-tracker add AAPL 10 150.00

# Arguments: SYMBOL QUANTITY PURCHASE_PRICE
stock-tracker add MSFT 5 300.00
stock-tracker add GOOGL 3 2800.00
```

### 3. Generate Reports

```bash
# View portfolio report in terminal
stock-tracker report

# Get AI-powered analysis
stock-tracker ai-report

# Send AI report via email
stock-tracker ai-report --email recipient@example.com
```

## Commands

### Portfolio Management

```bash
# Add a stock position
stock-tracker add <SYMBOL> <QUANTITY> <PURCHASE_PRICE>

# Remove a stock position
stock-tracker remove <SYMBOL>
```

### Reports

```bash
# Generate plain text report
stock-tracker report

# Generate AI-powered analysis report
stock-tracker ai-report [--email EMAIL]
```

### Configuration

```bash
# Configure Groq API key
stock-tracker setup-ai

# Configure Alpha Vantage API key
stock-tracker setup-alpha-vantage

# Configure email settings
stock-tracker setup-email
```

## Example Output

```
Stock Portfolio Report
Generated on: 2025-11-09 10:30:00

╔════════╦══════════╦════════════════╦═══════════════╦════════════╦═════════════════╗
║ Symbol ║ Quantity ║ Purchase Price ║ Current Price ║    Value   ║ Gain/Loss (%)   ║
╠════════╬══════════╬════════════════╬═══════════════╬════════════╬═════════════════╣
║  AAPL  ║   10.0   ║    $150.00     ║    $178.50    ║  $1,785.00 ║ +$285.00 (+19%) ║
║  MSFT  ║    5.0   ║    $300.00     ║    $385.20    ║  $1,926.00 ║ +$426.00 (+28%) ║
║ GOOGL  ║    3.0   ║   $2,800.00    ║   $2,950.00   ║  $8,850.00 ║ +$450.00 (+5%)  ║
╚════════╩══════════╩════════════════╩═══════════════╩════════════╩═════════════════╝

Portfolio Summary:
Total Value: $12,561.00
Total Gain/Loss: +$1,161.00 (+10.2%)
```

## GitHub Actions Automation ⚡

**NEW!** Automate your stock reports with GitHub Actions - no server required!

### Features

- 📅 **Scheduled Reports**: Daily, weekly, and monthly automated reports
- 🚨 **Event-Based Triggers**: Automatically generate reports when market events affect your portfolio
- 🔒 **Secure**: All credentials stored in GitHub Secrets
- 📧 **Email Delivery**: Reports sent directly to your inbox
- 🐳 **Docker Execution**: Containerized workflows for consistency

### Quick Setup

1. **Configure GitHub Secrets** (Settings → Secrets → Actions):
   ```
   GROQ_API_KEY
   ALPHA_VANTAGE_API_KEY
   TAVILY_API_KEY
   EMAIL_SMTP_SERVER
   EMAIL_SMTP_PORT
   EMAIL_ADDRESS
   EMAIL_PASSWORD
   EMAIL_RECIPIENT
   PORTFOLIO_POSITIONS
   ```

2. **Set Portfolio Positions** (JSON format):
   ```json
   [{"symbol":"AAPL","quantity":10,"purchase_price":150.0},{"symbol":"GOOGL","quantity":5,"purchase_price":2800.0}]
   ```

3. **Enable GitHub Actions** in your repository settings

4. **Done!** Reports will be automatically generated and emailed on schedule

### Workflows

- **Scheduled Reports**: Daily (8 AM UTC), Weekly (Mon 6 AM), Monthly (1st at 7 AM)
- **Event-Based**: Checks every 2 hours for market events affecting your portfolio
- **Docker-Based**: Containerized execution (8:30 AM UTC daily)

### Get Started

📖 **[Complete Setup Guide](GITHUB_ACTIONS_SETUP.md)** - Detailed instructions with troubleshooting

**Get Tavily API Key**: https://tavily.com (Free tier: 1,000 credits/month)

---

## Docker Deployment

### Build and Run

```bash
# Build the image
docker build -t stock-tracker:latest .

# Run one-time report
docker run --rm stock-tracker:latest report

# Run AI report with email
docker run --rm \
  -e GROQ_API_KEY="your_key" \
  -e ALPHA_VANTAGE_API_KEY="your_key" \
  -e EMAIL_ADDRESS="your@gmail.com" \
  -e EMAIL_PASSWORD="app_password" \
  -e EMAIL_RECIPIENT="recipient@example.com" \
  -e PORTFOLIO_POSITIONS='[{"symbol":"AAPL","quantity":10,"purchase_price":150}]' \
  stock-tracker:latest ai-report --email
```

### Environment Variables

Create a `.env` file:

```env
GROQ_API_KEY=your_groq_api_key
ALPHA_VANTAGE_API_KEY=your_alpha_vantage_key
TAVILY_API_KEY=your_tavily_api_key
EMAIL_SMTP_SERVER=smtp.gmail.com
EMAIL_SMTP_PORT=587
EMAIL_ADDRESS=your_email@gmail.com
EMAIL_PASSWORD=your_app_password
EMAIL_RECIPIENT=recipient@example.com
PORTFOLIO_POSITIONS=[{"symbol":"AAPL","quantity":10,"purchase_price":150.0}]
```

## Configuration Files

The CLI stores data in platform-specific directories:

- **Linux**: `~/.config/StockTrackerCLI/` and `~/.local/share/StockTrackerCLI/`
- **macOS**: `~/Library/Application Support/StockTrackerCLI/`
- **Windows**: `%LOCALAPPDATA%\StockTrackerCLI\`

### Files:
- `config.json` - API keys and email settings
- `positions.json` - Your stock positions
- `cache.json` - Cached stock data (15-minute expiry)
- `logs/stock_tracker.log` - Application logs

## Requirements

- Python 3.8 or higher
- Internet connection for API access
- API keys:
  - Groq API (for AI analysis)
  - Alpha Vantage API (for stock data)
- SMTP server access (optional, for email reports)

## Dependencies

- click - CLI framework
- pandas - Data manipulation
- groq - AI inference
- alpha-vantage - Stock data API
- tavily-python - Market event detection and news search
- python-dateutil - Date utilities
- appdirs - Cross-platform directories
- schedule - Task scheduling
- python-dotenv - Environment variable management

## Gmail Setup

For Gmail users, you'll need to use an App Password:

1. Enable 2-factor authentication on your Google account
2. Go to https://myaccount.google.com/apppasswords
3. Generate an app password for "Mail"
4. Use this app password when running `stock-tracker setup-email`

## License

MIT License - see LICENSE file for details

## Author

Chukwuebuka Ezeokeke - [GitHub](https://github.com/Chukwuebuka-2003)

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## Issues

Found a bug? Please report it on the [GitHub Issues](https://github.com/Chukwuebuka-2003/stock_cli/issues) page.
