The World's First Autonomous Product Engine
autensa.com
Your products improve themselves — 24/7 — while you sleep.
Research → Ideation → Swipe → Build → Test → Review → Pull Request — fully automated.
I highly recommend getting Hetzner VPS to run this. You can sign up here.
🎮 Live Demo • Quick Start • Docker • What's New • Features • How It Works • Configuration • Contributors
Per-Task Agent Sessions (#99)
Each dispatched task now gets its own OpenClaw conversation session. Previously, all tasks assigned to the same agent shared one session, causing context to accumulate across tasks until the model's context window was exhausted and the agent stalled. The openclaw_sessions table already had a task_id column — dispatch now uses it for session lookup, session ID generation, and insert. Parallel tasks on the same agent work independently.
Flexible Agent ID Validation (#100)
Agent ID fields now accept both standard UUID format (8-4-4-4-12) and 32-character hex identifiers from the OpenClaw gateway. Previously, Zod's strict .uuid() validation rejected gateway-format agent IDs, causing "Invalid UUID" errors when assigning imported agents to tasks.
Task Delete Button Fix (#111)
The task delete button now shows a loading state ("Deleting..."), disables during the request, and displays inline error messages when deletion fails. Previously, the button had no feedback — if the API request failed or was slow, users saw no response and assumed the button was broken.
Product Pause & Archive (#98)
The Autopilot product settings modal now includes a Status dropdown (Active / Paused) and a Danger Zone section with an Archive button. Paused products stop automated research and ideation cycles. Archived products are hidden from the dashboard but data is preserved. The main product listing now filters out archived products.
v2.4.1 — Community Bug Fixes
- Autopilot model routing — Provider models now route through
openclaw/defaultwith the original model inx-openclaw-model, fixing 404 errors on OpenClaw deployments. (@Ahmedkasmi-dev, #109) - AUTOPILOT_MODEL env var — Removed hardcoded model override in description generation so the shared
AUTOPILOT_MODELconfig is respected. (@aaronmeza, #116) - Gateway catalog sync — Local agent role assignments are now preserved during gateway sync instead of being overwritten every 60 seconds. (@cgluttrell, #119)
- Task chat reliability — Agent replies are now captured even without an active SSE connection, and the "waiting" indicator no longer shows stale state. (@heliokeplert-ctrl, #126)
v2.4.0 — Agent Skill Creation Loop
- Agents learn reusable procedures from completed tasks
- Bayesian confidence scoring promotes proven skills
- Matched skills injected at dispatch as primary instructions
v2.0–v2.3 — Full changelog in Releases
- v2.3.x — Idea dedup, operator chat, swipe undo, A/B testing, auto-rollback
- v2.2.x — Preference learning, token tracking, health check endpoints, backup API
- v2.1.x — Server-side pipeline, error reporting, idea badges
- v2.0.x — Session key prefix, dispatch stability, community contributions
Autensa v2 is a ground-up expansion from task orchestration dashboard to the world's first autonomous product improvement engine. It researches your market, generates feature ideas, lets you decide with a swipe, and builds them — automatically.
The headline feature. Point Autensa at any product (repo + live URL) and it runs a continuous improvement loop:
-
Autonomous Research — AI agents analyze your codebase, scan your live site, and research your market: competitors, user intent, conversion patterns, SEO gaps, technical opportunities. Runs on configurable schedules — daily, weekly, or on-demand.
-
AI-Powered Ideation — Research feeds into ideation agents that generate concrete, scored feature ideas. Each idea includes an impact score, feasibility score, size estimate, technical approach, and a direct link to the research that inspired it.
-
Swipe to Decide — Ideas appear as cards in a Tinder-style interface. Four actions:
- Pass — Rejected. The preference model learns from it.
- Maybe — Saved to the Maybe Pool. Resurfaces in 1 week with fresh context.
- Yes — Task created. Build agent starts coding.
- Now! — Urgent dispatch. Priority queue, immediate execution.
-
Automated Build → PR — Approved ideas flow through the full agent pipeline: Build agent implements the feature → Test agent runs the suite → Review agent inspects the diff → Pull request created on GitHub with full context.
Your only job is the swipe. Everything else is automated.
Inspired by Andrej Karpathy's AutoResearch architecture. Each product has a Product Program — a living document that instructs research and ideation agents on what to look for, what matters, and what to ignore. The program evolves as swipe data accumulates: the system learns your taste, not just patterns.
Large features get decomposed into subtasks with a visual dependency graph (DAG). Multiple agents (3–5) work simultaneously with dependency-aware scheduling:
- Parallel subtask execution — Independent pieces run concurrently
- Dependency graph visualization — See what depends on what
- Health monitoring — Detects stalled, stuck, or zombie agents automatically
- Auto-nudge — Reassigns or restarts agents that go dark
- Crash recovery — Checkpoints save agent progress; work resumes from last checkpoint, not from scratch
Don't wait for a PR to give feedback. Two communication modes:
- Queued Notes — Add context ("use the existing auth middleware") that gets delivered at the agent's next checkpoint
- Direct Messages — Delivered immediately to the agent's active session for real-time course correction
Full chat history preserved per task — every message, note, and response.
Granular spend visibility across every dimension:
- Per-task cost tracking — See exactly what each feature costs to build
- Per-product aggregation — Total spend across all tasks for a product
- Daily and monthly caps — Set budget limits that auto-pause dispatch when exceeded
- Cost breakdown API — Detailed reports by agent, model, and time period
A dedicated Learner agent captures lessons from every build cycle — what worked, what failed, what patterns emerged. Knowledge entries are injected into future dispatches so agents don't repeat mistakes.
Before any build starts, agents run a structured planning phase:
- AI asks clarifying questions about requirements and constraints
- Generates a detailed spec from your answers
- Multi-agent planning specs with sub-agent definitions and execution steps
- Approval gate — you review the plan before any code is written
Agent progress is saved at configurable checkpoints:
- If a session crashes, work resumes from the last checkpoint — not from scratch
- Checkpoint restore API for manual recovery
- Checkpoint history visible per task
Every swipe trains a per-product preference model:
- Category weights (growth, SEO, UX, etc.) adjust based on approvals/rejections
- Complexity preferences calibrate over time
- Tag pattern recognition refines idea generation
- Ideas get sharper with every iteration
Ideas you're not sure about don't disappear:
- Swiped "Maybe" ideas enter a holding pool
- Automatically resurface after a configurable period with new market context
- Batch re-evaluation mode to review accumulated maybes
- Can be promoted to Yes at any time
Real-time SSE stream of everything happening across all products:
- Research progress, ideation cycles, swipe events
- Build progress, test results, review outcomes
- Agent health events, cost updates, PR creation
- Filterable by product, agent, and event type
Choose your comfort level per product:
| Tier | Behavior | Best For |
|---|---|---|
| Supervised | PRs created automatically. You review and merge manually. | Production apps |
| Semi-Auto | PRs auto-merge when CI passes and review agent approves. | Staging & trusted repos |
| Full Auto | Everything automated end-to-end. Idea → deployed feature. | Side projects & MVPs |
Each build task gets an isolated workspace:
- Git Worktrees for repo-backed projects — isolated branch, no conflicts with other agents
- Task Sandboxes for local/no-repo projects — dedicated directory under
.workspaces/task-{id}/ - Port allocation (4200–4299 range) for dev servers — no port conflicts between concurrent builds
- Serialized merge queue — completed tasks merge one at a time with conflict detection
- Product-scoped locking — concurrent completions for the same product queue automatically
Configure autonomous cycles per product:
- Research frequency (daily, weekly, custom cron)
- Ideation frequency (after each research cycle, or independent schedule)
- Auto-dispatch rules (immediate on "Yes" swipe, or batch)
- Schedule management UI with enable/disable per schedule
Product Autopilot
- 🔬 Autonomous market research (competitors, SEO, user intent, technical gaps)
- 💡 AI-powered ideation with impact/feasibility scoring
- 👆 Swipe interface for instant approve/reject/maybe decisions
- 📄 Product Program (Karpathy AutoResearch pattern)
- 🎯 Preference learning from swipe history
- 🔁 Maybe Pool with auto-resurface
- 📊 Configurable research & ideation schedules
Agent Orchestration
- 🤖 Multi-agent pipeline (Builder → Tester → Reviewer → Learner)
- 🚛 Convoy Mode for parallel multi-agent execution
- 💬 Operator Chat (queued notes + direct messages)
- 💚 Agent health monitoring with auto-nudge
- 🔄 Checkpoint & crash recovery
- 🧠 Knowledge base with cross-task learning
- 🔀 Workspace isolation (git worktrees + task sandboxes)
Task Management
- 🎯 Kanban board with drag-and-drop across 7 status columns
- 🧠 AI planning phase with clarifying Q&A
- 📋 Multi-agent planning specs
- 🖼️ Task image attachments (UI mockups, screenshots)
- 📡 Live real-time activity feed (SSE)
- 💰 Per-task, per-product, daily/monthly cost tracking & caps
Infrastructure
- 🔌 OpenClaw Gateway integration (WebSocket)
- 🔗 Gateway agent discovery & import
- 🐳 Docker ready (production-optimized)
- 🔒 Bearer token auth, HMAC webhooks, Zod validation
- 🛡️ Privacy first — no trackers, no centralized data collection
- 🌐 Multi-machine support (Tailscale compatible)
- 🛡️ Automation tiers (Supervised / Semi-Auto / Full Auto)
Autensa is open-source and self-hosted. The project does not include ad trackers, third-party analytics beacons, or a centralized data collector.
Your task data, research results, ideas, swipe history, and product programs stay in your own deployment (SQLite + workspace). If you connect external services (AI providers or remote gateways), only the data you explicitly send to those services leaves your environment.
┌──────────────────────────────────────────────────────────────────────┐
│ YOUR MACHINE │
│ │
│ ┌──────────────────┐ ┌──────────────────────────────────┐ │
│ │ Autensa │◄────────►│ OpenClaw Gateway │ │
│ │ (Next.js) │ WS │ (AI Agent Runtime) │ │
│ │ Port 4000 │ │ Port 18789 │ │
│ └────────┬──────────┘ └───────────┬────────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────────┐ ┌──────────────────────────────────┐ │
│ │ SQLite DB │ │ AI Providers │ │
│ │ (tasks, products, │ │ (Anthropic / OpenAI / etc.) │ │
│ │ ideas, costs) │ └──────────────────────────────────┘ │
│ └──────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ Autopilot Engine │ │
│ │ Research → Ideation → Swipe → Build → Test → Review → PR │ │
│ └──────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────┘
Autensa = The dashboard + autopilot engine (this project) OpenClaw Gateway = The AI runtime that executes tasks (separate project)
- Node.js v18+ (download)
- OpenClaw Gateway —
npm install -g openclaw - AI API Key — Anthropic (recommended), OpenAI, Google, or others via OpenRouter
# Clone
git clone https://github.com/crshdn/mission-control.git
cd mission-control
# Install dependencies
npm install
# Setup
cp .env.example .env.localEdit .env.local:
OPENCLAW_GATEWAY_URL=ws://127.0.0.1:18789
OPENCLAW_GATEWAY_TOKEN=your-token-hereWhere to find the token: Check
~/.openclaw/openclaw.jsonundergateway.token
# Start OpenClaw (separate terminal)
openclaw gateway start
# Start Autensa
npm run devOpen http://localhost:4000 — you're in! 🎉
npm run build
npx next start -p 4000You can run Autensa in a container using the included Dockerfile and docker-compose.yml.
- Docker Desktop (or Docker Engine + Compose plugin)
- OpenClaw Gateway running locally or remotely
Create a .env file for Compose:
cp .env.example .envThen set at least:
OPENCLAW_GATEWAY_URL=ws://host.docker.internal:18789
OPENCLAW_GATEWAY_TOKEN=your-token-hereNotes:
- Use
host.docker.internalwhen OpenClaw runs on your host machine. - If OpenClaw is on another machine, set its reachable
ws://orwss://URL instead.
docker compose up -d --buildOpen http://localhost:4000.
# View logs
docker compose logs -f mission-control
# Stop containers
docker compose down
# Stop and remove volumes (deletes SQLite/workspace data)
docker compose down -vCompose uses named volumes:
mission-control-datafor SQLite (/app/data)mission-control-workspacefor workspace files (/app/workspace)
RESEARCH → IDEATION → SWIPE → PLAN → BUILD → TEST → REVIEW → PR
AI AI You AI Agent Agent Agent Auto
- Research — AI analyzes your product's market: competitors, SEO, user intent, technical gaps
- Ideation — Research feeds ideation agents that generate scored feature ideas
- Swipe — You review ideas as cards. Pass / Maybe / Yes / Now!
- Plan — AI asks clarifying questions, generates a detailed spec
- Build — Agent clones repo, creates branch, implements the feature
- Test — Agent runs the test suite. Failures bounce back for auto-fix
- Review — Agent inspects the diff for quality, security, best practices
- PR — Pull request created on GitHub with full context and research backing
PLANNING → INBOX → ASSIGNED → IN PROGRESS → TESTING → REVIEW → DONE
Drag tasks between columns or let the system auto-advance them.
┌─ Subtask A (Agent 1) ──┐
PARENT TASK ────────┤ ├──── MERGE & PR
├─ Subtask B (Agent 2) ──┤
└─ Subtask C (Agent 3) ──┘
(depends on A)
Subtasks run in parallel with dependency-aware scheduling. Health monitoring detects stalls. Crash recovery via checkpoints.
| Variable | Required | Default | Description |
|---|---|---|---|
OPENCLAW_GATEWAY_URL |
✅ | ws://127.0.0.1:18789 |
WebSocket URL to OpenClaw Gateway |
OPENCLAW_GATEWAY_TOKEN |
✅ | — | Authentication token for OpenClaw |
MC_API_TOKEN |
— | — | API auth token (enables auth middleware) |
WEBHOOK_SECRET |
— | — | HMAC secret for webhook validation |
DATABASE_PATH |
— | ./mission-control.db |
SQLite database location |
WORKSPACE_BASE_PATH |
— | ~/Documents/Shared |
Base directory for workspace files |
PROJECTS_PATH |
— | ~/Documents/Shared/projects |
Directory for project folders |
Generate secure tokens:
# API authentication token
openssl rand -hex 32
# Webhook signature secret
openssl rand -hex 32Add to .env.local:
MC_API_TOKEN=your-64-char-hex-token
WEBHOOK_SECRET=your-64-char-hex-tokenWhen MC_API_TOKEN is set:
- External API calls require
Authorization: Bearer <token> - Browser UI works automatically (same-origin requests are allowed)
- SSE streams accept token as query param
See PRODUCTION_SETUP.md for the full production guide.
Run Autensa on one machine and OpenClaw on another:
# Point to the remote machine
OPENCLAW_GATEWAY_URL=ws://YOUR_SERVER_IP:18789
OPENCLAW_GATEWAY_TOKEN=your-shared-tokenOPENCLAW_GATEWAY_URL=wss://your-machine.tailnet-name.ts.net
OPENCLAW_GATEWAY_TOKEN=your-shared-tokenSQLite database auto-created at ./mission-control.db. Migrations run automatically on startup (21 migrations). As of v2.0.1, a timestamped backup is created before any pending migration runs.
# Reset (start fresh)
rm mission-control.db
# Inspect
sqlite3 mission-control.db ".tables"Key tables added in v2: products, research_cycles, ideas, swipe_history, preference_models, maybe_pool, product_feedback, cost_events, cost_caps, product_schedules, operations_log, convoys, convoy_subtasks, agent_health, work_checkpoints, agent_mailbox, workspace_ports, workspace_merges.
autensa/
├── src/
│ ├── app/ # Next.js pages & API routes
│ │ ├── api/
│ │ │ ├── tasks/ # Task CRUD, planning, dispatch, convoy, chat, workspace
│ │ │ ├── products/ # Product CRUD, research, ideation, swipe, schedules
│ │ │ ├── agents/ # Agent management, health, mail, discovery
│ │ │ ├── costs/ # Cost tracking, caps, breakdowns
│ │ │ ├── convoy/ # Convoy mail endpoints
│ │ │ ├── openclaw/ # Gateway proxy endpoints
│ │ │ └── webhooks/ # Agent completion webhooks
│ │ ├── settings/ # Settings page
│ │ └── workspace/[slug]/ # Workspace dashboard
│ ├── components/
│ │ ├── MissionQueue.tsx # Kanban board
│ │ ├── PlanningTab.tsx # AI planning interface
│ │ ├── AgentsSidebar.tsx # Agent panel
│ │ ├── LiveFeed.tsx # Real-time events
│ │ ├── TaskModal.tsx # Task create/edit
│ │ ├── TaskChatTab.tsx # Operator chat
│ │ ├── ConvoyTab.tsx # Convoy visualization
│ │ ├── DependencyGraph.tsx # DAG visualization
│ │ ├── HealthIndicator.tsx # Agent health badges
│ │ ├── WorkspaceTab.tsx # Workspace isolation UI
│ │ ├── autopilot/ # SwipeDeck, IdeaCard, ResearchReport, etc.
│ │ └── costs/ # Cost dashboard components
│ └── lib/
│ ├── autopilot/ # Research, ideation, swipe, maybe-pool, scheduling
│ ├── costs/ # Cost tracker, caps, reporting
│ ├── db/ # SQLite + 21 migrations
│ ├── openclaw/ # Gateway client + device identity
│ ├── convoy.ts # Convoy orchestration
│ ├── agent-health.ts # Health monitoring + auto-nudge
│ ├── checkpoint.ts # Checkpoint save/restore
│ ├── workspace-isolation.ts # Git worktrees + task sandboxes
│ ├── mailbox.ts # Inter-agent messaging
│ ├── chat-listener.ts # Operator chat relay
│ ├── learner.ts # Knowledge base management
│ └── types.ts # TypeScript types
├── presentation/ # v2 pitch deck + narration script
├── specs/ # Feature specs
├── scripts/ # Bridge & hook scripts
└── CHANGELOG.md # Full version history
- Check OpenClaw is running:
openclaw gateway status - Verify URL and token in
.env.local - Check firewall isn't blocking port 18789
- Check OpenClaw logs:
openclaw gateway logs - Verify your AI API key is valid
- Refresh and click the task again
lsof -i :4000
kill -9 <PID>If you're behind an HTTP proxy (corporate VPN, Hiddify, etc.), agent callbacks to localhost may fail because the proxy intercepts local requests.
Fix: Set NO_PROXY so localhost bypasses the proxy:
# Linux / macOS
export NO_PROXY=localhost,127.0.0.1
# Windows (cmd)
set NO_PROXY=localhost,127.0.0.1
# Docker
docker run -e NO_PROXY=localhost,127.0.0.1 ...See Issue #30 for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'feat: add amazing feature' - Push:
git push origin feature/amazing-feature - Open a Pull Request
Autensa is built by a growing community. Thank you to everyone who has contributed!
![]() Steve Device Identity |
![]() Ryan Christman Port Configuration |
![]() nicozefrench ARIA Hooks |
![]() GOPAL Node v25 Support |
![]() Jorge Martinez Orchestration |
![]() Nik Planning & Dispatch |
![]() Michael G Usage Dashboard |
![]() Z8Medina Metabase Integration |
![]() Mark Phelps Gateway Agent Discovery 💡 |
![]() Alessio Docker Support |
![]() James Tsetsekas Planning Flow Fixes |
![]() nice-and-precise Agent Protocol Docs |
![]() JamesCao2048 Task Creation Fix |
![]() davetha Force-Dynamic & Model Discovery |
![]() pkgaiassistant-droid Activity Dashboard & Mobile UX |
![]() Coder-maxer Static Route Fix |
![]() grunya-openclaw Dispatch & Proxy Bug Reports |
![]() ilakskill Dispatch Recovery Design |
![]() plutusaisystem-cmyk Agent Daemon & Fleet View |
![]() nithis4th 2nd Brain Knowledge Base |
![]() davidpellerin Dynamic Agent Config |
![]() tmchow Agent Import Improvements |
![]() xiaomiusa87 Session Key Bug Report |
![]() lutherbot-ai Security Audit |
![]() YITING OU Cascade Delete Fix |
![]() Brandon Ros Docker CI Workflow |
![]() nano-lgtm Kanban UX Improvements |
![]() cammybot1313-collab Docs Typo Fix |
MIT License — see LICENSE for details.
- Andrej Karpathy — AutoResearch architecture that inspired the Product Program pattern
- Mike De'Shazer — Operator Chat concept
If Autensa has been useful to you, consider buying me a coffee!
Stop managing a backlog. Start shipping on autopilot. 🚀



























