Skip to content

🧠 TaskMind - AI-powered meeting assistant with crash-free C backend and Swift UI. Features automatic meeting detection, AI task extraction, and comprehensive Thread 4 & 7 crash elimination. Production-ready with menu bar integration.

Notifications You must be signed in to change notification settings

VatsalPandya47/TasksMind-Mac-Os

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 TaskMind - AI Meeting Assistant (C-Based Implementation)

TaskMind is a lightweight, low-level AI memory assistant for macOS that runs invisibly in the background, helping you recall information from tasks and meetings using AI-powered insights.

✨ Features

  • 🔐 Supabase Authentication - Secure login with JWT session management
  • 📊 Task & Meeting Sync - SQLite local storage with cloud synchronization
  • 🧠 AI Memory Recall - GPT-4 powered context-aware responses
  • 🎙️ Meeting Detection - Automatic detection of Zoom, Teams, Meet, etc.
  • 📱 Menu Bar Integration - Native macOS tray icon with quick access
  • 👻 Invisible Overlay - Discreet notifications that don't appear in screen shares
  • ⚡ Low Resource Usage - Written in C for maximum performance

🛠 Prerequisites

  • macOS 13+ with Command Line Tools
  • Xcode (for macOS frameworks)
  • Homebrew package manager

📦 Installation

1. Clone and Setup

git clone <your-repo>
cd TasksMind\ C\ Based

2. Install Dependencies

chmod +x setup-dependencies.sh
./setup-dependencies.sh

3. Configure API Keys

# Copy configuration template
cp config.example.h config.h

# Edit config.h with your Supabase credentials
nano config.h

Update config.h with:

  • Your Supabase project URL
  • Your Supabase anon key

4. Set Environment Variables

# Add to your ~/.zshrc or ~/.bash_profile
export OPENAI_API_KEY="your-openai-api-key-here"

5. Build TaskMind

make clean
make

🚀 Usage

Command Line Interface

# Show help
./build/taskmind help

# Login to your account
./build/taskmind login user@example.com password

# Ask the AI assistant
./build/taskmind ask "What meetings do I have today?"

# Sync data with cloud
./build/taskmind sync

# Check status
./build/taskmind status

# Run as background daemon with tray icon
./build/taskmind daemon

Background Daemon Mode

When running as a daemon, TaskMind:

  • Shows a brain icon 🧠 in your menu bar
  • Automatically detects meetings and changes to recording mode 🔴
  • Provides "Ask AI" option via menu
  • Syncs data in the background
  • Shows discreet notifications for meeting detection

Menu Bar Features

Right-click the 🧠 icon to access:

  • Ask AI... - Quick AI query dialog
  • Sync Data - Manual data synchronization
  • Status - View authentication and data status
  • Preferences - Configure settings (coming soon)
  • Quit TaskMind - Clean shutdown

📋 Supabase Database Schema

Create these tables in your Supabase project:

-- Tasks table
CREATE TABLE tasks (
  id BIGSERIAL PRIMARY KEY,
  user_id UUID REFERENCES auth.users(id),
  title TEXT NOT NULL,
  description TEXT,
  due_date TIMESTAMPTZ,
  completed BOOLEAN DEFAULT false,
  created_at TIMESTAMPTZ DEFAULT NOW()
);

-- Meetings table  
CREATE TABLE meetings (
  id BIGSERIAL PRIMARY KEY,
  user_id UUID REFERENCES auth.users(id),
  title TEXT NOT NULL,
  summary TEXT,
  start_time TIMESTAMPTZ,
  end_time TIMESTAMPTZ,
  participants TEXT,
  created_at TIMESTAMPTZ DEFAULT NOW()
);

-- Enable Row Level Security
ALTER TABLE tasks ENABLE ROW LEVEL SECURITY;
ALTER TABLE meetings ENABLE ROW LEVEL SECURITY;

-- Create policies
CREATE POLICY "Users can view own tasks" ON tasks
  FOR SELECT USING (auth.uid() = user_id);

CREATE POLICY "Users can insert own tasks" ON tasks
  FOR INSERT WITH CHECK (auth.uid() = user_id);

CREATE POLICY "Users can view own meetings" ON meetings
  FOR SELECT USING (auth.uid() = user_id);

CREATE POLICY "Users can insert own meetings" ON meetings
  FOR INSERT WITH CHECK (auth.uid() = user_id);

🔧 Development

Project Structure

taskmind-c/
├── src/                    # Source code
│   ├── taskmind.h         # Main header
│   ├── main.c             # Application entry point
│   ├── login.c            # Supabase authentication
│   ├── db_sync.c          # SQLite & sync
│   ├── memory.c           # Memory recall system
│   ├── ai.c               # OpenAI integration
│   ├── tray.m             # Menu bar (Objective-C)
│   ├── meeting_detection.c # Meeting monitoring
│   ├── overlay.c          # Notification system
│   ├── log.c              # Logging system
│   └── utils.c            # Utility functions
├── Makefile               # Build configuration
├── setup-dependencies.sh  # Dependency installer
└── README.md              # This file

Building Debug Version

make debug
./build/taskmind -d

Cleaning Build Files

make clean

Installing System-wide

make install
taskmind daemon

🐛 Troubleshooting

Common Issues

"Command not found" errors:

# Ensure dependencies are installed
brew install openssl curl jq sqlite3 json-c pkg-config

Authentication failures:

# Verify Supabase configuration
./build/taskmind status

AI queries failing:

# Check OpenAI API key
echo $OPENAI_API_KEY
export OPENAI_API_KEY="your-key-here"

Meeting detection not working:

  • Ensure accessibility permissions are granted
  • Check that target meeting apps are running
  • Review logs in ~/.taskmind/taskmind.log

Logs Location

# View application logs
tail -f ~/.taskmind/taskmind.log

# View database
sqlite3 ~/.taskmind/taskmind.db ".tables"

🔒 Security

  • JWT tokens are stored locally with expiration checking
  • All HTTP requests use SSL/TLS encryption
  • Local database contains no sensitive credentials
  • OpenAI API key is read from environment (not stored)

📈 Performance

  • Memory Usage: ~5-10MB RAM
  • CPU Usage: <1% when idle, 2-5% during AI queries
  • Disk Usage: ~2MB executable + local database
  • Network: Minimal - only syncs when needed

🛡️ Privacy

TaskMind is designed with privacy in mind:

  • All data stays local unless explicitly synced
  • No telemetry or analytics
  • Open source - audit the code yourself
  • AI queries are sent to OpenAI but not stored by TaskMind

🚧 Future Improvements

  • Local Whisper transcription for meeting audio
  • End-to-end encryption for sensitive data
  • Integration with native Calendar.app
  • Custom AI model support (local LLMs)
  • Team sharing features
  • Advanced meeting analytics

📄 License

MIT License - see LICENSE file for details.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly on macOS
  5. Submit a pull request

📞 Support

  • Issues: Open a GitHub issue
  • Discussions: Use GitHub Discussions
  • Email: [your-email]

Built with ❤️ for productivity enthusiasts who value performance and privacy.

🧠⚡ TaskMind - Remember Everything, Miss Nothing

About

🧠 TaskMind - AI-powered meeting assistant with crash-free C backend and Swift UI. Features automatic meeting detection, AI task extraction, and comprehensive Thread 4 & 7 crash elimination. Production-ready with menu bar integration.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published