AI powered stocks CLI tool

1 hour ago 2

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

  • 📊 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
pip install stock-tracker-cli
git clone https://github.com/Chukwuebuka-2003/stock_cli.git cd stock_cli pip install -e .
# 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:

# 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
# 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 [email protected]
# Add a stock position stock-tracker add <SYMBOL> <QUANTITY> <PURCHASE_PRICE> # Remove a stock position stock-tracker remove <SYMBOL>
# Generate plain text report stock-tracker report # Generate AI-powered analysis report stock-tracker ai-report [--email EMAIL]
# 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
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%)
# Build the image docker-compose build # Run one-time report docker-compose run stock-tracker stock-tracker report # Run with scheduled reports (daily at 4:30 PM UTC on weekdays) docker-compose up -d cron

Create a .env file:

GROQ_API_KEY=your_groq_api_key ALPHA_VANTAGE_API_KEY=your_alpha_vantage_key EMAIL_SMTP_SERVER=smtp.gmail.com EMAIL_PORT=587 EMAIL_USERNAME=[email protected] EMAIL_PASSWORD=your_app_password EMAIL_RECIPIENT=[email protected]

The CLI stores data in platform-specific directories:

  • Linux: ~/.config/StockTrackerCLI/ and ~/.local/share/StockTrackerCLI/
  • macOS: ~/Library/Application Support/StockTrackerCLI/
  • Windows: %LOCALAPPDATA%\StockTrackerCLI\
  • 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
  • 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)
  • click - CLI framework
  • pandas - Data manipulation
  • groq - AI inference
  • alpha-vantage - Stock data API
  • python-dateutil - Date utilities
  • appdirs - Cross-platform directories

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

MIT License - see LICENSE file for details

Chukwuebuka Ezeokeke - GitHub

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

Found a bug? Please report it on the GitHub Issues page.

Read Entire Article