miurla/morphic

An AI-powered search engine with a generative UI

TypeScript

9,159

1,852 commits

updated Oct 12, 2026

See the code

README

Morphic

An AI-powered search engine with a generative UI.

DeepWiki GitHub stars GitHub forks

Vercel OSS Program

miurla%2Fmorphic | Trendshift

Features

  • AI-powered search with grounded, cited answers
  • Generative UI — answers render rich inline components (source-credited images, grids, headings) live from a streamed JSON spec, beyond plain markdown
  • Search modes: Quick and Adaptive
  • Model selector with dynamic provider detection (OpenAI, Anthropic, Google, Ollama, Vercel AI Gateway, OpenAI-compatible providers)
  • Multiple search providers (Tavily, SearXNG, Brave, Exa)
  • Chat history stored in PostgreSQL
  • Share search results with unique URLs
  • File upload support
  • User authentication with Supabase Auth
  • Guest mode for anonymous usage
  • Docker deployment ready

Installation

The quickest way to run Morphic locally:

docker pull ghcr.io/miurla/morphic:latest

Then set up with Docker Compose:

  1. Clone the repository and configure environment:
git clone https://github.com/miurla/morphic.git
cd morphic
cp .env.local.example .env.local
  1. Edit .env.local and set at least one AI provider API key:
OPENAI_API_KEY=your_openai_key

See supported providers for other options (Anthropic, Google, Ollama, Vercel AI Gateway, OpenAI-compatible providers).

  1. Start all services:
docker compose up -d
  1. Visit http://localhost:3000 and select your model from the model selector.

Docker Compose starts PostgreSQL, Redis, SearXNG, and Morphic automatically. No additional search API key is needed — SearXNG is included.

See the Docker Guide for more options including building from source and file upload configuration.

Local Development

  1. Clone and install:
git clone https://github.com/miurla/morphic.git
cd morphic
bun install
  1. Configure environment:
cp .env.local.example .env.local

Edit .env.local and set your API keys:

OPENAI_API_KEY=your_openai_key
TAVILY_API_KEY=your_tavily_key

To enable chat history, authentication, file upload, and other features, see CONFIGURATION.md.

Auth is provided by AUTH_PROVIDER (supabase | better-auth | none). When unset it is derived from the existing environment: ENABLE_AUTH=false selects anonymous mode (none), otherwise Supabase auth is used — so existing deployments need no change. See Authentication.

For what a self-hosted instance sends outbound, and what is off by default, see PRIVACY.md.

  1. Start the dev server:
bun dev

Visit http://localhost:3000.

Deploy

Vercel

Deploy with Vercel

Contributing

We welcome contributions! Please see our Contributing Guide for details on how to get started, including local development setup.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

generative-ai
generative-ui
nextjs
ollama
react
searxng
shadcn-ui
tailwindcss
tavily
typescript
upstash
vercel-ai-sdk

miurla/morphic

An AI-powered search engine with a generative UI

TypeScript

9,159

1,852 commits

updated Oct 12, 2026

See the code

README

Morphic

An AI-powered search engine with a generative UI.

DeepWiki GitHub stars GitHub forks

Vercel OSS Program

miurla%2Fmorphic | Trendshift

Features

  • AI-powered search with grounded, cited answers
  • Generative UI — answers render rich inline components (source-credited images, grids, headings) live from a streamed JSON spec, beyond plain markdown
  • Search modes: Quick and Adaptive
  • Model selector with dynamic provider detection (OpenAI, Anthropic, Google, Ollama, Vercel AI Gateway, OpenAI-compatible providers)
  • Multiple search providers (Tavily, SearXNG, Brave, Exa)
  • Chat history stored in PostgreSQL
  • Share search results with unique URLs
  • File upload support
  • User authentication with Supabase Auth
  • Guest mode for anonymous usage
  • Docker deployment ready

Installation

The quickest way to run Morphic locally:

docker pull ghcr.io/miurla/morphic:latest

Then set up with Docker Compose:

  1. Clone the repository and configure environment:
git clone https://github.com/miurla/morphic.git
cd morphic
cp .env.local.example .env.local
  1. Edit .env.local and set at least one AI provider API key:
OPENAI_API_KEY=your_openai_key

See supported providers for other options (Anthropic, Google, Ollama, Vercel AI Gateway, OpenAI-compatible providers).

  1. Start all services:
docker compose up -d
  1. Visit http://localhost:3000 and select your model from the model selector.

Docker Compose starts PostgreSQL, Redis, SearXNG, and Morphic automatically. No additional search API key is needed — SearXNG is included.

See the Docker Guide for more options including building from source and file upload configuration.

Local Development

  1. Clone and install:
git clone https://github.com/miurla/morphic.git
cd morphic
bun install
  1. Configure environment:
cp .env.local.example .env.local

Edit .env.local and set your API keys:

OPENAI_API_KEY=your_openai_key
TAVILY_API_KEY=your_tavily_key

To enable chat history, authentication, file upload, and other features, see CONFIGURATION.md.

Auth is provided by AUTH_PROVIDER (supabase | better-auth | none). When unset it is derived from the existing environment: ENABLE_AUTH=false selects anonymous mode (none), otherwise Supabase auth is used — so existing deployments need no change. See Authentication.

For what a self-hosted instance sends outbound, and what is off by default, see PRIVACY.md.

  1. Start the dev server:
bun dev

Visit http://localhost:3000.

Deploy

Vercel

Deploy with Vercel

Contributing

We welcome contributions! Please see our Contributing Guide for details on how to get started, including local development setup.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

generative-ai
generative-ui
nextjs
ollama
react
searxng
shadcn-ui
tailwindcss
tavily
typescript
upstash
vercel-ai-sdk

Significant stargazers

(top 24 of 64)

EGOIST

13,582 followers · starred May 2024

Hayden Bleasel

1,553 followers · starred May 2024

Yuichi Tateno (secon)

559 followers · starred Apr 2024

Herrington Darkholme

2,460 followers · starred Apr 2024