Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

202 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenCaptain

Banner

Your AI Project Manager That Actually Manages

OpenCaptain is a self-hosted, open-source project management agent that communicates through WhatsApp and Telegram. Unlike traditional PM tools where you check dashboards, OpenCaptain proactively reaches out, conducts check-ins, escalates blockers, and keeps your projects moving—all through natural conversation.

License: MIT Bun TypeScript PRs Welcome


Why OpenCaptain?

Traditional PM tools are passive—they wait for you to update them. OpenCaptain is different:

  • Proactive: Sends daily standups, deadline reminders, and escalation alerts
  • Conversational: Manage tasks through WhatsApp/Telegram, not another dashboard
  • Context-Aware: Remembers project history and understands your team's workflow
  • Composable: Build your workflow from modular blocks, not rigid templates
  • Self-Hosted: Your data stays on your infrastructure. Bring your own LLM tokens.

Features

Conversational Project Management

  • Natural language task creation: "Add task: Fix login bug, assign to @john, due Friday"
  • Query your projects: "What's overdue?", "Show Sarah's tasks"
  • Update status through chat: "Mark #123 as done"

Building Blocks Architecture

Assemble your workflow from six composable block types:

Block Purpose
Role Define team structure, permissions, reporting lines
Deliverable Custom fields, status flows, task types
Check-in Scheduled prompts (standups, output counts, mood)
Escalation Time-based chains, auto-routing, fallback approvers
Visibility Squad-scoped, cross-squad, or project-wide access
Integration Connect Linear, GitHub, and external tools

AI-Powered Intelligence

  • Memory: Maintains project knowledge across conversations
  • Auto-Detection: Creates tasks when it spots actionable items
  • Summarization: Generates recaps for stakeholders
  • BYOT: Bring your own tokens for Claude, GPT, or local models

Team Collaboration

  • Multi-project support with per-person role assignments
  • Hierarchical roles: Creator → Squad Lead → Op Lead → PM
  • Squad-scoped visibility for sensitive projects
  • Activity feed and notifications

Integrations

  • WhatsApp (primary channel)
  • Telegram (secondary channel)
  • Linear (bidirectional task sync)
  • GitHub (PR/issue tracking)

Tech Stack

Layer Technology
Runtime Bun
Framework Hono
Database PostgreSQL + Drizzle ORM
Vector Store pgvector (for RAG/memory)
Queue BullMQ + Redis
LLM OpenAI, Anthropic Claude, or local models
Auth JWT + Argon2
Validation Zod
Docs OpenAPI 3.1 + Swagger UI

Quick Start

Prerequisites

  • Bun 1.0+
  • PostgreSQL 15+ (with pgvector extension)
  • Redis 7+
  • LLM API key (OpenAI, Anthropic, or compatible)

Installation

# Clone the repository
git clone https://github.com/yourusername/openminion.git
cd openminion

# Install dependencies
bun install

# Copy environment template
cp .env.example .env

# Configure your environment (see Configuration below)
nano .env

# Start services
docker-compose up -d

# Run database migrations
bun run db:migrate

# Start the server
bun run dev

Configuration

Create a .env file with:

# Server
PORT=3000
NODE_ENV=development

# Database
DATABASE_URL=postgres://user:password@localhost:5432/openminion

# Redis
REDIS_URL=redis://localhost:6379

# Auth
JWT_SECRET=your-super-secret-key
JWT_REFRESH_SECRET=your-refresh-secret

# LLM (choose one or more)
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...

# Messaging
WHATSAPP_VERIFY_TOKEN=your-webhook-verify-token
WHATSAPP_ACCESS_TOKEN=your-whatsapp-token
TELEGRAM_BOT_TOKEN=your-telegram-bot-token

# Email (for invitations)
RESEND_API_KEY=re_...

# Optional
CORS_ORIGIN=http://localhost:3000
LINEAR_API_KEY=lin_api_...

Usage

Via Messaging (WhatsApp/Telegram)

Once connected, your team interacts naturally:

You: What's on my plate today?

OpenCaptain: Good morning! Here's your day:

  Due Today:
  • Fix auth redirect bug (#142) - High priority
  • Review Sarah's PR for payment flow

  Upcoming:
  • API documentation update - Due tomorrow

  You have standup in 2 hours. Want me to remind you?
You: Create task: Update landing page copy, assign to @marketing, due next Monday

OpenCaptain: Created task #156: "Update landing page copy"
  • Assigned to: Marketing Team
  • Due: Monday, Feb 10
  • Priority: Normal

  Should I add any details or subtasks?

Via API

Full REST API available at /api/v1:

# Create a task
curl -X POST http://localhost:3000/api/v1/tasks \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Fix login bug",
    "assigneeId": "user_123",
    "dueDate": "2026-02-10",
    "priority": "high"
  }'

API documentation: http://localhost:3000/docs


Architecture

┌─────────────────────────────────────────────────────────────┐
│                     Messaging Channels                       │
│                  (WhatsApp, Telegram, API)                   │
└─────────────────────────┬───────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────┐
│                      Hono API Layer                          │
│              (Routes, Middleware, Validation)                │
└─────────────────────────┬───────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────┐
│                    Feature Modules                           │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐        │
│  │  Tasks   │ │  Teams   │ │  Roles   │ │Check-ins │        │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘        │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐        │
│  │Visibility│ │Escalation│ │  Recaps  │ │  Memory  │        │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘        │
└─────────────────────────┬───────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────┐
│                      LLM Layer                               │
│            (RAG, Conversations, Summarization)               │
└─────────────────────────┬───────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────┐
│                    Infrastructure                            │
│         PostgreSQL + pgvector │ Redis │ BullMQ              │
└─────────────────────────────────────────────────────────────┘

Commands

# Development
bun run dev              # Start with hot reload
bun run start            # Production start
bun run build            # Build for production

# Database
bun run db:generate      # Generate migrations
bun run db:migrate       # Run migrations
bun run db:studio        # Open Drizzle Studio

# Quality
bun run typecheck        # TypeScript check
bun run lint             # Lint code
bun run lint:fix         # Fix lint issues
bun run format           # Format code
bun run check            # Full check (lint + format)

# Testing
bun run test             # All tests
bun run test:unit        # Unit tests only
bun run test:integration # Integration tests only
bun run test:coverage    # With coverage report

API Endpoints

Authentication

Method Endpoint Description
POST /api/v1/auth/register Create account
POST /api/v1/auth/login Login with email/password
POST /api/v1/auth/refresh Refresh access token
POST /api/v1/auth/logout Revoke all refresh tokens
POST /api/v1/auth/magic-link/request Request magic link
GET /api/v1/auth/magic-link/verify Verify magic link

Teams & Projects

Method Endpoint Description
POST /api/v1/teams Create team
GET /api/v1/teams List user's teams
POST /api/v1/projects Create project
GET /api/v1/projects List projects

Tasks & Deliverables

Method Endpoint Description
POST /api/v1/tasks Create task
GET /api/v1/tasks List tasks
PATCH /api/v1/tasks/:id Update task
DELETE /api/v1/tasks/:id Delete task

Conversations

Method Endpoint Description
POST /api/v1/conversations Start conversation
POST /api/v1/conversations/:id/messages Send message

Webhooks

Method Endpoint Description
POST /api/v1/webhooks/telegram Telegram updates
POST /api/v1/webhooks/whatsapp WhatsApp updates

Full documentation at http://localhost:3000/docs


Roadmap

  • Core infrastructure (auth, teams, roles)
  • Team access & visibility controls
  • LLM infrastructure (RAG, memory, conversations)
  • Tasks & deliverables system
  • Messaging channels (WhatsApp, Telegram)
  • Check-ins & escalations
  • Web UI & analytics dashboard
  • Workflow builder & integrations
  • Block marketplace
  • Custom block creation tools
  • Mobile PWA optimization
  • Plugin system for community extensions

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Areas where we'd love help:

  • New integration blocks (Slack, Discord, Notion)
  • UI/UX improvements for the web dashboard
  • Documentation and tutorials
  • Translations
  • Bug fixes and performance improvements

Self-Hosting

OpenCaptain is designed for self-hosting. Recommended specs:

Component Minimum Recommended
CPU 2 cores 4 cores
RAM 4 GB 8 GB
Storage 20 GB SSD 50 GB SSD
Database PostgreSQL 15 PostgreSQL 16

Docker Deployment

docker-compose up -d

Manual Deployment

  1. Install Bun, PostgreSQL, Redis on your VPS
  2. Clone repo and configure .env
  3. Run migrations: bun run db:migrate
  4. Start with process manager: pm2 start bun -- run start
  5. Configure reverse proxy (nginx/caddy)

Philosophy

What We Build

  • Composable, modular systems
  • Conversation-first interfaces
  • Self-hosted, privacy-respecting software
  • AI that suggests, humans confirm

What We Don't Build

  • Time tracking / surveillance features
  • Complex Gantt charts (integrate if needed)
  • Native mobile apps (messaging apps are the interface)
  • Autonomous AI without human approval
  • Gamification that breeds toxic competition

License

MIT License - see LICENSE for details.


Acknowledgments

Built with inspiration from:

  • n8n - Visual workflow philosophy
  • Plane - Open-source PM approach
  • Linear - Developer-first UX
  • DailyBot - Conversational standups

OpenCaptain — Your AI captain steers the project, you build the ship.

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages