Local tasks file (aidev.tasks.json)
aidev.tasks.json is an outbound queue — a JSON file at the root of your project that holds task templates aidev will publish to your configured provider. The local provider stores tasks on disk; aidev.tasks.json pushes tasks to a remote provider.
Typical uses:
- Recurring tasks — with a
cronexpression, an entry publishes on every matching tick - Staged work — queue a batch of tasks in a commit
- AI-authored tasks — another agent or script can append entries
The file is added to .gitignore by aidev init.
File format
ts
interface LocalTask {
id: string;
title: string;
description: string;
type: 'code' | 'non-code';
priority?: number; // 1=urgent … 4=low
assignee?: string;
dueDate?: string; // ISO date
tags?: string[];
listId?: string;
cron?: string; // 5-field cron
lastPushedAt?: number; // epoch ms (managed by aidev)
}Example:
json
[
{
"id": "7f3a9c2d-5b1e-4a6f-9d8c-1e2f3a4b5c6d",
"title": "Daily standup notes",
"description": "Post yesterday / today / blockers to the team channel.",
"type": "non-code",
"priority": 3,
"tags": ["standup"],
"cron": "0 9 * * 1-5"
},
{
"id": "2b8e1f7a-4c9d-4e5a-8b6c-9f1e2d3c4b5a",
"title": "Upgrade dependencies",
"description": "Run `npm outdated`, bump minor/patch versions, verify tests pass.",
"type": "code",
"priority": 2,
"tags": ["maintenance"]
}
]Lifecycle
- Every
aidev runbegins by readingaidev.tasks.jsonand publishing each entry. - One-shot entries (no
cron) are removed after a successful push. - Cron entries remain;
lastPushedAttracks the last successful push. - Failures are logged and the entry is kept for retry.
Routing
type: 'code'→ published with the code tag to the primary provider.type: 'non-code'→ published withNON_CODE_TAGto the non-code provider.- Per-task
tagsare appended to the resolved default tag. - Per-task
listIdoverrides the provider-default list / project.
Managing entries
bash
aidev tasks add
aidev tasks ls
aidev tasks update [id]
aidev tasks remove [id]
aidev tasks pushaidev tasks push and aidev run tasks only process aidev.tasks.json and exit without invoking the AI.