Create, review and schedule social content from your AI agent. Approval-first.
The open-source content agent.
Create on-brand videos, images and posts, then review and publish to your connected channels. Work in Genfeed or connect the AI agent you already use.
[!WARNING] Genfeed is
0.xand under active development. Breaking changes ship with an Upgrade note in the release body; semver becomes strict atv1.0.0.
Self-host it (Community), run it on your Mac (Desktop), or use the hosted product at genfeed.ai (SaaS). Same code, three deployment modes.
docker compose version), or
Docker Desktop. Both the 3-command block below and npx @genfeedai/create
need it.>=24 <25), only for npx @genfeedai/create.docker-compose package.
With Docker CE, install docker-compose-plugin from
Docker's apt repository.See troubleshooting if the app logs
P1001: Can't reach database server at postgres:5432.
curl -fLO https://github.com/genfeedai/genfeed.ai/releases/latest/download/genfeed-selfhosted.tar.gz
tar -xzf genfeed-selfhosted.tar.gz && cd genfeed-selfhosted-v*
cp .env.example .env && docker compose --env-file .env -f compose.yml up -d
| Surface | Local URL |
|---|---|
| Web UI | http://localhost:3000 |
| REST API | http://localhost:3010 |
| MCP server | http://localhost:3014 |
The bundle pins the image for its release, applies Prisma migrations, and seeds one local workspace. No Genfeed Cloud account is required.
For a first generation, do these in order:
OPENROUTER_API_KEY in .env to a real key from
openrouter.ai/keys. Text generation and the
agent need it. Without it the install-readiness check reports text
generation as not ready. Then restart with the same docker compose up -d
command so the container reads the new value.http://localhost:3000 and create your account. Sign-up is on by
default (BETTER_AUTH_ENABLED=true in .env), so the first visitor can
register. No email provider is needed for email/password.Keys are checked for real. Settings → API Keys validates each provider key
against the provider before saving, so placeholder text is rejected there.
Keys in .env are never accepted as placeholders either: an empty or
template value counts as not configured.
npx @genfeedai/create my-genfeed downloads, checksums, and starts the same
bundle. Checksums, auth, providers, and upgrades:
self-hosting guide.
Genfeed is driven by agents, so installing it is a task you can hand to one. Paste this into Claude Code, Codex, Cursor, or any agent with shell access:
Install Genfeed — the open-source content agent — on this machine, then connect
it to yourself over MCP.
1. Check Docker Engine with Compose v2 is available.
2. Start the Community bundle:
curl -fLO https://github.com/genfeedai/genfeed.ai/releases/latest/download/genfeed-selfhosted.tar.gz
tar -xzf genfeed-selfhosted.tar.gz && cd genfeed-selfhosted-v*
cp .env.example .env && docker compose --env-file .env -f compose.yml up -d
3. Wait for http://localhost:3000 to answer. Sign-up is open by default; the
seed also creates one organization (slug `default`) and brand. Put a real
OpenRouter key in `.env` as `OPENROUTER_API_KEY` and restart before
generating.
4. For Claude Code, register its dedicated content connector:
claude mcp add --transport http genfeed --scope user http://localhost:3014/mcp/claude
5. Open /mcp, select genfeed and complete browser OAuth. For other clients,
configure the standard http://localhost:3014/mcp endpoint and authorize in
the browser; a scoped API-key fallback is available for those clients.
6. List the Genfeed tools to confirm the connection, then stop.
Reference: https://github.com/genfeedai/genfeed.ai/blob/master/docs/self-hosting.md
Docs index for agents: https://docs.genfeed.ai/llms.txt
Already on the hosted product? Skip installation and authorize with browser OAuth.
Claude uses https://mcp.genfeed.ai/mcp/claude for brands, drafts, existing assets, scheduling and analytics; create media in Genfeed Playground. Other clients use https://mcp.genfeed.ai/mcp for the full toolset.
The standard MCP preset is approval-first: an agent can generate, draft, and schedule, but publishing waits for a human. What each surface exposes and why is in Agent Surface.

Mocked Playwright capture of the agent conversation shell. Fixture data, not a live generation.

Mocked Playwright capture of the Publish desk.

Mocked Playwright capture of Automate workflow authoring.
genfeed CLI, the
REST API, or any AI agent over MCPAvailability differs by deployment mode and configured provider. Read Deployment Modes and Execution Boundaries before relying on a feature for a specific distribution.
| Mode | Who it is for | How you get it |
|---|---|---|
| SaaS | Hosted multi-tenant product | app.genfeed.ai |
| Community | Self-hosters, one organization | Checksummed GitHub release bundle (quick start above) |
| Desktop | Solo creators on their own Mac | Signed macOS artifacts from desktop-v* tags |
Organization billing ships in every image and is gated at runtime
(GENFEED_CLOUD / self-host licence) — see the
billing section.
Managed inference infrastructure and Fleet/LoRA operations live outside this
public repository.
Desktop is macOS-first. Mobile and browser/IDE extension sources live in the tree; this repository does not claim a public store listing for them.
This repository is agent-native: most of its code is written by AI agents under human direction, and the tree is laid out so an agent can be productive from a cold clone.
.agents/ — durable project memory (rules, ADRs under
architecture/ADR-*.md, specs) plus build/dev skills for working on the
app. MEMORY.md is the index. skills/ at the repo root is different:
those are product/content skills the app ships.WHEN … THE SYSTEM SHALL …) so an
agent can pick one up and know what "done" means. Triage rewrites weak
criteria; it never bounces.shipcode:* labels are internal automation. They are visible on issues
and PRs; contributors never apply them.PRs are reviewed by an automated pipeline first, then by the maintainer, who alone merges.
Genfeed is a Bun/Turborepo monorepo with Next.js clients, NestJS server workspaces, PostgreSQL/Prisma persistence, and Redis/BullMQ queues. The Community image bundles the web app, API, workers, files, notifications, and MCP runtimes into one container and embeds Redis.
apps/
app/ Next.js product UI
server/ NestJS services and shared server library
desktop/app/ Electron client (macOS-first release path)
mobile/app/ Expo/React Native client source
extensions/browser/app/ Chrome extension source
extensions/ide/app/ VS Code extension source
packages/ Shared @genfeedai/* packages
docker/ Community and hosted image definitions
The public API is REST/OpenAPI. GraphQL appears only in outbound integrations such as Shopify.
The stack is declared, not debated per-PR. Replacing an item requires an accepted ADR before code lands (see GOVERNANCE.md).
| Layer | Choice | Why |
|---|---|---|
| Runtime + PM | Bun + Turborepo | One toolchain for install, scripts, tests, and bundling |
| Web | Next.js 16 + React 19 | App Router, RSC, and the same client for SaaS, Community, and Desktop |
| API | NestJS 11 | DI, guards, and tenancy/auth enforcement across services |
| Data | Prisma 7 + PostgreSQL | One schema, typed queries, migrations shipped with every release |
| Queues | Redis + BullMQ | Generation, publishing, and scheduling are background work |
| Auth | Better Auth | Self-hostable, org-aware, no vendor account required for Community |
| Quality | Biome, Vitest, Playwright | Format+lint in one pass; colocated unit tests; E2E tiers per distribution |
| Distribution | Docker Compose + GHCR | Checksummed bundle pinned to an image |
More: Architecture · Deployment Modes · Execution Boundaries · Agent Surface.
Contributions are voluntary and unpaid. Genfeed has no paid contribution program; see the contribution policy.
Audience order for this repository is self-hosters, then agent contributors,
then human contributors. Development is supported on macOS and Linux (Windows
via WSL2). Prerequisites: Node 24, Bun, Docker with Compose v2, a C/C++
toolchain plus python3 (sudo apt-get install -y build-essential python3 on
Debian/Ubuntu, xcode-select --install on macOS), and systemd on Linux for
dev:setup. Details are in
CONTRIBUTING.md.
bun install && cp .env.example .env.local
bun run env:sync local
docker compose -f docker/local/docker-compose.yml up -d postgres redis
bun run dev:setup # once per machine
bun run dev:backend:min # then, in a second terminal:
bun run dev:app # → https://app.genfeed.localhost/
Portless HTTPS is the default contributor dev path. Fixed-port dev:debug*
commands remain an optional debugging path when Portless cannot be used.
Everything else — issue forms and EARS criteria, the PR contract (squash +
conventional title + linked issue), the CLA (once per GitHub account per
CLA version), agent-authored PR disclosure, and focused verification — is in
CONTRIBUTING.md.
Governance is one maintainer plus an AI review pipeline: GOVERNANCE.md. Help and questions: SUPPORT.md. Security reports follow SECURITY.md, never a public issue.
Independently published packages and skills may declare their own license in their package metadata.
Repository docs (docs/ in this tree) are for contributors and
self-hosters: self-hosting,
deployment modes,
architecture, agent surface,
and native referral credits.
docs.genfeed.ai is the product and API
documentation for people using Genfeed. Each side links the other; neither
duplicates the other.
This listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.