Projects & Todos

OpenClaw memory plugin with projects, todos, and contacts integration. Structured task management.

Projects & Todos is an ambitious, Postgres-backed project management and memory backend designed specifically for OpenClaw AI agents. Unlike simple to-do list plugins that store tasks in flat files, this plugin provides a full relational hierarchy: projects contain initiatives, which contain epics, which break down into issues and tasks — mirroring how real software teams organize work. It also includes standalone tasks with full dependency graphs (blocks/blocked-by relationships across all item types). The plugin goes beyond task management to include a semantic memory system powered by pgvector for long-term agent recall, a contacts management layer with endpoint linking (email, phone), and communications integrations for SMS (Twilio) and email (Postmark). The architecture runs as a separate backend service with its own Postgres 18 database (with pgvector, pg_cron, TimescaleDB, and optional PostGIS extensions), connected to OpenClaw via the plugin adapter. Notably, this is one of the most technically sophisticated community plugins in the OpenClaw ecosystem. It features a web dashboard with magic-link authentication, multi-user roles per item (owner/assignee/watcher), priority levels (P0-P4), task types (coding/dev/admin), scheduling constraints (not_before/not_after), and Docker Compose deployment with optional Traefik reverse proxy including automatic TLS, HTTP/3, and ModSecurity WAF. Best suited for power users running OpenClaw as a serious productivity system — solo founders managing multiple projects, dev teams wanting AI-assisted project tracking, or anyone who needs their agent to understand complex project hierarchies and dependencies. Not ideal if you just need simple reminders or lightweight task lists.

Tags: productivity, task-management, tool

Use Cases

  • Solo founder managing multiple product backlogs with AI-assisted prioritization
  • Development team using OpenClaw for daily standup summaries from project data
  • Agent-driven contact management with automated follow-up scheduling via SMS/email
  • Long-term memory storage with semantic search for context-rich agent conversations
  • Sprint planning and progress tracking through natural language interactions
  • Cross-project dependency tracking and bottleneck identification

Tips

  • Use docker compose -f docker-compose.quickstart.yml for easy local development
  • Pin to exact version tags (e.g., :0.0.61) rather than :latest for production stability
  • Run the setup wizard (./scripts/setup.sh) to auto-generate your .env with random secrets
  • Check deployment docs for Traefik TLS setup with automatic Let's Encrypt certificates
  • Use the dependency graph to let your agent understand task blocking relationships
  • Pair with OpenClaw cron jobs for automated daily project status reports
  • Use --non-interactive flag for CI/unattended setup

Known Issues & Gotchas

  • The backend service must be running separately — it's not embedded in OpenClaw
  • Docker Compose quickstart disables auth by default — enable it for production
  • The :edge Docker tag is unstable — always use versioned tags in production
  • pgvector extension setup can be tricky on some Postgres distributions
  • Magic-link login URLs expire after 15 minutes
  • Upgrading requires checking compose file version compatibility
  • Backup procedures must be configured separately for the Postgres database

Alternatives

  • Obsidian Plugin
  • Notion Plugin
  • OpenClaw Memory (built-in)

Community Feedback

This is not part of OpenClaw itself — it's an independent project that OpenClaw agents can connect to via the plugin. The full dependency graph across all item types is what sets it apart.

— GitHub

The Postgres-backed approach is overkill for most people, but if you're running OpenClaw as a serious productivity tool, having real relational data beats markdown files every time.

— Reddit r/selfhosted

Using Obsidian + OpenClaw as my second brain... but for structured project management, the troykelly projects plugin is the way to go if you need real task hierarchies.

— Reddit r/openclaw

Frequently Asked Questions

Do I need to run a separate server for this plugin?

Yes. Unlike most OpenClaw plugins, Projects & Todos requires a separate Postgres-backed backend service running via Docker Compose. The OpenClaw plugin connects to this backend via API.

Can I use this without Docker?

Technically yes — you can run the Node.js backend directly with a Postgres 18 instance that has pgvector installed. However, Docker Compose is the recommended and simplest path.

How does the semantic memory search work?

The plugin uses pgvector to store embedding vectors alongside memory entries in Postgres. When searching, it computes semantic similarity to find relevant memories even when exact keywords don't match.

Is authentication required?

Auth is disabled by default in the quickstart compose for easy development. For production, you should enable API key authentication and use the magic-link dashboard login (15-minute link, 7-day sessions).

What's the difference between this and OpenClaw's built-in memory?

Built-in memory is file-based and simple. This plugin provides structured relational data (projects → initiatives → epics → tasks), dependency graphs, contacts, and communications — a full project management backend.

Can multiple OpenClaw instances share the same Projects backend?

Yes. The backend is a standalone REST API, so multiple OpenClaw instances can connect to it simultaneously with proper API key authentication and role-based access.

Configuration Examples

Basic Docker Quickstart

# Clone and start:
git clone https://github.com/troykelly/openclaw-projects
cd openclaw-projects
./scripts/setup.sh
docker compose -f docker-compose.quickstart.yml up -d
curl http://localhost:3000/health

Production with Traefik TLS

# Generate production .env:
./scripts/setup.sh
# Edit .env with DOMAIN, ACME_EMAIL, DNS credentials
docker compose -f docker-compose.traefik.yml up -d

OpenClaw Plugin Configuration

plugins:
  projects:
    enabled: true
    apiUrl: https://projects.yourdomain.com
    apiKey: your-secure-api-key

Installation

openclaw plugins install @troykelly/openclaw-projects