This repository implements a 3-layer personal assistant:
directives/: SOPs that define what to do.- Orchestration: the AI agent that routes requests to the right tool.
execution/: deterministic Python scripts for email, meetings, docs, and tasks.
- Read inbox emails (Gmail API)
- Send emails (Gmail API)
- Schedule meetings (Google Calendar API)
- Write docs (local markdown + optional Google Docs API)
- Track tasks (local deterministic JSON store)
- Generate daily brief (emails + meetings + tasks)
- Run recurring inbox/scheduling automation with draft-only approvals
- Expose assistant actions via local MCP server (
mcp/assistant_mcp_server.py)
directives/: personal-assistant SOPsexecution/: deterministic scriptsmcp/: MCP bridge and config templateskills/: skill routing map for this environment.tmp/: intermediate artifacts (safe to delete/regenerate)
- Create a virtualenv (recommended).
- Install dependencies:
pip install -r requirements.txt
- Copy env template:
cp .env.example .env
- Add Google OAuth desktop credentials to
credentials.json. - First API run opens OAuth consent and writes
token.json.
Use account-specific tokens for each Gmail account:
- Link account 1:
python3 execution/assistant_cli.py account-link --account "Daminathan7@gmail.com"
- Link account 2:
python3 execution/assistant_cli.py account-link --account "Damilolacom70@gmail.com"
After linking, run commands with --account:
python3 execution/assistant_cli.py email-read --account "Daminathan7@gmail.com" --max-results 5python3 execution/assistant_cli.py email-read --account "Damilolacom70@gmail.com" --max-results 5
Primary entrypoint:
python3 execution/assistant_cli.py --help
Examples:
- Read unread inbox:
python3 execution/assistant_cli.py email-read --account "Daminathan7@gmail.com" --query "in:inbox" --unread-only --max-results 10
- Send an email:
python3 execution/assistant_cli.py email-send --account "Daminathan7@gmail.com" --to "user@example.com" --subject "Update" --body "Done."
- Schedule meeting:
python3 execution/assistant_cli.py meeting-schedule --account "Daminathan7@gmail.com" --title "Weekly Sync" --start "2026-03-10T10:00:00-07:00" --end "2026-03-10T10:30:00-07:00" --attendee "a@example.com" --attendee "b@example.com"
- Write local doc:
python3 execution/assistant_cli.py doc-write --title "Project Brief" --body "Draft content" --local-output ".tmp/project_brief.md"
- Write Google Doc and share:
python3 execution/assistant_cli.py doc-write --account "Daminathan7@gmail.com" --title "Project Brief" --body-file ".tmp/brief.txt" --create-google-doc --share-with "owner@example.com"
- Add/list/complete tasks:
python3 execution/assistant_cli.py task-add --title "File taxes" --due "2026-04-01"python3 execution/assistant_cli.py task-list --status openpython3 execution/assistant_cli.py task-done --id "<task-id>"
- Build daily brief:
python3 execution/assistant_cli.py daily-brief --account "Daminathan7@gmail.com" --output ".tmp/daily_brief.md"
- Run recurring Office 180 automation:
python3 execution/office180_automation.py --account "Daminathan7@gmail.com" --output ".tmp/office180_report.md"
- Local MCP server lives at
mcp/assistant_mcp_server.py - Client config template:
mcp/mcp_servers.example.json - Skill routing guidance:
skills/assistant_skill_map.md