Autonomous marketing platform powered by AI agents.
MarketingOS replaces your marketing team's repetitive workflows with intelligent agents that research, draft, review, and publish content autonomously. Humans set the direction — agents execute the plan.
From ~10 hours/week of manual marketing work → ~20 minutes/week of review and approval.
SETUP (one-time, ~15 min):
1. Create a project with brand profile
2. Pick a campaign template
3. Set a schedule (weekly, daily, or manual)
4. Connect Twitter/X (optional)
WEEKLY (~20 min):
1. Drop ideas into the Idea Stream
2. Review the batch of agent-produced content
3. Approve, reject, or leave feedback
4. Agents learn from your feedback and improve
Define multi-step campaign templates. Agents execute every step — strategy, drafting, review — on schedule or on demand.
- 3 built-in templates (Weekly Content Calendar, Single Content Piece, Campaign Launch Package)
- Self-review quality gates: score >= 4/5 auto-advances, low scores auto-retry
- Cron scheduling for recurring campaigns
- Idea-triggered pipelines: drop an idea → campaign starts automatically
Three default agents per project, each with a specialized role:
| Agent | Role |
|---|---|
| Strategy Lead | Campaign planning, research, content calendars |
| Content Specialist | Drafting, tone enforcement, multi-format content |
| Growth Analyst | Quality review, SEO analysis, performance optimization |
Agents communicate via MESSAGE_AGENT directives, delegate tasks to each other, and share context through project memory.
| Tool | What it does |
|---|---|
web_search |
Research any topic on the web |
memory_store / memory_recall |
Read/write project memory (FTS5) |
vector_memory_store / vector_memory_search |
Semantic vector memory |
write_artifact |
Produce deliverable files attached to tasks |
create_task |
Programmatically create tasks with assignees |
delegate_task |
Delegate work to other agents |
read_ideas / write_idea |
Access and write to the Idea Stream |
twitter_scrape |
Fetch tweets and profiles — no API key |
tweet_discover |
Keyword-based tweet discovery via DuckDuckGo |
tweet_tracker |
Monitor tweet growth with burst detection |
twitter_profile_analyzer |
Profile engagement and content analysis |
twitter_post |
Post tweets via OAuth 2.0 |
firecrawl_scrape |
Scrape web pages to clean markdown |
Reading (no API key): Uses FxTwitter public API and DuckDuckGo for tweet data and discovery. Zero cost.
Posting (OAuth 2.0): Users connect their Twitter account once in Settings. Agents post on their behalf.
Agents can autonomously research trending content, competitor activity, and industry news — then save findings directly to the Idea Stream using the write_idea tool. Schedule recurring research tasks via cron (e.g., daily at 9 AM).
Each project has its own brand profile, tone rules, and long-term memory. Nothing leaks between brands. Agents learn from human feedback and improve over time.
Inspiration inbox with types (note, article, quote, image), tagging, full-text search, and optional auto-trigger for campaign pipelines.
Inbox → In Progress → Review → Done. Assign tasks to agents, set recurring schedules, view calendar, comment to re-trigger agents, score artifacts (1-5) to train memory.
- Node.js 20+
- pnpm
cd backend
pnpm install
cp .env.example .env # add at least one AI provider key
pnpm dev # http://localhost:8787cd app
pnpm install
cp .env.example .env # add Supabase credentials
pnpm dev # http://localhost:3000Create a project with a brand profile (name, tagline, audience, tone keywords, colors). This becomes the identity for all agents working on this project.
- Go to Campaigns → choose a template (or create your own)
- Agents execute each step autonomously
- Content that scores 4+ auto-advances; low scores auto-retry
- When retries are exhausted, content surfaces for human review
Create a recurring task like "Research trending AI marketing content" with a cron schedule. Agents will run the task, use web_search, twitter_scrape, and tweet_discover tools, then save findings to the Idea Stream via write_idea.
- Create an app at developer.x.com
- Enable OAuth 2.0 with Read and write permissions, type Web App
- Set callback URL:
http://localhost:8787/auth/twitter/callback - Add Client ID + Client Secret to
.env - Users connect via Settings → Connect Twitter
┌─────────────────────────────────────────────────┐
│ Frontend (Next.js 16 + React 19) │
│ Dashboard · Board · Campaigns · Ideas │
│ Analytics · Agents · Settings · Docs │
└──────────────────────┬──────────────────────────┘
│ REST + SSE
▼
┌─────────────────────────────────────────────────┐
│ Agent Gateway (Express) │
│ 50+ endpoints · SSE streaming · OAuth 2.0 │
└────┬──────────────┬──────────────┬──────────────┘
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────────┐
│ Pipeline │ │ Agent │ │ Cron │
│ Engine │ │ Runtime │ │ Scheduler │
│ multi- │ │ 4-iter │ │ campaign │
│ step │ │ tool │ │ triggers │
│ campaigns│ │ loop │ │ │
└────┬─────┘ └────┬─────┘ └──────────────┘
│ │
▼ ▼
┌─────────────────────────────────────────────────┐
│ Data Layer │
│ SQLite (per-user isolation) · FTS5 search │
│ Vector embeddings · File-based workspaces │
│ 22 tables · Brand profiles · Memory layers │
└─────────────────────────────────────────────────┘
- One gateway handles all endpoints (projects, tasks, agents, campaigns, ideas, OAuth)
- Per-user SQLite — complete data isolation between accounts
- File-based agent workspaces —
IDENTITY.md,BRAND.md,SOUL.md,MEMORY.mdprovide persistent identity - Multi-provider AI — OpenAI, Anthropic, Kimi with automatic failover
- No Twitter API keys for reading — FxTwitter + DuckDuckGo for zero-cost tweet data
# Required: at least one AI provider
OPENAI_API_KEY=sk-...
PORT=8787
CORS_ORIGINS=http://localhost:3000
# Optional: Twitter/X posting
TWITTER_CLIENT_ID=your_client_id
TWITTER_CLIENT_SECRET=your_client_secret
TWITTER_CALLBACK_URL=http://localhost:8787/auth/twitter/callbackNEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-keySee .env.example in each directory for all available options.
| Layer | Technology |
|---|---|
| Backend Runtime | Node.js 20+ (ESM), TypeScript 5.3 strict |
| Backend Framework | Express 4.18 |
| Database | SQLite with FTS5 + vector embeddings |
| AI Providers | OpenAI, Anthropic, Kimi (auto-failover) |
| Frontend Framework | Next.js 16 (App Router), React 19 |
| Frontend Styling | Tailwind CSS v4, Lucide icons |
| Auth | Supabase Auth + X OAuth 2.0 |
├── app/ # Next.js frontend
│ ├── app/ # Pages: dashboard, boards, campaigns,
│ │ # ideas, agents, analytics, settings, docs
│ ├── components/ # UI: campaigns, layouts, modals, auth
│ └── lib/api/ # API clients
│
├── backend/ # Express gateway + agent runtime
│ └── src/
│ ├── gateway/ # HTTP server (50+ endpoints + OAuth)
│ ├── agent/ # Orchestrator, loop, prompt builder
│ ├── pipeline/ # Campaign engine, self-review
│ ├── tools/builtin/ # 15 built-in tools
│ ├── memory/ # Memory read/write with provenance
│ ├── workspace/ # File-based agent workspaces
│ ├── providers/ # OpenAI, Anthropic, Kimi adapters
│ ├── database/ # SQLite with user isolation
│ ├── cron/ # Scheduled job runner
│ └── observability/ # Event tracing
│
├── CLAUDE.md # Coding standards
└── AGENTS.md # Agent protocol spec
| Table | Purpose |
|---|---|
users |
User accounts (synced from Supabase Auth) |
projects |
Brand/project registry |
agents |
AI agents per project |
tasks |
Marketing tasks with status and recurring support |
task_activity |
Activity log per task |
task_artifacts |
Deliverable files produced by agents |
memories / memories_fts |
Per-project memory with FTS5 search |
memory_vectors |
Vector embeddings for semantic search |
ideas / ideas_fts |
Inspiration inbox with FTS5 search |
brand_profiles |
Structured brand identity per project |
content_feedback |
Human feedback on artifacts (score 1-5) |
campaign_templates |
Reusable multi-step campaign definitions |
campaign_runs / campaign_step_results |
Campaign execution and step tracking |
twitter_connections |
OAuth 2.0 tokens for connected X accounts |
sessions |
Agent conversation sessions |
workspace_metadata |
Workspace config |
agent_traces |
Observability event log |
cron_jobs / cron_runs |
Scheduled jobs and execution history |
heartbeats |
Instance health records |
MIT