{"id":35405078,"url":"https://github.com/fyzz-chat/fyzz-chat","last_synced_at":"2026-05-31T10:00:58.354Z","repository":{"id":298159142,"uuid":"998327900","full_name":"Fyzz-Chat/fyzz-chat","owner":"Fyzz-Chat","description":"Chat with the best AI models, all in one place.","archived":false,"fork":false,"pushed_at":"2026-05-25T07:32:00.000Z","size":3230,"stargazers_count":9,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-25T09:23:51.140Z","etag":null,"topics":["ai","chatbot"],"latest_commit_sha":null,"homepage":"https://www.fyzz.chat/chat","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fyzz-Chat.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-06-08T11:29:16.000Z","updated_at":"2026-05-25T07:30:46.000Z","dependencies_parsed_at":"2026-02-15T19:12:52.835Z","dependency_job_id":null,"html_url":"https://github.com/Fyzz-Chat/fyzz-chat","commit_stats":null,"previous_names":["fyzz-chat/fyzz-chat"],"tags_count":62,"template":false,"template_full_name":null,"purl":"pkg:github/Fyzz-Chat/fyzz-chat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fyzz-Chat%2Ffyzz-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fyzz-Chat%2Ffyzz-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fyzz-Chat%2Ffyzz-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fyzz-Chat%2Ffyzz-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fyzz-Chat","download_url":"https://codeload.github.com/Fyzz-Chat/fyzz-chat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fyzz-Chat%2Ffyzz-chat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33726719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","chatbot"],"created_at":"2026-01-02T12:40:01.588Z","updated_at":"2026-05-31T10:00:58.346Z","avatar_url":"https://github.com/Fyzz-Chat.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"src/app/icon.svg\" alt=\"\" width=\"56\" height=\"56\" /\u003e\n\n# Fyzz Chat\n\n### Chat with the best AI models, all in one place\n\nBring your own keys, deploy in one click, or use the hosted version.\n\n[![Build](https://img.shields.io/github/actions/workflow/status/Fyzz-Chat/fyzz-chat/prod.yml?label=build)](https://github.com/Fyzz-Chat/fyzz-chat/actions/workflows/prod.yml) [![Release](https://img.shields.io/github/v/release/Fyzz-Chat/fyzz-chat?color=3b82f6)](https://github.com/Fyzz-Chat/fyzz-chat/releases) [![License](https://img.shields.io/github/license/Fyzz-Chat/fyzz-chat)](LICENSE) [![Docker](https://img.shields.io/badge/ghcr.io-fyzz--chat-0b0b0b?logo=docker\u0026logoColor=white)](https://github.com/Fyzz-Chat/fyzz-chat/pkgs/container/fyzz-chat) \n\n\u003ca href=\"https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FFyzz-Chat%2Ffyzz-chat\u0026env=BETTER_AUTH_SECRET,DATABASE_URL,OPENAI_API_KEY\u0026envDescription=Set%20a%20Better%20Auth%20secret%20(at%20least%2032%20characters%20long%20random%20string)%2C%20and%20your%20database%20URL.\u0026project-name=fyzz-chat\u0026repository-name=fyzz-chat\"\u003e\u003cimg src=\"https://vercel.com/button\" alt=\"Deploy with Vercel\" height=\"32\" /\u003e\u003c/a\u003e\u0026nbsp;\u003ca href=\"https://coolify.io\"\u003e\u003cimg src=\"https://img.shields.io/badge/Deploy%20to%20Coolify-coming%20soon-9ca3af?labelColor=8b5cf6\u0026logo=coolify\u0026logoColor=white\" alt=\"Deploy to Coolify (coming soon)\" height=\"28\" /\u003e\u003c/a\u003e\n\n\u003ca href=\"https://www.fyzz.chat/chat\"\u003e\u003cimg src=\"https://img.shields.io/badge/Try%20the%20hosted%20version-→-3b82f6?style=for-the-badge\u0026labelColor=3b82f6\" alt=\"Try the hosted version →\" height=\"40\" /\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n\n---\n\n## Why Fyzz Chat\n\n- **One chat for every model.** OpenAI, Anthropic, Google, xAI, Perplexity, Fireworks, Azure — and anything else the [Vercel AI SDK](https://ai-sdk.dev/docs/introduction) supports.\n- **Tools, MCP, and the web built in.** Function calling, [MCP](https://modelcontextprotocol.io) server support, and web browsing without extra setup.\n- **Self-host or hosted.** One-click Vercel, the official Docker image, or AWS CloudFormation — or skip setup with the hosted plan at [fyzz.chat](https://www.fyzz.chat/chat).\n\n`OpenAI` · `Anthropic` · `Google` · `xAI` · `Perplexity` · `Fireworks` · `Azure`\n\n## Quick start\n\n\u003e [!NOTE]\n\u003e Fyzz Chat needs a PostgreSQL database wherever you deploy it.\n\n### Vercel\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FFyzz-Chat%2Ffyzz-chat\u0026env=BETTER_AUTH_SECRET,DATABASE_URL,OPENAI_API_KEY\u0026envDescription=Set%20a%20Better%20Auth%20secret%20(at%20least%2032%20characters%20long%20random%20string)%2C%20and%20your%20database%20URL.\u0026project-name=fyzz-chat\u0026repository-name=fyzz-chat)\n\n### Docker\n\n```bash\ndocker run -p 3000:3000 \\\n  -e BETTER_AUTH_SECRET=... \\\n  -e BETTER_AUTH_URL=https://your-domain.com \\\n  -e DATABASE_URL=postgres://... \\\n  -e DIRECT_DATABASE_URL=postgres://... \\\n  -e OPENAI_API_KEY=... \\\n  ghcr.io/fyzz-chat/fyzz-chat:latest\n```\n\nTo build your own image, run `bun run build:standalone` and use the resulting standalone output.\n\n### Local development\n\n```bash\nbun install\ncp .env.sample .env             # then fill in the values (OPENAI_API_KEY at minimum)\ndocker compose up -d database   # start a local Postgres on port 5433\nbun db:migrate                  # apply Prisma migrations to the local DB\nbun dev                         # start the dev server on http://localhost:3000\n```\n\nTo preview transactional emails: `bun run dev:email` (port 3001).\n\n## Hosted version\n\nDon't want to self-host? [fyzz.chat](https://www.fyzz.chat/chat) runs the same project, fully managed — zero setup, automatic updates. Self-hosting stays free and supported; the hosted plan is just there if you'd rather not manage infrastructure.\n\n## Self-hosting\n\nTwo ways to self-host:\n\n- Deploy from the repository as a Next.js project.\n- Use the [Docker image](https://github.com/Fyzz-Chat/fyzz-chat/pkgs/container/fyzz-chat) (a containerized version of the Next.js project).\n\n### Database\n\nFyzz Chat uses Prisma with PostgreSQL. Before the app can start, run the migrations (with `DATABASE_URL` set):\n\n```bash\nbun run db:deploy\n# or\nbunx prisma migrate deploy\n```\n\n### Environment variables\n\n**Required:**\n\n- `BETTER_AUTH_SECRET` — random string, at least 32 characters.\n- `BETTER_AUTH_URL` — public URL of your application.\n- `DATABASE_URL` — pooled Postgres URL.\n- `DIRECT_DATABASE_URL` — direct (non-pooled) Postgres URL.\n- `OPENAI_API_KEY` — create one [here](https://platform.openai.com/api-keys).\n\n**Authentication (optional):**\n\n- `ANONYMOUS_LOGIN` — allow single-click anonymous logins.\n- `AUTHORIZED_EMAIL_DOMAINS` — comma-separated allow-list of email domains.\n- `GOOGLE_CLIENT_ID` / `GOOGLE_CLIENT_SECRET` — enable Google sign-in.\n\n**Additional model providers (optional):**\n\n- `ANTHROPIC_API_KEY` — Anthropic ([create](https://platform.claude.com/settings/keys))\n- `XAI_API_KEY` — xAI ([create](https://console.x.ai))\n- `GOOGLE_GENERATIVE_AI_API_KEY` — Google AI ([create](https://aistudio.google.com/app/api-keys))\n- `PERPLEXITY_API_KEY` — Perplexity ([create](https://www.perplexity.ai/account/api/keys); you may need to create an [API group](https://www.perplexity.ai/account/api/group?create=true) first)\n- `FIREWORKS_API_KEY` — Fireworks ([create](https://app.fireworks.ai/settings/users/api-keys))\n\nWithout these, the app still runs but only OpenAI models are available.\n\n**File uploads to S3 + CloudFront (optional):**\n\n- `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION`, `AWS_UPLOADS_BUCKET`\n- `AWS_CLOUDFRONT_KEY_PAIR_ID`\n- `AWS_CLOUDFRONT_PRIVATE_KEY` — private key with `|` as line breaks (deprecated).\n- `AWS_CLOUDFRONT_PRIVATE_KEY_BASE64` — base64-encoded private key. Convert with `cat key.pem | base64 \u003e base64_key.pem`.\n- `AWS_CLOUDFRONT_DISTRIBUTION_DOMAIN` — falls back to `AWS_UPLOADS_BUCKET` if your bucket name matches the distribution domain.\n\n\u003e [!WARNING]\n\u003e If any `AWS_` variable is missing, uploads are persisted in the database instead of S3.\n\n### AWS (CloudFormation)\n\nTwo ready-made stacks live in [`aws/`](aws/) — they create an ECS cluster with RDS PostgreSQL, an Application Load Balancer, and the necessary networking.\n\n- [`cloudformation-ec2.json`](aws/cloudformation-ec2.json) — ECS on EC2.\n- [`cloudformation-fargate.json`](aws/cloudformation-fargate.json) — ECS on Fargate.\n\nTo visualize either template, open the [AWS CloudFormation Infrastructure Composer](https://eu-central-1.console.aws.amazon.com/composer/home), choose **Create project → Template tab → JSON**, and paste the contents.\n\n**Prerequisites — store secrets in AWS Secrets Manager:**\n\n1. Go to **Secrets Manager → Store a new secret → Other type of secret → Plaintext**.\n2. Create `fyzz-chat/better-auth-secret` (random string, 32+ chars).\n3. Create `fyzz-chat/openai-api-key` with your OpenAI key.\n4. Note the ARNs — you'll pass them as stack parameters.\n\n**Deploy:**\n\n1. **CloudFormation → Create stack → With new resources (standard)**.\n2. Upload the chosen template, name the stack `fyzz-chat`.\n3. Fill in:\n   - `BetterAuthSecretArn` — ARN from above.\n   - `OpenaiApiKeySecretArn` — ARN from above.\n   - `BetterAuthUrl` — your public URL (e.g. `https://your-domain.com`).\n4. Review and create. Stack creation takes ~10–15 minutes.\n\n\u003e [!NOTE]\n\u003e Deleting the stack does **not** delete the database. Disable deletion protection and remove it manually if you want it gone.\n\n**Run database migrations:**\n\n1. **ECS → Clusters → your cluster → Tasks tab → Run new task**.\n2. Configure: task definition family `fyzz-chat-migration`, launch type Fargate.\n3. Networking: VPC `fyzz-chat-vpc`, security group `fyzz-chat-ecs-sg`.\n4. **Create** and wait for completion.\n\n**Enable HTTPS (optional):**\n\n1. **Certificate Manager → Request a certificate** for your domain.\n2. Add the DNS validation records and wait for validation.\n3. **CloudFormation → your stack → Update**, set the `CertificateArn` parameter, and complete the update.\n\nThe template auto-redirects HTTP to HTTPS once a certificate is attached.\n\n## Contributing\n\nInstall [Bun](https://bun.sh):\n\n```bash\ncurl -fsSL https://bun.sh/install | bash\n# Windows:\npowershell -c \"irm bun.sh/install.ps1 | iex\"\n```\n\nThen follow [Local development](#local-development) above. Other package managers (npm, yarn, pnpm) work too.\n\n### Useful scripts\n\n| Script | What it does |\n|---|---|\n| `bun dev` | Start the dev server |\n| `bun build` | Build for production |\n| `bun build:standalone` | Build for Docker / standalone deploy |\n| `bun start` | Run the production build |\n| `bun db:migrate` | Apply Prisma migrations (development) |\n| `bun db:deploy` | Apply Prisma migrations (production) |\n| `bun test` | Run unit tests |\n| `bun test:integration` | Run integration tests |\n| `bun check-write` | Lint + format with Biome |\n| `bun type-check` | Type-check with TypeScript |\n| `bun dev:email` | Preview transactional emails (port 3001) |\n\n## Stack\n\n[Next.js](https://nextjs.org) · [Bun](https://bun.sh) · [Prisma](https://www.prisma.io) · [Vercel AI SDK](https://ai-sdk.dev) · [Better Auth](https://www.better-auth.com) · [tRPC](https://trpc.io) · [Tailwind CSS](https://tailwindcss.com) · [shadcn/ui](https://ui.shadcn.com) · [Biome](https://biomejs.dev)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\nIf Fyzz Chat is useful to you, consider [starring the repo](https://github.com/Fyzz-Chat/fyzz-chat/stargazers) — it helps others find it.\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffyzz-chat%2Ffyzz-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffyzz-chat%2Ffyzz-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffyzz-chat%2Ffyzz-chat/lists"}