Skip to content

About

A open source multi-model chat app. Chat with local or cloud models . Desktop App . Web App . with agent support

Resources

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

SortedChat

  • Cross platform, single binary, uses sqlite by default (no db server needed) or use postgres
  • Chat with multiple cloud models (OpenAI, Gemini, Claude) using API key
  • Chat with local models (via Ollama / llama.cpp) - download inside sortedchat with single click
  • Chat with docs — upload documents and chat in a project context (RAG)
  • Agents
    • Create and run agents with any of the above models
    • Support for MCP servers
  • Branch a chat — fork any conversation and explore tangents
  • Realtime audio chat — chat with models that support realtime direct audio output

Two Ways to Run

  • Web App — runs as a backend server; access via browser at http://localhost:8080
  • Desktop App — runs as a native GUI application

Run as Web App

1. Download the latest binary from GitHub Releases

Pick the binary for your platform (e.g. sortedchat-server-linux-amd64) and make it executable:

chmod +x ./sortedchat-server-linux-amd64

2. Get Google OAuth credentials

Go to Google Cloud Console → APIs & Services → Credentials → Create OAuth Client ID (Web application).
Set the authorized redirect URI to http://localhost:8080/callback.
Copy your Client ID and Client Secret.

3. Create a ui-config.json

{
  "API_URL": "http://localhost:8080",
  "API_UPLOAD_URL": "http://localhost:8080",
  "GOOGLE_CLIENT_ID": "<your-google-client-id>",
  "GOOGLE_OAUTH_URL": "https://accounts.google.com/o/oauth2/v2/auth",
  "GOOGLE_REDIRECT_URL": "http://localhost:8080/callback"
}

4. Export your Google Client Secret in the same terminal

export GOOGLE_CLIENT_SECRET=<your-google-client-secret>

5. Run the binary

./sortedchat-server-linux-amd64 --ui-config-path ./ui-config.json

Open http://localhost:8080 in your browser.

Run as Desktop App

  1. Download the latest app binary from GitHub Releases (e.g. sortedchat-app-linux-amd64)
chmod +x ./sortedchat-app-linux-amd64
./sortedchat-app-linux-amd64

The app opens directly


Run using Docker

You have to pass your own ui-config.json using a volume mount.

1. Create your ui-config.json:

{
  "API_URL": "http://localhost:8080",
  "API_UPLOAD_URL": "http://localhost:8080",
  "GOOGLE_CLIENT_ID": "<your-google-client-id>",
  "GOOGLE_OAUTH_URL": "https://accounts.google.com/o/oauth2/v2/auth",
  "GOOGLE_REDIRECT_URL": "http://localhost:8080/callback"
}

2. Run the container:

docker run -d \
  --name sortedchat \
  -e GOOGLE_CLIENT_SECRET=<your-google-client-secret> \
  -v $(pwd)/ui-config.json:/config/ui-config.json \
  -p 8080:8080 \
  ghcr.io/sortedstartup/sortedchat:latest \
  --ui-config-path /config/ui-config.json

Open http://localhost:8080 in your browser.

Development Setup

1. Clone Repository

git clone https://github.com/sortedstartup/sortedchat.git
cd sortedchat

2. Run Frontend

cd frontend
pnpm install
pnpm run dev
cd ..

3. Run Backend

cd backend
CGO_CFLAGS="-I$(pwd)/sqlite3" go run -tags "sqlite_fts5" ./mono/

Application will be available at: http://localhost:5173

4. Run Desktop App (Dev Mode)

To run the native desktop application with hot-reloading:

cd backend/mono
wails dev -tags "sqlite_fts5,dev,webkit2_41,wails" -s -v 2

About

A open source multi-model chat app. Chat with local or cloud models . Desktop App . Web App . with agent support

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages