Automate your morning. Optimize your day. Accelerate your growth.
Mornings set the trajectory for your entire day. But for many of us—engineers, students, and entrepreneurs—the first hour is wasted on low-value tasks. We toggle between weather apps, calendars, fitness trackers, and news sites, trying to piece together a plan. By the time we start working, we're already suffering from decision fatigue.
This Personal Assistant was built to solve that fragmentation.
It is a silent, automated system that runs while you sleep. At 7:00 AM, it delivers a single, comprehensive briefing email that answers the critical questions:
- "What do I need to achieve today?"
- "How should I train based on my recovery?"
- "When can I find time to study?"
- "What is happening in my industry?"
Stop reacting to your day. Start owning it.
Instead of checking five different apps, get one synthesized report. The system aggregates weather, news, and schedule data so you don't have to.
It's easy to skip a workout or study session when it's not on your calendar. This assistant proactively schedules your goals into your free time, making consistency the default option.
The "Calendar Agent" analyzes your day and uses LLMs to identify your Top 3 Priorities. You wake up knowing exactly what matters, without burning mental energy on prioritization.
Finding relevant networking events is tedious. The "Event Scout" scrapes local meetups and ranks them based on your specific career interests (e.g., "Rust", "Startups"), ensuring you never miss an opportunity to connect.
The system operates on a hub-and-spoke model. A central "Orchestrator" manages specialized agents, each an expert in one domain.
| Agent | Responsibility |
|---|---|
| Orchestrator | Manages dependencies, retries failed tasks, and compiles the final report. |
| Calendar | Analyzes your schedule to find free blocks for deep work and spot travel conflicts. |
| Fitness | Connects to Strava to calculate a recovery score (1-10) and suggests workouts adapted to the local weather. |
| Event Scout | Scrapes local events and scores them based on relevance to your career goals. |
| Ghostwriter | Synthesizes your day's achievements into a professional social media draft to help build your personal brand. |
| Linguist | Teaches you vocabulary words that are contextually relevant to your day's specific schedule. |
| Weather | Provides hyper-local forecasts to inform your run, commute, or outfit choice. |
The system is designed for reliability and extensibility. It runs locally or on a server, using a modular design that allows you to easily enable or disable agents.
flowchart TB
subgraph Trigger
Cron[Cron / Task Scheduler] -->|7 AM| Orchestrator
end
subgraph Core System
Orchestrator[Orchestrator Agent]
DailyState[(Daily State JSON)]
Email[HTML Email Output]
end
subgraph Independent Agents
Weather[Weather Agent]
Calendar[Calendar Agent]
Spiritual[Spiritual Agent]
Events[Event Scout Agent]
end
subgraph Dependent Agents
Fitness[Fitness Agent]
WGU[WGU Agent]
Linguist[Linguist Agent]
Ghostwriter[Ghostwriter Agent]
end
subgraph Services
NewsService[News Service]
OAuth[OAuth Manager]
end
%% Flow
Orchestrator --> Weather
Orchestrator --> Calendar
Orchestrator --> Spiritual
Orchestrator --> Events
%% Data Dependencies
Weather -->|Weather Data| Fitness
Calendar -->|Free Blocks| WGU
Calendar -->|Schedule & Context| Linguist
Calendar -->|Priorities & Schedule| Ghostwriter
Fitness -->|Workout Context| Linguist
Fitness -->|Recovery & Plan| Ghostwriter
WGU -->|Study Progress| Ghostwriter
%% News Flow
Orchestrator --> NewsService
NewsService -->|Filter: Tech Stories| Ghostwriter
NewsService -->|Filter: Top 3 Stories| Email
%% Persistence
Fitness -.->|Save Goals| DailyState
WGU -.->|Save Goals| DailyState
Orchestrator -.->|Load/Save| DailyState
%% Output
Orchestrator -->|Compiles| Email
style Orchestrator fill:#ff6b6b,color:#fff
style DailyState fill:#4ecdc4,color:#000
style Email fill:#95e1d3,color:#000
style OAuth fill:#f9d5e5,color:#000
- Python 3.11+
- Git
- API Keys: OpenWeatherMap, DeepSeek (LLM), Google Calendar, Strava
-
Clone & Install
git clone https://github.com/yourusername/personal-assistant.git cd personal-assistant pip install -e .
-
Configure Environment See
docs/ENV_SETUP.mdfor detailed instructions on obtaining API keys.# Create .env file and fill in your keys # (Refer to docs/ENV_SETUP.md)
-
Setup OAuth (One-time)
python scripts/setup_oauth_google.py python scripts/setup_oauth_strava.py
-
Run It
python src/main.py
You can tailor the assistant to your specific needs without modifying the code by editing data/config.json.
{
"location": "San Francisco, CA",
"timezone": "America/Los_Angeles",
"event_keywords": ["AI", "Python", "Networking"],
"agents": {
"fitness": { "enabled": true },
"wgu": { "enabled": false }
}
}We built this tool because we believe your data belongs to you.
- Local First: All processing happens on your machine.
- Encrypted Tokens: OAuth credentials are encrypted at rest.
- No Leaks: Strict git policies ensure your personal data never accidentally leaves your computer.
Run the test suite using pytest:
# Run all tests
pytest
# Run only unit tests
pytest tests/unitWe welcome contributions from anyone who wants to improve their productivity workflow. Please feel free to submit a Pull Request.
Built for those who value their time.