Skip to main content

Repo-native task workflow tool for humans and AI agents that stores state in .tasks/.

Project description

dot-tasks logo

Unit Tests Publish PyPI version MIT License

Quick StartInstallAI Agent IntegrationExample ProjectDeepWiki

dot-tasks is a simple CLI for managing project-level tasks in a local .tasks/ directory, using human- and agent-readable files.

It started as a personal workflow tool: keep task specs in files, let agents work from those specs, and keep progress updates in the repo instead of chat history. It is shared here in case the same approach is useful to others.

dot-tasks CLI demo

Quick Start

Quick start commands:

# Initialize .tasks/ dir in the current project
dot-tasks init
# Create a new todo task with an initial summary.
dot-tasks create rename-variables-for-vibes --summary "Refactor variable names for maximum vibes"
# Move the task from todo/ to doing/ and create its plan.md.
dot-tasks start rename-variables-for-vibes
# Append a progress note while work is in progress.
dot-tasks log-activity rename-variables-for-vibes --note "Replaced cryptic names with vibes-based naming"
# Mark the task complete and move it to done/.
dot-tasks complete rename-variables-for-vibes

Task directory layout

.tasks/
  todo/
  doing/
  done/
  trash/

Each task lives in .tasks/<status-bucket>/<created-date>-<task_name>/ and contains:

  • task.md (canonical metadata frontmatter + task body)
  • activity.md (append-only audit log)
  • plan.md (created when the task is started)

Typical workflow:

Step What happens Command(s) Files touched
Make note of new to-do Write down the task spec. Often I have an agent draft a spec from a rough note. dot-tasks create Creates task dir .tasks/todo/<created-date>-<task_name>/ with task.md, activity.md
Choose task to work on Scan what is in todo/doing and pick the next task to start. dot-tasks list read-only inspection of .tasks/
Start active work Move the task to active status when implementation begins. dot-tasks start Move task from .tasks/todo/ to .tasks/doing/; plan.md created
Work loop Log notable progress updates so humans and agents share context. dot-tasks log-activity activity.md
Finish and archive state Mark done when acceptance criteria are met, preserving full history in files. dot-tasks complete task directory moves to .tasks/done/

Installation

Install via pip (PyPI)

pip install dot-tasks

Quick check:

dot-tasks --help

Install Latest from GitHub

Install the latest from GitHub:

pip install "git+https://github.com/Awni00/dot-tasks.git"

Development Install (with uv)

git clone https://github.com/Awni00/dot-tasks.git
cd dot-tasks
uv sync --dev
uv run dot-tasks --help

Editable install:

uv pip install -e ".[dev]"

Commands

Command Purpose Typical usage
init Create .tasks/ and write/update managed config settings; can also append workflow guidance section AGENTS.md and install the skill via npx skills. dot-tasks init
install-skill Install the canonical dot-tasks skill via npx skills. dot-tasks install-skill [--yes]
add-agents-snippet Add or update the canonical dot-tasks section in AGENTS policy markdown. dot-tasks add-agents-snippet [--agents-file <path>] [--yes]
create Add a new task to todo/. `dot-tasks create <task_name> [--spec-readiness unspecified
start Move a task to doing/ and create plan.md. dot-tasks start <task_name>
complete Move a task to done/. dot-tasks complete <task_name>
list List tasks by status and optional tag filters (rich/plain/JSON depending on context). `dot-tasks list [todo
tags Show task counts by tag with optional status filter (rich/plain/JSON depending on context). `dot-tasks tags [todo
view Show full details for one task, including clickable file links for task.md, activity.md, plan.md, and any extra files. dot-tasks view <task_name> [--json]
graph Visualize task dependencies as a DAG in terminal output (tree or layers modes). `dot-tasks graph [--mode tree
update Update metadata, dependencies, tags, owner, effort, priority, or spec readiness. dot-tasks update <task_name> ...
log-activity Append a manual activity note with optional actor override. dot-tasks log-activity <task_name> --note "..." [--actor agent]
rename Rename a task. dot-tasks rename <task_name> <new_task_name>
delete Move a task to trash/, or delete permanently with --hard. dot-tasks delete <task_name> [--hard]

Interactive create and interactive update use a single tag selector flow with an optional + add new tag(s) path.

Status filter supports todo|doing style multi-select and all. Default is todo|doing.

Tag examples:

dot-tasks list --tag bug
dot-tasks list todo|doing --tag backend --tag api --all-tags
dot-tasks list all
dot-tasks tags
dot-tasks tags todo --sort name

AI Agent Integration

dot-tasks is designed so humans and agents can work from the same file-based task state in .tasks/ instead of relying on chat context.

Typical agent workflow:

  1. Capture or refine a task spec with dot-tasks create.
  2. If asked what to work on, check dot-tasks list (defaults to todo|doing) and propose the top few options with a short rationale.
  3. Move selected work into active state with dot-tasks start.
  4. Log meaningful progress with dot-tasks log-activity --note ... as work evolves.
  5. Close the loop with dot-tasks complete when acceptance criteria are met.

You can set up agent integration pieces either during dot-tasks init or with standalone commands:

  • During dot-tasks init (interactive flow), dot-tasks can optionally append the AGENTS section and install the skill.
  • Standalone commands:
dot-tasks install-skill
dot-tasks install-skill --yes
dot-tasks add-agents-snippet
dot-tasks add-agents-snippet --agents-file TEAM_AGENTS.md --yes

Example Project

For a full demo of the workflow, see examples/basic-demo/ and the walkthrough in examples/basic-demo/README.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dot_tasks-0.1.7.tar.gz (63.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dot_tasks-0.1.7-py3-none-any.whl (39.8 kB view details)

Uploaded Python 3

File details

Details for the file dot_tasks-0.1.7.tar.gz.

File metadata

  • Download URL: dot_tasks-0.1.7.tar.gz
  • Upload date:
  • Size: 63.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dot_tasks-0.1.7.tar.gz
Algorithm Hash digest
SHA256 07c8d2c742e3f23f1aa4ca865d9f4cb5f9dd4c3269eff46a59b4dad391521471
MD5 addd10a55e886561b6d8c229aa8a1fd3
BLAKE2b-256 82f15707c7860ebef73dda9fe4859e64f997553e189c24c0b2f95b715320cfb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for dot_tasks-0.1.7.tar.gz:

Publisher: publish.yml on Awni00/dot-tasks

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dot_tasks-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: dot_tasks-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 39.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dot_tasks-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 20b622e3400bbb38c87c5bdfe4cc9ba4bd9c6a32b8d14b389d9ee9d705e22efe
MD5 1faacd0c1d8361f4989d3c38e2340175
BLAKE2b-256 7e6e69665b9b272c4b66e2b271e0d67780cf1813df38f61cc27661fbb4a221f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for dot_tasks-0.1.7-py3-none-any.whl:

Publisher: publish.yml on Awni00/dot-tasks

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page