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.
- 🔐 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
- macOS 13+ with Command Line Tools
- Xcode (for macOS frameworks)
- Homebrew package manager
git clone <your-repo>
cd TasksMind\ C\ Based
chmod +x setup-dependencies.sh
./setup-dependencies.sh
# 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
# Add to your ~/.zshrc or ~/.bash_profile
export OPENAI_API_KEY="your-openai-api-key-here"
make clean
make
# 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
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
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
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);
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
make debug
./build/taskmind -d
make clean
make install
taskmind daemon
"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
# View application logs
tail -f ~/.taskmind/taskmind.log
# View database
sqlite3 ~/.taskmind/taskmind.db ".tables"
- 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)
- 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
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
- 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
MIT License - see LICENSE file for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly on macOS
- Submit a pull request
- 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