Agents
Build automations on top of your screen data — no server, no glue code. Drop a file in ~/.screenmind/agents/ and it runs on a schedule: Markdown for AI-powered analysis, Python for full control.
Markdown agents
Front-matter declares how it runs; the body is your prompt. Gemma runs it with the requested screen data injected automatically.
name: Standup Report
schedule: daily
description: Daily standup from my screen activity
enabled: true
output: local, obsidian
data: apps, timeline
---
Generate a standup with three sections — what I did,
what I'm doing today, and any blockers. Be concise.
Frontmatter
schedule—every 30m,every 1h,every 2h,every 6h, ordailyoutput—local,obsidian,webhook(comma-separate for several)enabled— whether it runs on scheduledata— which screen data to inject (Markdown agents only)model_requirement— minimum context tokens the agent needs (optional)
Data sections
timeline— recent activities with timestamps, apps, summariesapps— app usage counts + category breakdownurls— URLs visited (from browser address bars)meetings— meeting summaries and durationsmood— mood/sentiment from screen analysis
Python plugins
For state, filtering, or LLM calls, write a .py agent with a run(context) function and import from the SDK.
def run(context):
urls = get_urls_visited()
last = load_state("count", 0)
save_state("count", last + len(urls))
return ask_gemma(f"Summarize these URLs: {urls}")
SDK
- Data —
get_recent_activity,get_activities,get_urls_visited,get_meetings,get_app_usage,search,get_summary,get_stats - State —
save_state,load_state,clear_state(per-agent JSON, persists across runs) - AI —
ask_gemma(GPU-safe: waits for the GPU to be idle, never interrupts capture) - Actions —
notify,capture_now,write_file,get_output_dir
Outputs route to local, your obsidian vault, or a webhook — mix and match.
~/.screenmind/agents/ — open one and edit it live.