Automatically collects data from your digital life and syncs it to your Obsidian vault for easy access and planning.
Listen, honestly, this repo is a mess right now. Consider it alpha software with some assembly required and a local coding agent necessary for anything to work.
- Git Repositories: Track status, branches, uncommitted changes
- Browser Tabs & Bookmarks: Capture open Brave tabs and all bookmarks
- Todoist Tasks: Sync active tasks with priorities and due dates
- Google Calendar: View upcoming events and today's schedule
- Master Plan: Central planning document with links to all data
- Copilot Scratchpad: Working memory for your Obsidian AI assistant
setup.batOr manually:
pip install -r requirements.txtEdit config.yaml:
obsidian_vault: "C:\\Users\\YourName\\Documents\\Obsidian Vault"
git_repos:
- "C:\\Users\\YourName\\Projects\\my-project"
- "C:\\Users\\YourName\\Projects\\another-project"
todoist:
api_token: "your-api-token-here"python collect.py --initpython collect.py- Go to Todoist Developer Settings
- Copy your API token
- Add to
config.yaml:todoist: api_token: "your-token-here"
- Go to Google Cloud Console
- Create a new project
- Enable "Google Calendar API"
- Create OAuth 2.0 credentials (Desktop application)
- Download credentials and save as
credentials.jsonin this folder - Set your timezone in
config.yamlundergoogle_calendar.timezone(e.g., "Europe/Lisbon" for UTC+1) - Run
python collect.py- it will open a browser for authentication - After authenticating, a
token.jsonwill be created automatically
Adding calendar events:
Use the add_event.py script to create events (uses your configured timezone):
python add_event.py "Event Name"Tabs require Brave to be started with remote debugging enabled:
Option 1: Use the provided script
start_brave_debug.batOption 2: Create a shortcut with this target:
"C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe" --remote-debugging-port=9222
Note: Bookmarks are collected automatically without this setup.
Run setup_scheduled_task.bat as Administrator to create an hourly scheduled task.
Or manually via Task Scheduler:
- Open Task Scheduler (
taskschd.msc) - Create Basic Task
- Set trigger (e.g., hourly)
- Action: Start a program
- Program:
python - Arguments:
"C:\path\to\collect.py"
After running, your vault will contain:
Obsidian Vault/
├── Master Plan.md # Your central planning document
└── _collected_data/
├── index.md # Data hub with links to all sources
├── scratchpad.md # Copilot working memory
├── git.md # Git repository status
├── browser.md # Tabs and bookmarks
├── todoist.md # Active tasks
├── calendar.md # Upcoming events
└── data.json # Raw data for programmatic access
The scratchpad file is designed to work with AI assistants in Obsidian:
- Open
_collected_data/scratchpad.md - Write questions or context in the designated sections
- The copilot can reference your data files to help with planning
- Open
Master Plan.mdeach morning - Check "Today at a Glance" in the Data Hub
- Use the scratchpad to discuss priorities with your copilot
- Update your Master Plan with daily priorities
python collect.py # Run collection
python collect.py --init # Initialize vault structure
python collect.py --dry-run # Collect without writing files
python collect.py -c other.yaml # Use different config fileThe following are planned but not yet implemented:
- Signal messages
- Telegram messages
- WhatsApp messages
- Fastmail emails
- Make sure Brave is started with
--remote-debugging-port=9222 - Use
start_brave_debug.bator create a shortcut
- Get your token from Todoist Developer Settings
- Add it to
config.yaml
- Download OAuth credentials from Google Cloud Console
- Save as
credentials.jsonin the collector folder
- Use full Windows paths in
config.yaml - Use double backslashes:
C:\\Users\\...