Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– Jarvis AI Assistant

The Ultimate macOS AI Assistant β€” Combining the best of ChatGPT, Siri, Claude, Cursor & Cluely

βœ… Voice Conversation | βœ… Screen Understanding | βœ… Mac Control | βœ… Memory System | βœ… Planning | βœ… Native macOS UI


Swift Python macOS Scripts Tools LangGraph License

πŸš€ Overview

Jarvis is a cutting-edge AI assistant that combines voice conversation, computer vision, screen understanding, and deep Mac automation capabilities. Built with Swift 6/SwiftUI for the frontend and FastAPI/LangGraph for the backend.

New in v2.0

  • 🧠 Dual Modes: Reasoning (detailed planning) or Fast (quick responses)
  • πŸ“‹ Step-by-Step Planning: Visual plan display with real-time status updates
  • πŸ—„οΈ Memory System: Knowledge graph + vector search for context retention
  • πŸŽ™οΈ Voice Pipeline: Pipecat-inspired real-time voice with interruption handling
  • 🎨 Liquid Glass UI: Modern iOS/macOS 26 design language

What makes Jarvis unique:

  • πŸ–₯️ Deep macOS Integration β€” 100+ AppleScripts + 43 AI Tools + Accessibility APIs
  • πŸ‘οΈ Screen Understanding β€” Capture & analyze any screen, window, or selection
  • 🎯 Always-on-Top Focus Mode β€” Like Cluely, but with full AI capabilities
  • πŸ”’ Privacy-First β€” Local LLM support, no cloud dependency required

✨ Key Features

πŸŽ™οΈ Voice Conversation Mode

  • Natural voice interaction with interruption handling
  • Wake word detection β€” "Hey Jarvis" always listening
  • Streaming TTS with premium voices
  • Hands-free and push-to-talk modes
  • Context-aware conversations with memory

πŸ‘οΈ Vision & Screen Understanding

  • Full screen capture β€” Analyze entire display
  • Window capture β€” Screenshot active window
  • Selection capture β€” Capture specific regions
  • Multi-display support β€” Handle multiple monitors
  • Accessibility inspection β€” Read UI elements, buttons, text fields
  • Document processing β€” PDF, images, text with OCR

πŸ–₯️ Mac Automation (100+ Scripts, 43 Tools)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 Mac Automation Categories                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚   SYSTEM     β”‚    APPS      β”‚   BROWSER    β”‚   PRODUCTIVITY    β”‚
β”‚ β€’ Battery    β”‚ β€’ Open/Quit  β”‚ β€’ Safari     β”‚ β€’ Calendar        β”‚
β”‚ β€’ Volume     β”‚ β€’ List Apps  β”‚ β€’ Chrome     β”‚ β€’ Reminders       β”‚
β”‚ β€’ Dark Mode  β”‚ β€’ Frontmost  β”‚ β€’ URLs/Tabs  β”‚ β€’ Notes           β”‚
β”‚ β€’ WiFi Info  β”‚ β€’ Hide/Show  β”‚ β€’ Navigation β”‚ β€’ Mail            β”‚
β”‚ β€’ Brightness β”‚ β€’ Switch     β”‚              β”‚ β€’ Messages        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚   FINDER     β”‚    MEDIA     β”‚  UTILITIES   β”‚   ACCESSIBILITY   β”‚
β”‚ β€’ Navigate   β”‚ β€’ Play/Pause β”‚ β€’ Clipboard  β”‚ β€’ UI Elements     β”‚
β”‚ β€’ Create     β”‚ β€’ Next/Prev  β”‚ β€’ Terminal   β”‚ β€’ Window Info     β”‚
β”‚ β€’ Open Files β”‚ β€’ Track Info β”‚ β€’ Spotlight  β”‚ β€’ Click Buttons   β”‚
β”‚ β€’ Selection  β”‚ β€’ Playlists  β”‚ β€’ Spaces     β”‚ β€’ Type Text       β”‚
β”‚              β”‚              β”‚              β”‚ β€’ Menu Bars       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                    SCREEN CAPTURE & VISION                       β”‚
β”‚ β€’ Full Screen  β€’ Window  β€’ Selection  β€’ Multi-Display  β€’ OCR    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🎯 Interface Modes

Mode Description Use Case
Focus Mode Always-on-top floating panel Quick access while working
Chat Mode Full-window conversational UI Deep conversations
Conversation Mode Voice-first interface Hands-free interaction

πŸ”’ Safety & Privacy

  • On-device processing with Ollama
  • Blocked destructive operations β€” Cannot delete files
  • No password/keychain access
  • Local data storage option
  • Transparent data usage

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     Jarvis AI Architecture                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚              Swift 6 / SwiftUI Frontend                  β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚   β”‚
β”‚  β”‚  β”‚ Chat     β”‚ Focus    β”‚ Voice    β”‚ Settings      β”‚    β”‚   β”‚
β”‚  β”‚  β”‚ Mode     β”‚ Panel    β”‚ Conv.    β”‚ Panel         β”‚    β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚ Services: Audio | Speech | Streaming | API        β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                            β”‚ HTTP/SSE/WebSocket                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                  FastAPI Backend                         β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚   β”‚
β”‚  β”‚  β”‚ Chat API β”‚Voice API β”‚Files API β”‚  WebSocket    β”‚    β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                            β”‚                                    β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚               LangGraph Agent Orchestrator               β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚   β”‚
β”‚  β”‚  β”‚              Tool Router / Planner                β”‚   β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚   β”‚
β”‚  β”‚  β”‚ OpenAI β”‚ Ollama β”‚ChromaDBβ”‚  Web   β”‚    Mac     β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  API   β”‚ Local  β”‚  RAG   β”‚ Search β”‚ Automation β”‚    β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚            Mac Automation Layer (100+ Scripts)            β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚   β”‚
β”‚  β”‚  β”‚ System   β”‚   Apps   β”‚  Screen  β”‚ Accessibility β”‚    β”‚   β”‚
β”‚  β”‚  β”‚ Control  β”‚  Control β”‚  Capture β”‚   UI Control  β”‚    β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

  • macOS 13.0+ (Ventura or later)
  • Python 3.11+
  • Xcode 15.0+
  • OpenAI API Key (for GPT models)
  • Ollama (optional, for local LLMs)

1. Backend Setup

cd backend

# Create virtual environment
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Configure environment
cp .env.example .env
# Edit .env with your OPENAI_API_KEY

# Start server
python main.py

Backend runs on http://localhost:8000

2. Frontend Setup

cd frontend/JarvisAI

# Open in Xcode
open JarvisAI.xcodeproj

# Build and Run (⌘R)

3. Ollama Setup (Optional)

# Install Ollama
curl -fsSL https://ollama.ai/install.sh | sh

# Pull models
ollama pull llama3.2
ollama pull llava

# Start Ollama
ollama serve

4. Configuration (Optional)

By default, the app connects to http://localhost:8000. To change this (e.g., for deployment):

  • Environment Variable: Set JARVIS_API_URL in your scheme or environment.
  • Info.plist: Add a key JarvisAPIURL with your backend URL.

πŸ“ Project Structure

Jarvis/
β”œβ”€β”€ backend/                    # FastAPI Python Backend
β”‚   β”œβ”€β”€ main.py                # Application entry
β”‚   β”œβ”€β”€ api/
β”‚   β”‚   └── routes/            # REST endpoints
β”‚   β”‚       β”œβ”€β”€ chat.py        # Chat streaming
β”‚   β”‚       β”œβ”€β”€ files.py       # File uploads
β”‚   β”‚       └── conversation.py # Voice handling
β”‚   β”œβ”€β”€ agents/
β”‚   β”‚   β”œβ”€β”€ graph.py           # LangGraph workflow
β”‚   β”‚   β”œβ”€β”€ tools.py           # AI tool definitions
β”‚   β”‚   └── state.py           # Agent state
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ mac_automation/    # AppleScript engine
β”‚   β”‚   β”‚   β”œβ”€β”€ executor.py    # Safe script execution
β”‚   β”‚   β”‚   └── scripts.py     # 100+ pre-built scripts
β”‚   β”‚   β”œβ”€β”€ file_processor/    # Document processing
β”‚   β”‚   └── search_service.py  # Web search
β”‚   └── core/
β”‚       β”œβ”€β”€ config.py          # Settings
β”‚       β”œβ”€β”€ openai_client.py   # OpenAI integration
β”‚       └── chroma_client.py   # Vector DB
β”‚
β”œβ”€β”€ frontend/                   # Swift/SwiftUI Frontend
β”‚   └── JarvisAI/
β”‚       β”œβ”€β”€ JarvisAIApp.swift  # App entry + Focus Panel
β”‚       β”œβ”€β”€ Views/
β”‚       β”‚   β”œβ”€β”€ ChatView.swift
β”‚       β”‚   β”œβ”€β”€ FocusPanelView.swift
β”‚       β”‚   β”œβ”€β”€ UnifiedPanelView.swift
β”‚       β”‚   └── ConversationModeView.swift
β”‚       β”œβ”€β”€ ViewModels/
β”‚       β”‚   β”œβ”€β”€ ChatViewModel.swift
β”‚       β”‚   └── ConversationViewModel.swift
β”‚       └── Services/
β”‚           β”œβ”€β”€ APIService.swift
β”‚           β”œβ”€β”€ StreamingService.swift
β”‚           β”œβ”€β”€ AudioPipeline.swift
β”‚           β”œβ”€β”€ SpeechRecognitionService.swift
β”‚           └── SpeechSynthesisService.swift
β”‚
β”œβ”€β”€ MAC_CONTROL.md             # Mac automation documentation
└── README.md                  # This file

🎯 Usage Examples

Voice Commands

"Hey Jarvis, what's my battery level?"
"Hey Jarvis, open Safari and go to github.com"
"Hey Jarvis, set volume to 50%"
"Hey Jarvis, what apps are running?"
"Hey Jarvis, toggle dark mode"

Screen Understanding

"Take a screenshot and tell me what you see"
"What's the title of my current window?"
"What buttons are visible on screen?"
"Read the text in the focused field"

Mac Automation

"Create a folder called 'Projects' on my desktop"
"Play the next song"
"What's on my calendar today?"
"Send a notification saying 'Meeting in 5 minutes'"
"Open Terminal and run ls"

βš™οΈ Configuration

Backend (.env)

OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o
OLLAMA_BASE_URL=http://localhost:11434
CHROMA_DB_PATH=./chroma_db
MAX_FILE_SIZE=10485760

πŸ”§ Available Tools (43 Total)

The AI has access to these tool categories:

Category Tools Description
Knowledge 3 search_knowledge_base, web_search, process_uploaded_file
Mac Basic 4 run_mac_script, execute_applescript, execute_shell_command, get_available_mac_scripts
App Control 5 launch_app, quit_app, hide_app, get_running_apps, get_frontmost_app
Browser 9 Navigate, focus, scroll, click, search, get page info
Web Page 5 Get elements, click, fill inputs, execute actions
Input 3 click_at_position, type_text, press_keyboard_shortcut
UI Access 2 get_ui_elements, click_ui_element
Screen 4 capture_screen_for_analysis, wait_seconds, get_screen_text_content, verify_app_is_frontmost
System 6 get_system_state, open_file_or_url, reveal_in_finder, get_current_media_info, send_system_notification, manage_window
Shortcuts 2 run_shortcut, list_shortcuts

See MAC_CONTROL.md for complete documentation.

πŸ›‘οΈ Safety Guardrails

Jarvis blocks all destructive operations:

  • ❌ Delete/remove/trash files
  • ❌ Empty trash
  • ❌ Format/erase disks
  • ❌ Shutdown/restart system
  • ❌ Access keychain/passwords
  • ❌ Modify security settings

πŸ› Troubleshooting

Issue Solution
Microphone not working System Preferences β†’ Privacy β†’ Microphone
Screen capture fails Grant screen recording permission
Ollama not connecting Run ollama serve
Backend won't start Check port 8000 is free

πŸ“„ License

MIT License - see LICENSE for details.


Jarvis β€” Your AI-powered Mac companion

Built with Swift, Python, LangGraph & ❀️

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages