FlowDot Goals

Goals are persistent, long-running AI objectives that execute locally via the FlowDot CLI or daemon. Unlike one-shot workflows, goals can span days or weeks, accumulating results, scheduling recurring tasks, and notifying you when important things happen.

TL;DR - Quick Summary

FlowDot Goals are autonomous AI objectives for complex, ongoing tasks:

  • Create: flowdot goals create "Your objective"
  • Link Knowledge: flowdot goals resource:add <hash> --category "Category"
  • Add Tasks: flowdot goals task:add <hash> "Task" -t research
  • Run: flowdot goals run <hash> or scheduled via daemon
  • 7 Task Types: research, code, draft, notify, recipe, execute, loop
  • RAG Integration: Link knowledge base categories for context
  • Notifications: Telegram, Discord, and more via COMMS
  • Local Storage: Results stored in ~/.flowdot/goals/

Architecture

Goals follow a strict local-first architecture. All autonomous execution happens on your machine, not on FlowDot servers.

Component Location Purpose
Goal Storage FlowDot Hub (server) CRUD, state sync, scheduling metadata
Task Execution Your Machine (CLI/daemon) Web search, LLM calls, file access
Result Storage Your Machine (~/.flowdot/) Execution logs, task results, drafts
Notifications FlowDot Hub (COMMS) Telegram, Discord delivery
RAG Queries FlowDot Hub (API) Knowledge base context retrieval

Why Local Execution?

  • Cost control: Server resources are expensive; your machine is free
  • File access: Full access to your local filesystem
  • Privacy: Sensitive data never leaves your machine
  • Long-running: No server timeout limits

Task Handlers

Goals execute through specialized task handlers. Each handler performs a specific type of work:

Research Handler

Performs web searches and queries RAG for context. Stores findings locally.

flowdot goals task:add <hash> "Search for architecture jobs in Texas" -t research

# What it does:
# 1. Queries linked RAG categories for user context
# 2. Performs web search using configured providers
# 3. Stores results in ~/.flowdot/goals/<hash>/results/

Code Handler

Generates content using LLM with RAG context. Creates resumes, cover letters, reports.

flowdot goals task:add <hash> "Draft tailored resume for top positions" -t code

# What it does:
# 1. Queries RAG for user's skills and accomplishments
# 2. Uses LLM to generate content
# 3. Saves draft to ~/.flowdot/goals/<hash>/results/draft_*.md

Draft Handler

Alias for the code handler. Use for document generation tasks.

Notify Handler

Sends notifications via COMMS channels (Telegram, Discord, etc.).

flowdot goals task:add <hash> "Send Telegram notification with findings" -t notify

# What it does:
# 1. Formats message with task description and results
# 2. Sends via configured COMMS channels
# 3. Truncates to 2000 chars for API limits

Recipe Handler

Invokes FlowDot recipes by alias or hash. Passes goal context as inputs.

flowdot goals task:add <hash> "Run job-matcher recipe" -t recipe

# What it does:
# 1. Parses recipe alias from task title
# 2. Builds inputs from goal context (request, goal_name, previous_results)
# 3. Executes recipe via fire-and-forget pattern
# 4. Stores outputs when complete

Execute Handler

Runs shell commands with security checks. Requires code-execute permission.

flowdot goals task:add <hash> "Run npm test" -t execute

# What it does:
# 1. Checks code-execute permission is allowed
# 2. Parses command from task description
# 3. Applies security patterns (blocks rm -rf, fork bombs, etc.)
# 4. 60 second timeout, runs in user's home directory

Loop Handler

Creates recurring daemon loops. Useful for periodic monitoring tasks.

flowdot goals task:add <hash> "Check for new listings every 6 hours" -t loop

# What it does:
# 1. Parses interval from task (e.g., "every 6h", "1 hour")
# 2. Creates daemon loop via IPC with auto-start
# 3. Default 3-day expiration, pauses on error

RAG Integration

Goals can link to your knowledge base categories for personalized context during execution.

Link a Knowledge Category

# Link a knowledge base category to your goal
flowdot goals resource:add <hash> --category "Developer Accomplishments"

# The category provides context for:
# - Research tasks (user's background)
# - Code tasks (skills to highlight)
# - Recipe tasks (personalized inputs)

How RAG is Used

  • Research: Queries RAG to understand user's skills when evaluating search results
  • Code: Retrieves accomplishments and experience for content generation
  • Recipe: Passes RAG context as recipe inputs for personalization

Notifications

Goals integrate with FlowDot COMMS to send notifications when important events occur.

Supported Channels

  • Telegram: Direct messages to your Telegram account
  • Discord: Messages to Discord channels or DMs
  • Email: Email notifications (coming soon)

Automatic Notifications

Recipe tasks automatically send notifications when they complete:

# When a recipe task completes:
# 1. Recipe executes in background (fire-and-forget)
# 2. On completion, notification is sent automatically
# 3. Message includes goal name and recipe results
# 4. Truncated to 1800 chars for Hub API limit

Scheduled Execution

Goals can run on a schedule using the FlowDot daemon's GoalScheduler.

How Scheduling Works

  • Hub stores schedule: Cron expression or interval in goal metadata
  • Daemon polls: GoalScheduler checks for due goals (default: every 60s)
  • Concurrent limits: Max 3 goals execute simultaneously by default
  • Auto-update: markCompleted() calculates next run time

Enable Scheduled Execution

# Start daemon with goal scheduler enabled
flowdot daemon start --enable-goal-scheduler

# Or configure in ~/.flowdot/config.json:
{
  "daemon": {
    "enableGoalScheduler": true,
    "goalPollInterval": 60000,
    "maxConcurrentGoals": 3
  }
}

Local Storage

All goal execution results are stored locally for review and debugging.

# Storage structure ~/.flowdot/ ├── goals/ │ └── <goal-hash>/ │ ├── state.json # Current goal state snapshot │ ├── runs/ │ │ └── 2026-04-01_09-00/ │ │ ├── run.json # Run metadata │ │ ├── tasks/ │ │ │ ├── 14.json # Task 14 result │ │ │ └── 15.json # Task 15 result │ │ └── logs/ │ │ └── execution.log │ └── results/ │ ├── draft_23_*.md # Generated content │ └── jobs_found.json # Accumulated results

View Results

# View execution results for a goal
flowdot goals results <hash>

# View execution history
flowdot goals runs <hash>

CLI Commands

Complete reference for goal management commands.

Goal Management

# Create a new goal
flowdot goals create "Find me a senior data engineer position in Austin"

# List all goals
flowdot goals list

# Show goal details
flowdot goals show <hash>

# Update a goal
flowdot goals update <hash> --priority high

# Delete a goal
flowdot goals delete <hash>

Task Management

# Add a task
flowdot goals task:add <hash> "Task description" -t research

# Complete a task manually
flowdot goals task:complete <hash> <task-id>

# Skip a task
flowdot goals task:skip <hash> <task-id>

Resource Management

# Link a knowledge category
flowdot goals resource:add <hash> --category "Developer Accomplishments"

# Attach a document
flowdot goals resource:add <hash> --doc <doc-id>

# List resources
flowdot goals resource:list <hash>

Execution

# Run a goal (execute pending tasks)
flowdot goals run <hash>

# Generate tasks using AI
flowdot goals generate <hash>

# View results
flowdot goals results <hash>

Permission System

Goals support fine-grained permission control for security.

Approval Modes

  • full: All actions require approval
  • category: Actions grouped by category
  • trusted: Auto-approve all actions

Available Actions

Action Description
web-searchSearch the internet
workflowsExecute FlowDot workflows
commsSend notifications
file-readRead local files
file-writeWrite local files
api-callsMake API requests
code-executeRun shell commands
ragQuery knowledge base

Example Goals

Click through the tabs below to see different real-world goal examples with their subtasks and recipe invocations.

Grow my website by 10 thousand users

Marketing

Strategic growth planning with automated content creation, SEO optimization, and progress tracking.

Generated Subtasks
research Analyze current traffic sources and user demographics
research Research high-performing keywords in my niche
recipe Run "seo-analyzer" to identify content gaps flowdot recipes run seo-analyzer --input '{"domain": "mywebsite.com", "competitors": ["comp1.com", "comp2.com"]}'
recipe Run "content-planner" to generate blog post schedule flowdot recipes run content-planner --input '{"keywords": "{{research.keywords}}", "frequency": "weekly"}'
draft Generate SEO-optimized blog posts
loop Track progress weekly and adjust strategy
notify Send weekly growth report via Discord
# Create the goal with measurable target
flowdot goals create "Grow my website by 10 thousand users"

# Link analytics and content strategy docs
flowdot goals resource:add <hash> --category "Marketing Strategy"

# Schedule weekly execution
flowdot goals schedule <hash> --cron "0 9 * * 1"

Monitor competitor pricing and alert me to changes

Business Intel

Continuous competitor monitoring with automated price tracking and instant change notifications.

Generated Subtasks
execute Scrape competitor pricing pages
recipe Run "price-extractor" to parse pricing data flowdot recipes run price-extractor --input '{"urls": ["comp1.com/pricing", "comp2.com/pricing"]}'
code Compare current prices with stored historical data
recipe Run "price-diff-analyzer" to identify significant changes flowdot recipes run price-diff-analyzer --input '{"current": "{{prices.current}}", "previous": "{{prices.previous}}", "threshold": 5}'
notify Alert immediately if price change exceeds 5%
loop Repeat check every 6 hours
# Create monitoring goal
flowdot goals create "Monitor competitor pricing and alert me to changes"

# Add competitor list to knowledge base
flowdot goals resource:add <hash> --category "Competitor Intel"

# Set up frequent monitoring
flowdot goals schedule <hash> --cron "0 */6 * * *"

Research and summarize industry news every morning

Daily Briefing

Automated morning briefings with curated industry news, summaries, and actionable insights.

Generated Subtasks
research Search news sources for industry-relevant articles
research Query RAG for my areas of interest and focus topics
recipe Run "news-aggregator" to collect and dedupe articles flowdot recipes run news-aggregator --input '{"sources": ["techcrunch", "reuters", "industry-blogs"], "topics": "{{rag.interests}}"}'
recipe Run "article-summarizer" for each top article flowdot recipes run article-summarizer --input '{"articles": "{{news.top10}}", "style": "executive-brief"}'
draft Compile daily briefing document
notify Send briefing to Telegram at 7 AM
# Create daily briefing goal
flowdot goals create "Research and summarize industry news every morning"

# Link your interests and focus areas
flowdot goals resource:add <hash> --category "Industry Focus"

# Schedule for every morning
flowdot goals schedule <hash> --cron "0 7 * * *"

Find and qualify sales leads in the SaaS industry

Sales

Automated lead generation with qualification scoring based on your ideal customer profile.

Generated Subtasks
research Search for SaaS companies matching target criteria
research Query RAG for ideal customer profile and qualification criteria
recipe Run "company-enricher" to gather company details flowdot recipes run company-enricher --input '{"companies": "{{research.companies}}", "fields": ["size", "funding", "tech-stack"]}'
recipe Run "lead-scorer" to qualify each prospect flowdot recipes run lead-scorer --input '{"leads": "{{enriched.companies}}", "icp": "{{rag.ideal_customer}}"}'
draft Generate personalized outreach templates for top leads
code Export qualified leads to CRM-compatible CSV
notify Send lead report with top 10 prospects via Discord
# Create lead generation goal
flowdot goals create "Find and qualify sales leads in the SaaS industry"

# Link your ICP and sales playbook
flowdot goals resource:add <hash> --category "Sales Playbook"

# Run weekly for fresh leads
flowdot goals schedule <hash> --cron "0 8 * * 1"

Track my investment portfolio and send weekly summaries

Finance

Automated portfolio monitoring with performance analysis, news alerts, and weekly summary reports.

Generated Subtasks
research Query RAG for current portfolio holdings
recipe Run "stock-fetcher" to get current prices flowdot recipes run stock-fetcher --input '{"symbols": "{{rag.holdings}}", "include_news": true}'
recipe Run "portfolio-analyzer" to calculate performance flowdot recipes run portfolio-analyzer --input '{"holdings": "{{rag.holdings}}", "prices": "{{stocks.current}}", "period": "weekly"}'
research Search for news affecting portfolio holdings
draft Compile weekly performance summary with insights
notify Send weekly report every Sunday evening
loop Monitor for significant price movements daily
# Create portfolio tracking goal
flowdot goals create "Track my investment portfolio and send weekly summaries"

# Link your portfolio data
flowdot goals resource:add <hash> --category "Investment Portfolio"

# Schedule weekly summary
flowdot goals schedule <hash> --cron "0 18 * * 0"