Skip to content

dtruman/wingclip

Repository files navigation

πŸš€ Wingclip

AI-Powered Meeting Transcript Processor - Transform your meeting notes with intelligent organization and enhancement.

Wingclip is a powerful CLI tool that extracts meeting transcripts from HTML content and uses AI to create beautifully organized, searchable notes in your knowledge vault.

License: MIT Python 3.7+ PRs Welcome

✨ Features

  • 🧠 AI-Powered Organization - Automatically categorizes and places notes in intelligent folder structures
  • πŸ“ Smart Content Enhancement - Transforms raw transcripts into structured meeting notes
  • πŸ—‚οΈ Vault Integration - Works seamlessly with Obsidian, Notion, and other note-taking apps
  • 🎯 Intelligent File Naming - Creates meaningful filenames based on content and context
  • ⚑ Multiple AI Models - Choose between speed and quality (llama3, mistral, phi3)
  • πŸ”„ Interactive Editing - Preview and edit content before saving
  • πŸ“Š Existing Structure Detection - Analyzes your vault and follows your organization patterns

πŸš€ Quick Start

1. Installation

Option A: Quick Install (Windows)

# Download and run the installer
curl -O https://raw.githubusercontent.com/dtruman2012/wingclip/main/install.bat
install.bat

Option B: Install via pip

pip install wingclip

Option C: Development Installation

git clone https://github.com/dtruman2012/wingclip.git
cd wingclip
pip install -e ".[full]"

2. Setup AI (Optional but Recommended)

# Install Ollama from https://ollama.ai/download
# Then setup Wingclip AI features
wingclip setup

3. Configure Your Vault

# Windows
set WINGCLIP_VAULT_PATH=C:\Users\YourName\Documents\MyVault
set WINGCLIP_USER_NAME=Your Name
set WINGCLIP_NOTE_APP=obsidian

# Linux/Mac
export WINGCLIP_VAULT_PATH="/home/yourname/Documents/MyVault"
export WINGCLIP_USER_NAME="Your Name"
export WINGCLIP_NOTE_APP="obsidian"

4. Extract Your First Transcript

  1. Copy HTML content from a meeting transcript webpage to clipboard (best to copy only transcriptContent section)
  2. Run the extract command:
    wingclip extract --title "Sprint Planning Q3"
  3. Watch the magic happen - AI analyzes your content and vault structure to create perfectly organized notes!

🎯 Usage Examples

Basic Extraction

# Interactive mode with AI enhancement
wingclip extract --title "Weekly Team Sync"

# Quick extraction without editing
wingclip extract --title "Daily Standup" --no-interactive

AI Model Selection

# Use high-quality model (slower)
wingclip extract --model llama3 --title "Architecture Review"

# Use fast model
wingclip extract --model mistral --title "Quick Check-in"

# Let AI choose the best model for your system
wingclip optimize

Vault Management

# Analyze your existing vault structure
wingclip analyze-vault

# Check configuration and AI status
wingclip config

# Debug clipboard content
wingclip debug

πŸ“‹ Commands Reference

Command Description Example
extract Extract and enhance transcript wingclip extract --title "Sprint Planning"
config Show current configuration wingclip config
setup Setup AI models wingclip setup
models List AI models wingclip models
optimize Find best AI model wingclip optimize
analyze-vault Analyze vault structure wingclip analyze-vault
debug Debug clipboard content wingclip debug

Extract Command Options

wingclip extract [OPTIONS]

Options:
  --title TEXT          Meeting/content title (required for AI placement)
  --ai / --no-ai       Use AI enhancement [default: enabled]
  --model TEXT         Specify AI model (llama3, mistral, phi3)
  --interactive / --no-interactive  Enable preview/editing [default: enabled]
  --help               Show help message

πŸ€– AI Models

Wingclip supports multiple AI models through Ollama:

Model Speed Quality Best For
mistral ⚑⚑⚑ ⭐⭐⭐ Daily meetings, quick notes
llama3 ⚑ ⭐⭐⭐⭐⭐ Important meetings, detailed analysis
phi3 ⚑⚑⚑⚑ ⭐⭐ Fast processing, simple content

AI Setup

  1. Install Ollama: Download from ollama.ai
  2. Setup Wingclip: Run wingclip setup
  3. Optimize: Run wingclip optimize to find the best model for your system

πŸ—‚οΈ Intelligent Organization

Wingclip analyzes your existing vault structure and intelligently places new content:

Example Transformations

Your Structure:

πŸ“ 02 - Work/
  πŸ“ Daily Meetings/
    πŸ“ July-2025/
  πŸ“ Sprint Planning/
πŸ“ 01 - Personal/
  πŸ“ Daily Notes/

AI Suggestions:

  • "Daily Standup" β†’ 02 - Work/Daily Meetings/July-2025/daily-standup-2025-07-12.md
  • "Sprint Retrospective" β†’ 02 - Work/Sprint Planning/sprint-retrospective-2025-07-12.md
  • "Personal Reflection" β†’ 01 - Personal/Daily Notes/personal-reflection-2025-07-12.md

Smart Features

  • 🎯 Content Type Detection - Automatically identifies meeting types, daily notes, project updates
  • πŸ“… Date-Aware Placement - Creates current date folders, never suggests old ones
  • πŸ” Pattern Recognition - Learns from your existing folder naming conventions
  • πŸ“ Intelligent Fallbacks - Uses rule-based placement when AI is unavailable

βš™οΈ Configuration

Environment Variables

Variable Description Example
WINGCLIP_VAULT_PATH Path to your notes vault /Users/name/Documents/Vault
WINGCLIP_USER_NAME Your name for personalized notes John Doe
WINGCLIP_NOTE_APP Note-taking app type obsidian, notion, markdown
WINGCLIP_LITE Use lite mode (mistral model) 1, true, yes

Supported Note Apps

  • Obsidian - Full integration with vault structure
  • Notion - Markdown export compatibility
  • Logseq - Block-based note support
  • Roam Research - Graph database integration
  • Any Markdown Editor - Universal markdown support

πŸ› οΈ Development

Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

# Clone the repository
git clone https://github.com/dtruman2012/wingclip.git
cd wingclip

# Create virtual environment
python -m venv venv
source venv/bin/activate  # Linux/Mac
# or
venv\Scripts\activate     # Windows

# Install in development mode
pip install -e ".[full]"

# Run tests
python -m pytest

# Build distribution
python -m build

Project Structure

Wingclip/
β”œβ”€β”€ cli.py              # Main CLI interface
β”œβ”€β”€ utils.py            # Core utilities and AI functions
β”œβ”€β”€ ollama_manager.py   # AI model management
β”œβ”€β”€ scraper.py          # HTML content extraction
└── __main__.py         # Entry point

Key Functions

  • extract_transcript_from_html() - Extracts text from HTML content
  • ai_suggest_optimal_file_placement() - AI-powered file organization
  • scan_vault_structure() - Analyzes existing vault patterns
  • save_note_with_preview() - Interactive editing interface

🀝 Contributing

We'd love your help making Wingclip better! Here's how to contribute:

πŸ› Bug Reports

  1. Check existing issues first
  2. Create detailed bug report with:
    • Steps to reproduce
    • Expected vs actual behavior
    • System information
    • Sample content (if safe to share)

πŸ’‘ Feature Requests

  1. Search existing requests first
  2. Describe the feature clearly:
    • What problem does it solve?
    • How should it work?
    • Example use cases

πŸ”§ Code Contributions

  1. Fork the repository
  2. Create feature branch: git checkout -b feature-name
  3. Make your changes with clear commit messages
  4. Add tests for new functionality
  5. Update documentation if needed
  6. Submit pull request with description

πŸ“‹ Development Guidelines

  • Code Style: Follow PEP 8
  • Type Hints: Use type annotations
  • Documentation: Update docstrings and README
  • Testing: Add tests for new features
  • Commits: Use clear, descriptive commit messages

πŸ“Š Examples

Meeting Notes Output

Input: Raw meeting transcript from clipboard

Output:

# Weekly Team Sync

**Date:** 2025-07-12
**Time:** 14:30
**User:** John Doe
**Type:** Team Meeting

## Key Discussion Points

- Sprint progress review
- Upcoming feature releases
- Resource allocation for Q3

## Action Items for John Doe

- [ ] Review API documentation
- [ ] Schedule architecture meeting
- [ ] Update project timeline

## Decisions Made

- Move forward with microservices architecture
- Postpone feature X to next sprint

---
*Generated by Wingclip - AI Analysis: Team sync meeting with action items*

Folder Structure Example

Before Wingclip:

πŸ“ My Vault/
  πŸ“ Random Notes/
    πŸ“„ meeting_notes_random.md
    πŸ“„ another_meeting.md

After Wingclip:

πŸ“ My Vault/
  πŸ“ 02 - Work/
    πŸ“ Daily Meetings/
      πŸ“ July-2025/
        πŸ“„ weekly-team-sync-2025-07-12.md
    πŸ“ Sprint Planning/
      πŸ“„ sprint-retrospective-2025-07-08.md
  πŸ“ 01 - Personal/
    πŸ“ Daily Notes/
      πŸ“„ daily-reflection-2025-07-12.md

πŸ”§ Troubleshooting

Common Issues

Q: "No transcript content found" error

  • Ensure you copy the transcriptContent section of the fireflies.ai meeting transcript
  • Try wingclip debug to see what's in your clipboard

Q: AI not working

  • Install Ollama from ollama.ai
  • Run wingclip setup to install models
  • Check wingclip models for status

Q: Wrong folder placement

  • Run wingclip analyze-vault to see detected patterns
  • Provide better titles for more accurate placement
  • Check your vault structure follows consistent naming

Q: Slow AI processing

  • Use wingclip optimize to find fastest model
  • Set WINGCLIP_LITE=1 for mistral model
  • Use --model mistral for faster processing

Getting Help

πŸ“„ License

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

πŸ™ Acknowledgments

  • Ollama for providing excellent local AI models
  • Typer for the beautiful CLI framework
  • Rich for gorgeous terminal output
  • The Obsidian community for inspiration on knowledge management

Made with ❀️ by Devon Truman

Star ⭐ this repository if you find it helpful!

About

A CLI used for taking Fireflies.ai transcript text and summarizing them in your favorite note's vault

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors