---
title: Installing Letta Desktop
subtitle: Install Letta Desktop on your MacOS, Windows, or Linux machine
slug: guides/ade/desktop
---
Letta Desktop is currently in **beta**.
For a more stable development experience, we recommend using the [cloud ADE](/guides/ade/browser) with [Docker](/guides/selfhosting), or [Letta Cloud](/guides/cloud/overview).
For support, join our community [Discord server](https://discord.gg/letta).
**Letta Desktop** allows you to run the ADE (Agent Development Environment) as a local application.
Letta Desktop also bundles a built-in Letta server, so can run Letta Desktop standalone, or you can connect it to a self-hosted Letta server.
## Download Letta Desktop
## Adding LLM backends
The integrations page is only available when using the embedded Letta server.
If you are using a self-hosted Letta server, you can add LLM backends by editing the environment variables when you launch your server.
See [self-hosting](/guides/selfhosting) for more information.
The Letta server can be connected to various LLM API backends.
You can add additional LLM API backends by opening the integrations panel (clicking the icon).
When you configure a new integration (by setting the environment variable in the dialog), the Letta server will be restarted to load the new LLM API backend.
You can also edit the environment variable file directly, located at `~/.letta/env`.
For this quickstart demo, we'll add an OpenAI API key (once we enter our key and **click confirm**, the Letta server will automatically restart):
## Configuration Modes
Letta Desktop can run in two primary modes, which can be configured from the settings menu in the app, or by manually editing the `~/.letta/desktop_config.json` file.
In this mode Letta Desktop runs its own embedded Letta server with a SQLite database.
No additional setup is required - just install Letta Desktop and start creating stateful agents!
To manually configure embedded mode, create or edit `~/.letta/desktop_config.json`:
```json
{
"version": "1",
"databaseConfig": {
"type": "embedded",
"embeddedType": "sqlite"
}
}
```
Connect Letta Desktop to your own self-hosted Letta server.
You can use this mode to connect to a Letta server running locally (e.g. on `localhost:8283` via Docker), or to a Letta server running on a remote machine.
For a Letta server running locally on your machine:
```json
{
"version": "1",
"databaseConfig": {
"type": "local",
"url": "http://localhost:8283"
}
}
```
For a password-protected Letta server on a remote machine:
```json
{
"version": "1",
"databaseConfig": {
"type": "local",
"url": "https://remote-machine.com",
"token": "your-password"
}
}
```
If your server is [password protected](/guides/selfhosting), include the `token` field. Otherwise, omit it.
This mode is deprecated and will be removed in a future release. See our migration guide if you have existing data in PostgreSQL from Letta Desktop you want to preserve.
For backwards compatibility, you can still run the embedded server with PostgreSQL:
```json
{
"version": "1",
"databaseConfig": {
"type": "embedded",
"embeddedType": "pgserver"
}
}
```
If you have existing data in the embedded PostgreSQL database, you can migrate to a Docker-based Letta server that reads from your existing data:
1. First, locate your PostgreSQL data directory (by default for old versions of Letta Desktop this is `~/.letta/desktop_data`)
2. Launch a Docker Letta server with your existing data mounted:
```bash
# Mount your existing Desktop PostgreSQL data to the Docker container
docker run \
-v ~/.letta/desktop_data:/var/lib/postgresql/data \
-p 8283:8283 \
-e OPENAI_API_KEY="your_openai_api_key" \
-e ANTHROPIC_API_KEY="your_anthropic_api_key" \
letta/letta:latest
```
3. Update your Letta Desktop configuration to connect to this self-hosted server:
```json
{
"version": "1",
"databaseConfig": {
"type": "local",
"url": "http://localhost:8283"
}
}
```
Your agents and data will be preserved and accessible through the Docker-based server.
## Support
For bug reports and feature requests, contact us on [Discord](https://discord.gg/letta).