Built because I wanted Claude on a cron, not in a chat window. Point it at a project/task tree, schedule a run, and each execution branches, commits, pushes, and opens its own PR — with an audited artifact bundle dropped alongside. Exposes an MCP server for the project/task/run tools, ships as a NestJS API plus Next.js dashboard, and installs on a fresh Ubuntu box from a single deploy script.
// features
- Projects, task lists, tasks, and todos with polymorphic annotations
- Cron-driven schedules bound to any node in the hierarchy
- Per-run git lifecycle: branch, commit, push, open PR
- Encrypted secrets vault with per-record DEK and master key versioning
- MCP server exposing project / task / run tools with scoped PATs
- Workspaces from GitHub, local paths, or uploaded tar/zip archives
- SSE-streamed run events backed by BullMQ workers
// interesting details
- Workspaces are polymorphic across GitHub, local dir, and uploaded archive. The schema treats schedules and runs as subject-typed pointers (project | task_list | task | todo), so any node in the hierarchy can be the target of a Claude run.
- Secrets vault uses envelope encryption: each row stores its own AES-GCM ciphertext + IV + auth tag plus an encrypted DEK with its own IV/auth tag, versioned against a master key so rotation is tracked per-record.
- Same NestJS codebase compiles to three processes (api, worker, MCP server) selected at runtime via separate entrypoints. The Postgres schema carries CHECK constraints, partial indexes, and updated_at triggers that live in raw migration SQL because Prisma can't express them.
- Deploy script is a 15-step idempotent bash orchestrator with numbered exit codes per spec section (10 preflight, 20 packages, 30 db/redis, 40 build/migrate, 50 systemd/nginx, 60 TLS, 70 health) targeting a fresh Ubuntu 24.04 LTS host.
// tech stack
TypeScript
NestJS 11
Next.js 15
React 19
Prisma 5
PostgreSQL 16
Redis 7 + BullMQ
Anthropic SDK
Model Context Protocol SDK
simple-git
Tailwind / Radix UI
nginx / systemd / certbot
Want to collaborate on qubichelm?
The repo is private — drop a note and tell us what brought you here.