Based on repository activity, growth velocity and community engagement.
9
Growth2/30
Activity2/25
Popularity1/25
Trust4/20
1
Stars
High
Sentiment
Is this actually an AI agent?
1
README.md
Lazynext — The Autonomous AI Company OS
A production, self-running organization of AI agents that builds, deploys, markets, sells, and supports a real software product with zero human intervention after setup. The fleet currently operates the Accessibility Checker — a live WCAG scanning product at checker.lazynext.com — handling the full lifecycle from free scans through reports, upgrade checkout, billing, email sequences, and support.
The entire backend runs on Cloudflare's serverless platform (Workers, D1, Workers KV, Vectorize, Pages, Containers, Cron) and Cloudflare Workers AI for LLM inference — no local services required beyond the agent runner.
Live platform
| Surface | URL | What it is |
|---------|-----|------------|
| Marketing site | lazynext.com | Company site + status page |
| Product app | checker.lazynext.com | Accessibility Checker — scan UI, reports, checkout (installable PWA) |
| Product API | api.lazynext.com | Scan/report/badge/checkout API + /mcp + /a2a + widget.js |
| Founder dashboard | dashboard.lazynext.com | Next.js ops console (passphrase + optional TOTP; installable PWA) |
| Platform worker | ai-company-os.dry-hall-6a50.workers.dev | Internal state API — token-gated (returns 401 unauthenticated) |
| Status | status.lazynext.com | Redirects to lazynext.com/status |
Scan → report → upgrade loop: free tier 3 scans/day per site; full reports with per-rule findings; report pages carry the upgrade CTA into checkout
75-rule manifest (GET /rules): WCAG 2.x criteria + best-practice checks, including rendered-scan checks — real Tab/Shift+Tab keyboard-trap traces, Escape probes, click-opened dialog traps, target-size, focus-obscured, and non-text-contrast detection
interactive
Billing: Dodo Payments — permanent test mode (founder decision 2026-09-29; no live KYC/webhook migration) — Pro subscription, 14-day trial (extendable via config:trial_offer, currently 30 days ON), WELCOME20 discount (basis-points 2000 = 20%), webhook-verified entitlement, SignWell legal signing on activation (template unset, mechanism exists)
Agent surfaces: POST /mcp (JSON-RPC tools scan_url/scan_html/get_report/list_rules), POST /a2a (tasks/send/tasks/get), GET /.well-known/agent.json, GET /widget.js (Shadow-DOM embed) — all sharing the same quota-enforced scan pipeline
Lazynext is a multi-agent system that runs a complete startup organization. Specialized AI agents — CEO, CTO, engineering, growth, and infrastructure roles — collaborate through a D1-backed event bus to operate the company's product end to end: shipping code, deploying to Cloudflare, drafting and sending campaigns, handling support, reconciling billing, and monitoring production. The fleet runs under launchd on a Mac runner with hard safety gates (protected files, test gate, fitness review, revert-on-failure, dead-corpus dedup) documented in AGENTS.md.
Code Generation: Engineering agents write production-quality code with validation and testing
Automatic Deployment: DevOps agents deploy frontends to Cloudflare Pages and JS/TS backends to Cloudflare Workers, with verification
Quality Assurance: Continuous testing and health monitoring with automatic remediation
Performance Tracking: Comprehensive scoring and reward system for agent improvement
Knowledge Management: RAG-powered knowledge base for context-aware decision making
Core Principles
Separation of Concerns: Product code lives in a separate repository (./products/<slug>/, e.g. products/accessibility-checker) isolated from the agent system
All state access goes through a single Cloudflare Worker (worker/) that fronts D1, KV, and Vectorize. Agents and the dashboard authenticate with a shared bearer token (API_TOKEN Worker secret).
Auth: Authorization: Bearer <API_TOKEN> on every request
Public API + MCP (Gateway)
External consumers use lzk_* API keys (issued via /api/v1/keys with the admin token) — scoped (read/write/admin), rate-limited per minute via KV, hashed in D1 (api_keys table, migration 003). Platform OpenAPI is 93 paths; product OpenAPI is 21 paths (Postman collection has 24 operations — operation count, not path count). See docs/audit-2026-10-13/REPORT.md §5.
REST: GET /api/v1/health (public), GET /api/v1/status, GET /api/v1/briefings[/{id}], GET /api/v1/tasks, POST /api/v1/tasks (write), POST /api/v1/knowledge/search, GET /api/v1/agents
Key admin (admin token only): POST /api/v1/keys, GET /api/v1/keys, DELETE /api/v1/keys/{id}
Webhooks: POST /api/v1/webhooks registers an HTTPS endpoint subscribed to bus channels (* or csv); every bus publish + briefing insert fans out a signed POST (x-lazynext-signature), deliveries logged (/api/v1/webhooks/deliveries)
Docs: GET /api/v1/openapi.json + Swagger UI at /api/v1/docs
A2A: GET /.well-known/agent.json (agent card, public) + POST /a2a — tasks/send (write scope) queues real work, tasks/get (read scope) reports true state from task_log
OAuth 2.0: POST /oauth/token (client_credentials + authorization_code) + POST /oauth/authorize (admin-mints scoped lzk_ keys)
Embeddable widget: <script src="https://ai-company.lazynext.com/widget.js"></script> + <div data-lazynext="status|chat"> — live status card / chat box on any site
Chat integrations: webhook endpoints auto-detect Slack/Discord/Telegram URLs and format messages natively — connect in Settings → Chat integrations
Store — GET|POST /api/v1/store/products, GET|POST /api/v1/store/orders — internal product/order ledger
Marketing — GET|POST /api/v1/marketing/contacts[/{id}], GET|POST /api/v1/marketing/campaigns, GET /api/v1/marketing/stats — contacts, campaign records, and engagement rollups (totals/by_tag/recent) fed by the Brevo webhook (12 events incl. delivered/opened/click/suppression)
Signatures — POST /api/v1/signwell/send, GET /api/v1/signwell/documents, GET /api/v1/signwell/events, POST /api/v1/signwell/webhook/{token} — SignWell document send/status/webhook; subscription activation auto-sends config:signwell_template when set
Connectors — GET|POST /api/v1/connectors[/{id}] — registry + dispatch for the 45-entry connector library (39 credential-present, 6 absent: linkedin, tiktok, snapchat, teams, viber, beehiiv; see docs/connectors.md): x, linkedin, meta, facebook, instagram, threads, bluesky, mastodon, reddit, pinterest, vk, youtube, tiktok, gmb, discord, slack, telegram, matrix, teams, mattermost, zulip, viber, line, devto, hashnode, medium, wordpress, github, gitlab, tumblr, ghost, beehiiv, lemmy, listmonk, ayrshare, postiz, buffer, twilio, whatsapp, brevo, signwell + generic webhook. Credentials live in KV conn:{id} (403-guarded over HTTP); core/tools/connectors.py mirrors the matrix locally. Snapshot 2026-10-13; product PRs #102 and #105 closed (orphan worker / doc boilerplate), #103/#104/#106/#107 review-halted with close dispositions — see ledger Order 2A. Use ! gh pr close to land when external-writes unblocks.
Message Bus (D1-backed Streams)
The system uses a D1-backed message bus exposed by the Worker for inter-agent communication. Each channel represents a specific message type or routing destination:
Channels: ceo.directives, cto.tasks.backend, cto.tasks.frontend, agent.reports, qa.alerts, etc.
Consumer Groups: Emulated in D1 via bus_offsets + bus_deliveries — each (channel, group) sees every message; within a group each message is delivered to exactly one consumer until acked
Correction prompt: "Review: Consider alternative approaches. Improve for next time."
Stored in correction history
Guides agent toward better strategies
Poor Performance (0-49):
Recovery prompt: "Learning moment. What went wrong: [error]. Try: [lesson]."
Triggers knowledge base download for learning
Stored in correction history for pattern learning
Agent Memory Integration
Rewards and corrections are stored in agent_memories table:
Reward History: JSON array of positive feedback prompts
Correction History: JSON array of improvement guidance
Performance Score: Running average of task scores (0-100)
Patterns Learned: Array of learned patterns and strategies
Agents use this memory to improve performance over time, referencing successful approaches and avoiding past mistakes.
Milestone Rewards
When significant milestones are achieved (e.g., first deployment, 100 users, revenue milestone), the reward engine broadcasts celebration prompts to all agents, reinforcing positive behavior across the organization.
Technical Stack
Core Infrastructure
| Component | Technology | Purpose |
|-----------|------------|---------|
| Language | Python 3.11+ | Agent runtime and core logic |
| LLM Provider | Cloudflare Workers AI | Language model for all agents |
| Database | Cloudflare D1 (SQLite) | Persistent company state and task logs |
| Cache | Cloudflare Workers KV | Company brain cache (60s TTL) |
| Message Bus | Cloudflare D1 via Worker | Streams + consumer-group emulation |
| Vector Store | Cloudflare Vectorize | Knowledge base embeddings |
| Chunk Store | Cloudflare D1 | Knowledge chunk text |
| Embeddings | sentence-transformers/all-MiniLM-L6-v2 | Free local embeddings (384 dimensions) |
LLM Model Selection (Tiered Strategy)
| Agent Role | Model | Approx. Cost (per 1M tokens) | Rationale |
|------------|-------|------------------------------|-----------|
| All roles | Llama-3.3-70b (Workers AI) | Free tier | All agent work |
API token (CF_API_TOKEN) with edit perms for Workers Scripts, Workers KV, D1, Vectorize
Account ID (CF_ACCOUNT_ID) from the dashboard sidebar
LLM brain: Cloudflare Workers AI (Llama-3.3-70b) — runs via the company
worker, no separate key needed. Free tier included.
Installation Steps
# Clone repository
git clone https://github.com/Lazynext-AI/Autonomous-AI-Company-Operating-System.git
cd Autonomous-AI-Company-Operating-System
# Copy environment template
cp .env.example .env
# Edit .env: CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_DEPLOY_TOKEN
# Install dependencies (uses uv)
make setup
# or: uv venv --python 3.12 .venv && uv pip install -e . --python .venv/bin/python
# Create Cloudflare resources (D1, KV namespace, Vectorize index)
make worker-resources
# Copy the printed resource IDs into worker/wrangler.toml
# Set the shared Worker secret
cd worker && npx wrangler secret put API_TOKEN && cd ..
# Apply the D1 schema and deploy the Worker
make worker-migrate
make worker-deploy
# Set CLOUDFLARE_API_URL + CLOUDFLARE_API_TOKEN in .env to the deployed worker URL
# and the secret you chose above
# Validate configuration
make validate-env
Configuration
Required Environment Variables
| Variable | Description | Example |
|----------|-------------|---------|
| CLOUDFLARE_API_URL | Deployed Worker URL | https://ai-company-os.you.workers.dev |
| CLOUDFLARE_API_TOKEN | Worker bearer token — the secret agents/scripts send to the Worker | any long random string |
| CLOUDFLARE_ACCOUNT_ID | Cloudflare account ID | abc123... |
| CLOUDFLARE_DEPLOY_TOKEN | Real Cloudflare REST token — wrangler/deploys only; not the same value as CLOUDFLARE_API_TOKEN | cfut_... |
CLOUDFLARE_API_TOKEN is the bearer for your Worker; wrangler rejects it. CLOUDFLARE_DEPLOY_TOKEN authenticates to Cloudflare. Deploy commands map it in, e.g. CLOUDFLARE_API_TOKEN="$CLOUDFLARE_DEPLOY_TOKEN" npx wrangler deploy.
Apply db/migrations/001_initial.sql to D1 (make worker-migrate). Creates:
company_brain: Single row with full company state
agent_memories: Per-agent performance and memory
task_log: All tasks with status and results
milestone_log: Achieved milestones
bus_messages / bus_deliveries / bus_offsets: Message bus streams + consumer groups
episodic_events: Agent + company event feeds
knowledge_chunks: RAG chunk text (embeddings in Vectorize)
download_history: Knowledge downloader history
Running the System
Development Mode
# Start all agents (talks to the deployed Worker)
make dev
# or: set -a; source .env; set +a; .venv/bin/python scripts/run_agents.py
# In separate terminal, start dashboard
make dashboard
# or: cd dashboard && npm run dev
The system runs in foreground. Press Ctrl+C to stop. In production the fleet is launchd-supervised (com.lazynext.fleet, KeepAlive) — pkill -f run_agents.py is the restart (KeepAlive respawns exactly one; never run a manual instance alongside it). Health checks run via com.lazynext.healthcheck every 15 min.
Initialization
Deploy Worker: make worker-deploy (after worker-resources + worker-migrate)
Set Mission: Update company_brain via the Worker or D1 console: