Skip to main content

taskflow-agent

Lightweight project and task manager with MCP tools for Claude Code.

SQLite backend, 23+ MCP tools, web UI with embedded AI chat, and a FastAPI REST API. Built as a self-hosted Asana replacement optimized for AI-assisted workflows.

Features

  • 23+ MCP tools — projects, tasks, sections, goals, daily focus, search, views, repo integration
  • Web UI — dark-theme SPA with project boards, task details, inline editing
  • AI chat — embedded Claude chat with workspace awareness, tool access, and persistent memory
  • Daily focus — Today view with goals, focus list, and AI-assisted daily planning
  • Goals — timeframe-scoped goals (day/week/month/quarter) that guide daily prioritization
  • Agent memory — persistent context across chat sessions
  • Repo integration — read-only git status, recent commits, and TODOs across connected repos
  • FTS search — full-text search across task names and notes
  • Asana import — bulk import from Asana CSV exports

Quick Start

pip install taskflow-agent[web]

# Start the MCP server (for Claude Code)
taskflow

# Start the web UI (port 8787)
taskflow-web

Setup

1. Environment

Create a .env file in your working directory:

# Auth — pick one mode
ANTHROPIC_AUTH_MODE=api_key          # "oauth" or "api_key"
ANTHROPIC_API_KEY=sk-ant-...         # if using api_key mode
ANTHROPIC_AUTH_TOKEN=...             # if using oauth mode

# Optional
ANTHROPIC_MODEL=claude-sonnet-4-6   # default model for chat
LOG_LEVEL=INFO                       # DEBUG, INFO, WARNING, ERROR

The MCP server (task management tools) works without auth. Auth is only needed for the web UI's embedded AI chat.

2. Register MCP Server

Add to ~/.claude.json:

{
  "mcpServers": {
    "taskflow": {
      "type": "stdio",
      "command": "path/to/venv/bin/python",
      "args": ["-m", "src.server"],
      "cwd": "path/to/taskflow"
    }
  }
}

3. Configure Repos (optional)

Create data/repos.json to connect git repos for status tracking:

{
  "my-project": "/absolute/path/to/my-project",
  "another-repo": "/absolute/path/to/another-repo"
}

tf_repo_list and tf_repo_status use this to show branch, state, recent commits, and TODOs. Read-only.

4. Run

# Web UI
taskflow-web                # port 8787
# or with make (if developing from source):
make serve                  # foreground
make dev                    # with auto-reload

# MCP server only
taskflow

Open http://localhost:8787.

MCP Tools

Projects

Tool Description
tf_list_projects List active projects with task counts
tf_get_project Get project with sections and tasks
tf_create_project Create a new project
tf_update_project Update project fields
tf_archive_project Archive a project

Sections

Tool Description
tf_create_section Add a section to a project
tf_update_section Update section fields
tf_move_section Reorder a section
tf_delete_section Delete a section (tasks moved to Ungrouped)

Tasks

Tool Description
tf_list_tasks List tasks with filters
tf_get_task Get task details with subtasks and tags
tf_create_task Create a task
tf_update_task Update task fields
tf_complete_task Mark task completed
tf_reopen_task Reopen a completed task
tf_move_task Move task between projects/sections
tf_delete_task Delete a task

Goals & Daily Focus

Tool Description
tf_create_goal Create a goal (day/week/month/quarter)
tf_update_goal Update goal fields
tf_goal_list List active goals
tf_goal_complete Mark a goal complete
tf_goal_reopen Reopen a goal
tf_goal_remove Remove a goal
tf_today Show today's focus list and goals
tf_focus Pin a task to today's focus
tf_unfocus Remove a task from today's focus
tf_move_focus Reorder focus list

Search & Views

Tool Description
tf_search Full-text search across tasks
tf_due_soon Tasks due within N days
tf_overdue All overdue tasks
tf_active Top tasks from each active project
tf_backlog Open tasks in the general backlog

Repo Integration

Tool Description
tf_repo_list List connected git repos
tf_repo_status Git status, commits, and TODOs for a repo

Service Lifecycle

Tool Description
tf_serve_status Check if web server is running
tf_serve_start Start web server in background
tf_serve_stop Stop web server

Embedded Chat

The web UI includes an AI chat panel (toggle with C) powered by ai-agent-gateway.

What the chat agent can do

  • All tf_* tools — manage projects, tasks, goals, focus
  • read_file / list_dir / run_shell — filesystem access
  • notes_search / notes_read — Apple Notes integration
  • tf_memory_read / tf_memory_update — persistent memory across sessions (stored in data/agent_memory.md, 12 KB max)
  • load_tools — dynamically load any MCP server from ~/.claude.json on demand

Deferred MCP Servers

The chat agent can load any stdio-type MCP server registered in your ~/.claude.json on demand. The agent calls load_tools("server-name") and gains access to that server's tools for the session.

Database

SQLite with WAL mode. Created automatically on first run.

Tables: projects, sections, tasks, tags, task_tags, tasks_fts (FTS5), goals, daily_focus, chat_messages.

Asana Import

# Via MCP tool:
tf_import_asana directory=/path/to/Asana-Export/

Import is additive — re-importing creates duplicates. Delete taskflow.db first for a clean re-import.

License

PolyForm Noncommercial 1.0.0 — free for personal and noncommercial use.

Metadata

Release files for taskflow-agent 0.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for taskflow-agent 0.6.1
File Size Uploaded Provenance
taskflow_agent-0.6.1.tar.gz 177.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for taskflow-agent 0.6.1
File Interpreter ABI Platform
taskflow_agent-0.6.1-py3-none-any.whl Python 3 none any Details

Total release size: 294.3 kB

Release files / taskflow_agent-0.6.1.tar.gz

Download URL taskflow_agent-0.6.1.tar.gz
Size 177.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a3c45fe784770fa8ca4700d05cafa7b0a25a62206c59f9557410094cb0aa3db9
BLAKE2b-256 checksum
How to use checksums
e1968d4bce87c3b226b46770a27899f3ac27b7f6c6d33efd9ed121af9aa6c378
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.2

Release files / taskflow_agent-0.6.1-py3-none-any.whl

Download URL taskflow_agent-0.6.1-py3-none-any.whl
Size 117.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a0965abd5d8e663fd9f089016e456f08e4c625ea3b116abbae5eec77388c0bd7
BLAKE2b-256 checksum
How to use checksums
1c054323a6544fdae5b529f8df450432ff4b60c81c964e7668010ef3748d856b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.2

Security for taskflow-agent 0.6.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page