Scheduled Tasks

Fenno can run AI tasks on a schedule. This is useful for daily summaries, recurring code checks, knowledge base maintenance, and other routine workflows.

You can create scheduled tasks in two ways:

  • Portal: create and manage tasks manually in the console
  • In-repo config: declare schedule: tasks in .fennoai.yml on the default branch

Good Use Cases

  • Generate a daily summary of issues or PRs
  • Check TODOs, failing tests, or stale dependencies on a schedule
  • Maintain docs or internal knowledge bases regularly
  • Run recurring analysis without waiting for a manual comment

Option 1: Create Tasks in the Portal

On the Portal Scheduled Tasks page, you can create a task directly. The current form exposes these fields:

  • Task Name: unique task name within the same repository
  • Repository: target repository
  • Branch: branch to run against
  • Agent: AI provider
  • Model: optional, you can keep auto
  • Cron Expression: 5-field cron expression
  • Prompt: instructions for the AI agent

Example:

Task Name: Daily review summary
Repository: acme/platform
Branch: main
Agent: claude
Model: auto
Cron Expression: 0 9 * * *
Prompt: Summarize the last 24 hours of merged PRs and open issues, then draft a short engineering update.

After creation, the Portal lets you:

  • view tasks
  • trigger a run immediately
  • inspect run history
  • open the latest log
  • edit, pause, or delete manually created tasks

Option 2: Declare Tasks in .fennoai.yml

If you want automation to live with the repository, add a .fennoai.yml file on the default branch:

default_ai_provider: claude

schedule:
  - name: Daily issue triage
    cron: "0 9 * * *"
    prompt: "Review newly opened issues in the last 24 hours, group them by theme, and draft a triage summary."

  - name: Weekly dependency check
    cron: "0 10 * * 1"
    branch: main
    agent: codex
    prompt: "Check dependency updates merged in the last 7 days and summarize any follow-up work needed."

Each schedule item supports:

  • name: required, unique within the repository
  • cron: required 5-field cron expression
  • prompt: required task prompt
  • agent: optional, falls back to default_ai_provider
  • branch: optional, falls back to the repository default branch

Supported Config Paths

.fennoai.yml is the recommended filename. Fenno also supports these legacy paths:

  • .xgopilot.yml
  • .codeagent.yml
  • .github/fennoai.yml
  • .github/xgopilot.yml
  • .github/codeagent.yml
  • .fenno/fennoai.yml
  • .codeagent/xgopilot.yml
  • .codeagent/codeagent.yml

Fenno reads the first file it finds according to path priority.

Cron Rules

  • Uses a standard 5-field cron format: minute hour day month weekday
  • Minimum interval is 1 hour
  • Second-level cron expressions are not supported

Common examples:

0 9 * * *    Every day at 09:00
0 */6 * * *  Every 6 hours
0 10 * * 1   Every Monday at 10:00
0 9 1 * *    The 1st day of each month at 09:00

Sync and Activation Behavior

Tasks created in the Portal take effect as soon as you save them.

In-repo schedule: tasks work differently:

  • Fenno reloads the repository config after a push to the default branch
  • after adding or updating schedule, you need to commit that change to the default branch
  • removing a schedule entry removes the corresponding in-repo task

If you only change the config on a feature branch, production scheduled tasks will not update yet.

Portal vs In-Repo Ownership

Tasks created from .fennoai.yml can be viewed and triggered from the Portal, but they cannot be:

  • edited
  • paused or resumed
  • deleted

Their source of truth is always the repository config file.

Limits and Notes

  • up to 20 schedule tasks per repository
  • task names can be at most 200 characters
  • agent must be a supported AI provider
  • keep .fennoai.yml limited to model and scheduling config, not API keys or other secrets

FAQ

Why did my .fennoai.yml change not take effect immediately?

Because schedule: tasks are synchronized after a push to the default branch. Make sure the config change has landed on the default branch and that a new push event has happened.

Why can't I edit some tasks in the Portal?

Those tasks come from .fennoai.yml. The Portal only provides visibility and manual triggering for them.

Which approach should I use?

  • Use the Portal when you want faster setup and centralized task management
  • Use .fennoai.yml when you want automation rules versioned with the repository

Support

Need help or a custom plan?

Deployment guidance, enterprise support, or a tailored model setup with Fenno AI Gateway.

contact@fenno.ai400-808-9176 ext. 1
Contact Us