A Rust application to sync data with Beeminder.
- Adjust your username and specify a way to access your API key in the config.
- Uncomment and adjust one or more of the synchronization use cases in
config.toml
. - Run
cargo run
(usesconfig.toml
) orcargo run -- your_config.toml
.
Syncs your completed Focusmate sessions to Beeminder:
- Fetches your completed Focusmate sessions
- Creates a datapoint for each session with details like time, partner, and duration
- Supports logging to additional goals based on tags in session comment
- On first run, syncs all historical sessions if no existing datapoints are found
Tracks YouTube videos you've watched using ActivityWatch data:
- Retrieves window events from ActivityWatch
- Identifies YouTube videos you've watched longer than a minimum duration
- Creates a Beeminder datapoint for each unique video
- Helps track and be mindful of your YouTube consumption
Monitors browser window usage and checks for specific activity:
- Retrieves browser window events from ActivityWatch
- Uses OpenAI's GPT to analyze window titles for specific usage
- Creates datapoints on your Beeminder goal (clean=1, dirty=0)
- Uses a customizable prompt template for the AI analysis
Tracks your Fatebook questions in Beeminder:
- Fetches questions from your Fatebook account
- Creates a Beeminder datapoint for each new question
- Uses the question title as the datapoint comment
The config.toml
supports two methods for specifying API keys:
# Environment variable
service_key = { env = "SERVICE_API_KEY" }
# Command output
service_key = { cmd = "cat ~/.service_key" }
MIT License