Ghost System is an intelligent, automated agent framework designed to bridge the gap between unstructured mobile communication and structured productivity tools.
It autonomously navigates a real Android device to scrape event details from WhatsApp group chats, automatically schedules them into Google Tasks, and auto-joins video meetings (Zoom/Meet/Teams) while ensuring your privacy settings are active.
- 📱 Real-Device Automation: Uses ADB (Android Debug Bridge) to control a physical or emulated Android device—no hacking or unofficial APIs required.
- 🧠 LLM-Powered Parsing: Leverages Google Gemini 2.5 Flash to intelligently extract dates, times, and meeting links from natural language conversations.
- Smart WhatsApp Scraper:
- Auto-navigates to specific groups defined in config.
- Performs intelligent scrolling (historical lookup) to capture recent context.
- Outputs structured JSON data.
- 📅 Google Tasks Auto-Entry:
- Handles complex UI interactions (Title, Description, Date/Time pickers).
- Smart Time Entry: Uses a fallback strategy to switch Google Tasks' clock UI to "Keyboard Mode" for precise time setting.
- 🎥 Auto-Meeting Joiner:
- Multi-Platform: Supports Zoom, Google Meet, and Microsoft Teams.
- Privacy First: Automatically toggles OFF Audio and Video before joining any meeting.
- Secure Access: autonomously handles Meeting ID and Password entry.
- Turbo Nav: Force-stops and launches WhatsApp to ensure a clean state.
- Search & Enter: Types the group name and enters the chat.
- Scroll & Extract: Performs vertical swipes to load history and uses LLM to parse events into JSON.
- Launch: Opens Google Tasks.
- Input: Types Title and Description (including links).
- Smart Time: Switches UI to Keyboard Input Mode to set precise deadlines.
- Save: Commits the task.
- Direct Launch: Uses
adb shell monkeyto launch Zoom/Meet/Teams directly. - Join Flow: Inputs Meeting ID.
- Privacy Guard:
- Critical: Identifies and taps "Turn off Video" and "Turn off Audio" toggles.
- Verify: Ensures switches are active before proceeding.
- Credential Entry: Handles Password/Passcode entry if prompted by the app.
- Finalize: Taps "Join" and waits for the "Waiting for Host" screen.
- Core Language: Python 3.10+
- AI/LLM:
llama-index, Google Gemini 2.5 Flash API - Device Control: ADB (Android Debug Bridge) via
subprocess - Agent Framework:
DroidRun(Custom wrapper for agentic reasoning) - Data Validation: Pydantic
ghost-system/
│
├── agents/
│ ├── __init__.py
│ ├── scraper_agent.py # The "Eye": Navigates WhatsApp & extracts data
│ ├── models.py # Pydantic models (GroupScrapeResult) for validation
| |── meeeting_agent.py
| |── event_agent.py
│ │
│ └── prompts/ # Prompt Engineering Hub
│ ├── __init__.py
│ ├── prompts.py # Python loader/manager for templates
│ ├── set_event.jinja2 # Template for Task Creation
│ ├── scrape.jinja2 # Template for WhatsApp Parsing
│ └── join_meeting.jinja2 # Template for Zoom/Meet Automation
│
├── data/ # Output folder for scraped JSON files
│
├── droidrun/ # Core Agent Framework (Config, Agent, Executors)
│
├── main.py # The "Brain": Router logic & Agent orchestration
├── groups.json # Config: List of WhatsApp groups to monitor
├── .env # Config: API Keys (GEMINI_API_KEY)
├── requirements.txt # Python dependencies
└── README.md # This file