# Manifest - [Manifest documentation](https://manifest.build/docs/introduction.md): Open-source LLM router for agents. Connect your subscriptions, API keys, and local models to any harness through one endpoint, with fallbacks and spend limits. - [Self-hosting Manifest](https://manifest.build/docs/deploy.md): Every way to run your own Manifest instance: Docker on your machine, a managed platform like Railway, your own AWS or GCP account, or a server panel like Coolify. - [Self-hosting with Docker](https://manifest.build/docs/self-hosted.md): Run Manifest on your own machine with Docker. Covers the quick installer, docker-compose, bringing your own PostgreSQL, signed images, upgrades, and backups. - [Deploy Manifest on Railway](https://manifest.build/docs/deploy/railway.md): Deploy Manifest on Railway with the published template, including the Manifest service and PostgreSQL. - [Deploy Manifest on Render](https://manifest.build/docs/deploy/render.md): Deploy Manifest on Render with the repository Blueprint, including a web service and Render PostgreSQL. - [Deploy Manifest on DigitalOcean](https://manifest.build/docs/deploy/digitalocean.md): Deploy Manifest on DigitalOcean App Platform with the Deploy to DigitalOcean flow and a Dev PostgreSQL database. - [Deploy Manifest on Fly.io](https://manifest.build/docs/deploy/fly.md): Deploy Manifest on Fly.io from the public Docker image with Fly Postgres, generated secrets, and HTTPS. - [Deploy Manifest on Heroku](https://manifest.build/docs/deploy/heroku.md): Deploy Manifest on Heroku with a Deploy to Heroku button, a container-stack web dyno, and Heroku Postgres. - [Deploy Manifest on Koyeb](https://manifest.build/docs/deploy/koyeb.md): Deploy Manifest on Koyeb from the public Docker image with a Koyeb web service and PostgreSQL connection string. - [Deploy Manifest on AWS](https://manifest.build/docs/deploy/aws.md): Deploy Manifest on AWS with CloudFormation, ECS Fargate, RDS PostgreSQL, Secrets Manager, and an Application Load Balancer. - [Deploy Manifest on GCP](https://manifest.build/docs/deploy/gcp.md): Deploy Manifest on Google Cloud with Cloud Run, Cloud SQL for PostgreSQL, Secret Manager, and the Cloud Shell DeployStack flow. - [Deploy Manifest on Coolify](https://manifest.build/docs/deploy/coolify.md): Deploy Manifest on Coolify with a Docker Compose service stack, generated secrets, and a private PostgreSQL container. - [Deploy Manifest on Easypanel](https://manifest.build/docs/deploy/easypanel.md): Deploy Manifest on Easypanel with a Docker image app service, PostgreSQL, generated secrets, and HTTPS. - [LLM Gateway](https://manifest.build/docs/llm-gateway.md): Every request passes through the gateway: limits check it, routing picks the model, and fallback catches it when that model fails. - [Autofix](https://manifest.build/docs/autofix.md): Repair a malformed request and resend it once, before the fallback chain runs. Turn it on per harness. - [Observability](https://manifest.build/docs/observability.md): See what every harness spent, which models served it, and what failed. Set email alerts when spending crosses a threshold. - [Request logs](https://manifest.build/docs/request-logs.md): Store the full request and response body of every provider attempt, and read them back as a conversation from the Requests page. One toggle per harness. - [CLI](https://manifest.build/docs/cli.md): Manage Manifest from the terminal: create harnesses, connect providers, set routing, and read request logs without the dashboard. - [API key providers](https://manifest.build/docs/providers/api-key-providers.md): Bring your own API key for OpenAI, Anthropic, Google, xAI, DeepSeek, Mistral, Groq, Cerebras, AWS Bedrock, NVIDIA NIM, OpenRouter, Hugging Face, and more. - [Subscription-based providers](https://manifest.build/docs/providers/subscription-based-providers.md): Reuse a paid plan you already have: ChatGPT, Claude, Gemini, Grok, GitHub Copilot, GLM Coding Plan, Kimi, Mistral Vibe, and more. - [Custom providers](https://manifest.build/docs/providers/custom-providers.md): Plug in any OpenAI- or Anthropic-compatible endpoint, including vLLM, TGI, LocalAI, or your own internal service. - [Local models](https://manifest.build/docs/providers/local-models.md): Run any GGUF model on your own hardware with Ollama, LM Studio, or llama.cpp. No API costs, no data leaving your machine. - [n8n](https://manifest.build/docs/integrations/n8n.md): Use Manifest as the chat model behind n8n AI Agents, or call it directly from a workflow, with the n8n-nodes-manifest community node. - [MCP server](https://manifest.build/docs/integrations/mcp.md): Connect Claude, Cursor, VS Code, and other MCP clients to Manifest over a remote Model Context Protocol server with OAuth 2.1, then manage harnesses, providers, routing, and request logs from your AI client. - [API](https://manifest.build/docs/reference/api.md): The Manifest proxy speaks both OpenAI and Anthropic. Endpoints, auth, streaming, and error responses. - [Headers](https://manifest.build/docs/reference/headers.md): The request headers Manifest reads and the X-Manifest-* response headers it returns, with what each one does. - [Environment variables](https://manifest.build/docs/reference/environment-variables.md): Every environment variable Manifest reads at startup, grouped by what it controls: database, auth, rate limiting, email, OAuth, telemetry. - [Data and telemetry](https://manifest.build/docs/reference/telemetry.md): What Manifest stores about your requests, what's optional, and the anonymous daily report each self-hosted install sends. Includes the full field list and how to opt out. - [Manifest error codes](https://manifest.build/docs/errors.md): Reference for every Manifest proxy error code (M001-M500). What you saw, why it happened, and how to fix it. Covers auth, providers, limits, validation. - [Glossary](https://manifest.build/docs/reference/glossary.md): Definitions for harness, request, attempt, Autofix, tier, default and custom routing, direct routing, fallback chain, auto, and provider auth types. - [CLAUDE](https://manifest.build/docs/CLAUDE.md) - [M001: Missing Authorization header](https://manifest.build/docs/errors/M001.md): Manifest error M001 fires when /v1/chat/completions is called without an Authorization header. Returns HTTP 401. Fix: send `Authorization: Bearer mnfst_`. - [M002: Empty Bearer token](https://manifest.build/docs/errors/M002.md): Manifest error M002 fires when the Authorization header is set but the Bearer token is blank. Often an unexpanded env var. Returns HTTP 401. - [M003: Invalid key format](https://manifest.build/docs/errors/M003.md): Manifest error M003 fires when the Bearer token doesn't start with mnfst_. Often a provider key (sk-...) pasted in the wrong field. Returns HTTP 401. - [M004: Key expired](https://manifest.build/docs/errors/M004.md): Manifest error M004 fires when the API key you sent is past its expiration date. Returns HTTP 401. Fix: rotate the key in the dashboard. - [M005: Key not recognized](https://manifest.build/docs/errors/M005.md): Manifest error M005 fires when the mnfst_ key has the right shape but no matching harness exists. Often a rotated or deleted key. Returns HTTP 401. - [M100: Provider API key missing](https://manifest.build/docs/errors/M100.md): Manifest error M100 fires when routing picks a provider that has no API key for this harness (OpenAI, Anthropic, Gemini, OpenRouter, etc). Fix: add the key from Providers → Usage-based. - [M101: No providers configured](https://manifest.build/docs/errors/M101.md): Manifest error M101 fires when an authenticated harness has zero providers connected. Common on first run. Fix: connect a provider from the Providers section of the dashboard. - [M102: Provider subscription credentials unusable](https://manifest.build/docs/errors/M102.md): Manifest error M102 fires when routing picks a subscription provider whose OAuth or refresh credentials cannot be used. Fix: reconnect the subscription from Providers → Subscriptions. - [M200: Usage limit exceeded](https://manifest.build/docs/errors/M200.md): Manifest error M200 fires when a harness crosses a cost or token cap you configured on the Limits page. It comes back as an HTTP 200 assistant message, not a 429. Fix: raise the threshold or wait for the period to reset. - [M201: Per-user rate limit exceeded](https://manifest.build/docs/errors/M201.md): Manifest error M201 fires when one user sends more than 200 requests per minute. Returns HTTP 429. Fix: back off and retry. - [M202: Per-IP rate limit exceeded](https://manifest.build/docs/errors/M202.md): Manifest error M202 fires when one IP sends more than 500 requests per minute across all harnesses. Returns HTTP 429. Fix: back off and stagger workers. - [M203: Concurrency limit exceeded](https://manifest.build/docs/errors/M203.md): Manifest error M203 fires when a workspace has more than 10 in-flight requests. Returns HTTP 429. Common with parallel streaming. Fix: reduce parallelism. - [M204: Monthly request limit reached](https://manifest.build/docs/errors/M204.md): Manifest error M204 fires when a Manifest Cloud Free workspace uses all monthly requests. Returns HTTP 402 with PLAN_LIMIT_REQUESTS. Fix: upgrade to Pro or wait for the monthly reset. - [M300: Missing messages array](https://manifest.build/docs/errors/M300.md): Manifest error M300 fires when the /v1/chat/completions body has no messages array (missing, not an array, or empty). Returns HTTP 400. - [M302: Model not available](https://manifest.build/docs/errors/M302.md): Manifest error M302 fires when an explicit model ID is not available for the authenticated harness. Fix: use GET /v1/models or make the provider available for this harness. - [M303: Local provider unavailable on Manifest Cloud](https://manifest.build/docs/errors/M303.md): Manifest error M303 fires when a Manifest Cloud request routes to Ollama, LM Studio, or llama.cpp. Returns HTTP 400. Fix: self-host, or expose the runtime as a custom provider. - [M500: Internal server error](https://manifest.build/docs/errors/M500.md): Manifest error M500 is a generic 500 fallback for unhandled errors in the proxy. Usually transient. Fix: retry, then check backend logs on self-hosted. - [AUDIENCE](https://manifest.build/docs/references/AUDIENCE.md) - [Backlog](https://manifest.build/docs/references/backlog.md) - [CASE MATRIX](https://manifest.build/docs/references/CASE-MATRIX.md) - [Decisions](https://manifest.build/docs/references/decisions.md) - [ISSUE FORMAT](https://manifest.build/docs/references/ISSUE-FORMAT.md) - [Learnings](https://manifest.build/docs/references/learnings.md) - [PHASE 2](https://manifest.build/docs/references/PHASE-2.md)