Skip to content

gtech/nudging

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nudging

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.

Features

  • 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

Quick Start

1. Install Python Dependencies

setup.bat

Or manually:

pip install -r requirements.txt

2. Configure

Edit 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"

3. Initialize Vault Structure

python collect.py --init

4. Run Collection

python collect.py

Setup Details

Todoist Integration

  1. Go to Todoist Developer Settings
  2. Copy your API token
  3. Add to config.yaml:
    todoist:
      api_token: "your-token-here"

Google Calendar Integration

  1. Go to Google Cloud Console
  2. Create a new project
  3. Enable "Google Calendar API"
  4. Create OAuth 2.0 credentials (Desktop application)
  5. Download credentials and save as credentials.json in this folder
  6. Set your timezone in config.yaml under google_calendar.timezone (e.g., "Europe/Lisbon" for UTC+1)
  7. Run python collect.py - it will open a browser for authentication
  8. After authenticating, a token.json will 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"

Browser Tab Collection (Brave)

Tabs require Brave to be started with remote debugging enabled:

Option 1: Use the provided script

start_brave_debug.bat

Option 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.

Scheduled Collection

Run setup_scheduled_task.bat as Administrator to create an hourly scheduled task.

Or manually via Task Scheduler:

  1. Open Task Scheduler (taskschd.msc)
  2. Create Basic Task
  3. Set trigger (e.g., hourly)
  4. Action: Start a program
  5. Program: python
  6. Arguments: "C:\path\to\collect.py"

Vault Structure

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

Usage Tips

With Obsidian Copilot

The scratchpad file is designed to work with AI assistants in Obsidian:

  1. Open _collected_data/scratchpad.md
  2. Write questions or context in the designated sections
  3. The copilot can reference your data files to help with planning

Daily Workflow

  1. Open Master Plan.md each morning
  2. Check "Today at a Glance" in the Data Hub
  3. Use the scratchpad to discuss priorities with your copilot
  4. Update your Master Plan with daily priorities

Command Line Options

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 file

Future Integrations

The following are planned but not yet implemented:

  • Signal messages
  • Telegram messages
  • WhatsApp messages
  • Fastmail emails

Troubleshooting

"Cannot connect to Brave"

  • Make sure Brave is started with --remote-debugging-port=9222
  • Use start_brave_debug.bat or create a shortcut

"Todoist API token not configured"

"Google Calendar credentials not found"

  • Download OAuth credentials from Google Cloud Console
  • Save as credentials.json in the collector folder

"Git repository not found"

  • Use full Windows paths in config.yaml
  • Use double backslashes: C:\\Users\\...

About

Have your friendly AI give you nudges about things in your life you might be missing.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors