Files
letta-server/fern/pages/desktop/install.mdx
2025-09-09 09:35:12 -07:00

186 lines
6.2 KiB
Plaintext

---
title: Installing Letta Desktop
subtitle: Install Letta Desktop on your MacOS, Windows, or Linux machine
slug: guides/ade/desktop
---
<Note>
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).
</Note>
<img className="w-full light" src="/images/letta_desktop_screenshot.png" />
<img className="w-full dark" src="/images/letta_desktop_screenshot_dark.png" />
**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
<CardGroup>
<Card
title="Download Letta Desktop for Mac (Apple Silicon)"
icon="fa-brands fa-apple"
iconPosition="left"
href="https://downloads.letta.com/mac/dmg/arm64"
>
</Card>
<Card
title="Download Letta Desktop for Windows (x64)"
icon="fa-brands fa-windows"
iconPosition="left"
href="https://downloads.letta.com/windows/nsis/x64"
>
</Card>
<Card
title="Download Letta Desktop for Linux (x64)"
icon="fa-brands fa-linux"
iconPosition="left"
href="https://downloads.letta.com/linux/appImage/x64"
>
</Card>
</CardGroup>
## Adding LLM backends
<Note>
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.
</Note>
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 icon="square-rss" /> 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.
<img className="block w-300" src="/images/letta_desktop_integrations.png" />
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):
<img className="w-300" src="/images/letta_desktop_openai.png" />
## 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.
<AccordionGroup>
<Accordion title="Embedded server mode" icon="database">
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!
<Tabs>
<Tab title="Configuration">
To manually configure embedded mode, create or edit `~/.letta/desktop_config.json`:
```json
{
"version": "1",
"databaseConfig": {
"type": "embedded",
"embeddedType": "sqlite"
}
}
```
</Tab>
</Tabs>
</Accordion>
<Accordion title="Self-Hosted server mode (recommended)" icon="server">
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.
<Tabs>
<Tab title="Local Server">
For a Letta server running locally on your machine:
```json
{
"version": "1",
"databaseConfig": {
"type": "local",
"url": "http://localhost:8283"
}
}
```
</Tab>
<Tab title="Remote Server">
For a password-protected Letta server on a remote machine:
```json
{
"version": "1",
"databaseConfig": {
"type": "local",
"url": "https://remote-machine.com",
"token": "your-password"
}
}
```
<Note>
If your server is [password protected](/guides/selfhosting), include the `token` field. Otherwise, omit it.
</Note>
</Tab>
</Tabs>
</Accordion>
<Accordion title="Embedded PostgreSQL (deprecated)" icon="triangle-exclamation">
<Warning>
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.
</Warning>
<Tabs>
<Tab title="Configuration">
For backwards compatibility, you can still run the embedded server with PostgreSQL:
```json
{
"version": "1",
"databaseConfig": {
"type": "embedded",
"embeddedType": "pgserver"
}
}
```
</Tab>
<Tab title="Migration Guide">
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.
</Tab>
</Tabs>
</Accordion>
</AccordionGroup>
## Support
For bug reports and feature requests, contact us on [Discord](https://discord.gg/letta).