---
url: https://lettuceai.app/
title: "LettuceAI — Free Open-Source AI Roleplay App"
description: "Free, open-source AI roleplay and storytelling app with text-to-speech, scene-aware image generation, long-term memory, group chats, lorebooks, custom characters, and 20+ AI providers. Cross-platform, private, BYOK."
---

![](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiENGGaRbiA3hVcAIWJ9gtzT0D1KL6vpeBY7XZf)

[Open Source & Free](https://github.com/LettuceAI)

# AI roleplay  
with total freedom

No filters, no restrictions, no accounts. Bring your own API keys from 20+ providers — your characters, your rules, your device. Fully open source.

Download — It's Free [Source](https://github.com/LettuceAI)

Android macOS Windows Linux

Cassian 

18 CA 

Scroll

—stars

—commits

Open source · Privacy-first · No accounts

## Characters that remember everything

Not just last-message context. LettuceAI tracks plot events, relationships, character traits, and world details across your entire conversation history.

![LettuceAI Memory Manager — context summaries and tagged memories](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiE5fDys4Vkj1OFweHxr0VqnPGAcDWCdgEpml3K)

Dynamic Memory

Automatically extracts and stores key details from every conversation turn.

Tagged & Organized

Memories are categorized — plot events, relationships, world details, character traits.

Smart Retrieval

The right memories surface at the right time, keeping responses contextually aware.

Heat Lifecycle

Memories decay naturally over time. Relevant ones stay warm, stale ones fade out.

Group Chats Image Generation System Prompts 

## Multiple characters, one story

Build scenes with multiple AI characters that each maintain their own personality, voice, and memory. Set the dynamics and watch them interact.

Multi-Character

Add as many characters as you want to a single conversation.

@ Mentions

Direct messages to specific characters or let them all respond.

![LettuceAI Group Chat — multiple characters in one conversation](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiES4I8xsWfjxYOkrVMn2NmPXpy46uELTt0boAJ)

Independent Memory

Each character remembers their own interactions and relationships.

Scene Control

Define starting scenarios, turn order, and character dynamics.

![LettuceAI Group Chat — multiple characters in one conversation](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiES4I8xsWfjxYOkrVMn2NmPXpy46uELTt0boAJ)

Multi-Character

Add as many characters as you want to a single conversation.

@ Mentions

Direct messages to specific characters or let them all respond.

Independent Memory

Each character remembers their own interactions and relationships.

Scene Control

Define starting scenarios, turn order, and character dynamics.

Everything else you need

### Discovery

Browse thousands of community-created characters. Import, remix, and make them yours.

### Text-to-Speech

4+ TTS providers. Custom voices, auto-play, and per-character voice settings.

### Lorebooks

World-building entries that activate contextually based on keywords and conditions.

### Reply Helper

AI-suggested responses when you're stuck — pick from multiple options or regenerate.

### Personas

Define how you appear to your characters — name, backstory, writing style.

### Device Sync

Sync characters and chats across all your devices over local network.

### Fully Private

No accounts, no telemetry, no data collection. Everything stays on device.

### Open Source

Transparent, community-driven, AGPL-3.0. Audit every line of code.

"

> I stopped noticing the app and just talk. Which is a good sign.

— SleepyBadger, Reddit

Providers

## Every major AI provider

Connect your own API keys. No middleman, no markup, switch between models instantly.

![OpenAI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiE9OAPzonOqX2jKv1NyFE6ATZbzRdLmxlchJVB)

![Anthropic](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEdtOF0SmpPCcV0eNMqHE2pOGjTY185FLrRZvs)

![Google Gemini](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEbdvBYBrSL7tJui189YNX2TDB4wegF6kGIlzn)

![DeepSeek](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEhgsm66Yy8QKsz1bUcRixZ7tHBO4qoCruLYPV)

![Mistral AI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEBzLzYHXeaxpi2W1v7t9cGgFBwm4kZdrEyDTJ)

![Groq](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEx2PR3XUkw2MN5G1QtVTFbq6Audpci7RZUDXS)

![xAI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEB1vGLfXeaxpi2W1v7t9cGgFBwm4kZdrEyDTJ)

![OpenRouter](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEayZC9kk2YCJtugBOc6lW5rpjmvPS7IeH3FG1)

![Moonshot](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEoE50kUxgeUAy1BckbI0oS8FO2ihTxv7GqEl9)

![Qwen](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEY7kb289CRKc9fpLjm375Owaivx1hsy0nkVrM)

![Ananas AI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEI3u3xzAH5ZchmM4LX9xYKk8DP0ard7TuUASv)

![Zai](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiErMY9gUBKjANVFCI4TD3ie1sRfLdyMgv6wHbh)

![Featherless](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiENVcWbuA3hVcAIWJ9gtzT0D1KL6vpeBY7XZfR)

![NanoGPT](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiE9vfRvjnOqX2jKv1NyFE6ATZbzRdLmxlchJVB)

![OpenAI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiE9OAPzonOqX2jKv1NyFE6ATZbzRdLmxlchJVB)

![Anthropic](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEdtOF0SmpPCcV0eNMqHE2pOGjTY185FLrRZvs)

![Google Gemini](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEbdvBYBrSL7tJui189YNX2TDB4wegF6kGIlzn)

![DeepSeek](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEhgsm66Yy8QKsz1bUcRixZ7tHBO4qoCruLYPV)

![Mistral AI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEBzLzYHXeaxpi2W1v7t9cGgFBwm4kZdrEyDTJ)

![Groq](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEx2PR3XUkw2MN5G1QtVTFbq6Audpci7RZUDXS)

![xAI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEB1vGLfXeaxpi2W1v7t9cGgFBwm4kZdrEyDTJ)

![OpenRouter](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEayZC9kk2YCJtugBOc6lW5rpjmvPS7IeH3FG1)

![Moonshot](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEoE50kUxgeUAy1BckbI0oS8FO2ihTxv7GqEl9)

![Qwen](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEY7kb289CRKc9fpLjm375Owaivx1hsy0nkVrM)

![Ananas AI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEI3u3xzAH5ZchmM4LX9xYKk8DP0ard7TuUASv)

![Zai](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiErMY9gUBKjANVFCI4TD3ie1sRfLdyMgv6wHbh)

![Featherless](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiENVcWbuA3hVcAIWJ9gtzT0D1KL6vpeBY7XZfR)

![NanoGPT](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiE9vfRvjnOqX2jKv1NyFE6ATZbzRdLmxlchJVB)

![OpenAI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiE9OAPzonOqX2jKv1NyFE6ATZbzRdLmxlchJVB)

![Anthropic](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEdtOF0SmpPCcV0eNMqHE2pOGjTY185FLrRZvs)

![Google Gemini](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEbdvBYBrSL7tJui189YNX2TDB4wegF6kGIlzn)

![DeepSeek](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEhgsm66Yy8QKsz1bUcRixZ7tHBO4qoCruLYPV)

![Mistral AI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEBzLzYHXeaxpi2W1v7t9cGgFBwm4kZdrEyDTJ)

![Groq](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEx2PR3XUkw2MN5G1QtVTFbq6Audpci7RZUDXS)

![xAI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEB1vGLfXeaxpi2W1v7t9cGgFBwm4kZdrEyDTJ)

![OpenRouter](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEayZC9kk2YCJtugBOc6lW5rpjmvPS7IeH3FG1)

![Moonshot](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEoE50kUxgeUAy1BckbI0oS8FO2ihTxv7GqEl9)

![Qwen](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEY7kb289CRKc9fpLjm375Owaivx1hsy0nkVrM)

![Ananas AI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEI3u3xzAH5ZchmM4LX9xYKk8DP0ard7TuUASv)

![Zai](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiErMY9gUBKjANVFCI4TD3ie1sRfLdyMgv6wHbh)

![Featherless](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiENVcWbuA3hVcAIWJ9gtzT0D1KL6vpeBY7XZfR)

![NanoGPT](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiE9vfRvjnOqX2jKv1NyFE6ATZbzRdLmxlchJVB)

![OpenAI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiE9OAPzonOqX2jKv1NyFE6ATZbzRdLmxlchJVB)

![Anthropic](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEdtOF0SmpPCcV0eNMqHE2pOGjTY185FLrRZvs)

![Google Gemini](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEbdvBYBrSL7tJui189YNX2TDB4wegF6kGIlzn)

![DeepSeek](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEhgsm66Yy8QKsz1bUcRixZ7tHBO4qoCruLYPV)

![Mistral AI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEBzLzYHXeaxpi2W1v7t9cGgFBwm4kZdrEyDTJ)

![Groq](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEx2PR3XUkw2MN5G1QtVTFbq6Audpci7RZUDXS)

![xAI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEB1vGLfXeaxpi2W1v7t9cGgFBwm4kZdrEyDTJ)

![OpenRouter](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEayZC9kk2YCJtugBOc6lW5rpjmvPS7IeH3FG1)

![Moonshot](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEoE50kUxgeUAy1BckbI0oS8FO2ihTxv7GqEl9)

![Qwen](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEY7kb289CRKc9fpLjm375Owaivx1hsy0nkVrM)

![Ananas AI](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiEI3u3xzAH5ZchmM4LX9xYKk8DP0ard7TuUASv)

![Zai](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiErMY9gUBKjANVFCI4TD3ie1sRfLdyMgv6wHbh)

![Featherless](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiENVcWbuA3hVcAIWJ9gtzT0D1KL6vpeBY7XZfR)

![NanoGPT](https://lhdgeo5fms.ufs.sh/f/m0TBUtMLsaiE9vfRvjnOqX2jKv1NyFE6ATZbzRdLmxlchJVB)

\+ any OpenAI-compatible endpoint

## Free. Forever.

No premium tier, no usage limits, no bait-and-switch. You bring your own API keys and pay the providers directly. We don't see your data, your conversations, or your keys.

[Download Now](/download)

Community

## What users are saying

"i was expecting another hype app but its actually usable long term"

RU

RuddySetup

"i keep coming back to same character and it still makes sense"

RE

RevolvingSquid

"i was expecting another hype app but its actually usable long term"

RU

RuddySetup

"i keep coming back to same character and it still makes sense"

RE

RevolvingSquid

"been using this for some weeks now and it didnt forget important stuff which is rare"

AC

abrasive\_carcass

"feels like it pays attention instead of repeating same stuff"

RE

RevolvingSquid

"better long chats. short chats feel same everywhere anyway"

GL

gleamingsharpness7

"been using this for some weeks now and it didnt forget important stuff which is rare"

AC

abrasive\_carcass

"feels like it pays attention instead of repeating same stuff"

RE

RevolvingSquid

"better long chats. short chats feel same everywhere anyway"

GL

gleamingsharpness7

"first day was confusing but after you understand how memory works its actually good"

TH

TheObeseBoardroom

"setup took time but after that i stopped thinking about the app and just use it"

KA

KaleidoscopicMeans

"feels more thought put into replies not just filler text"

VC

violent\_curator

"first day was confusing but after you understand how memory works its actually good"

TH

TheObeseBoardroom

"setup took time but after that i stopped thinking about the app and just use it"

KA

KaleidoscopicMeans

"feels more thought put into replies not just filler text"

VC

violent\_curator

"characters feel more consistent here. they dont randomly change personality"

LA

lastingequation

"way less random replies compared to what i used before"

VC

violent\_curator

"i stopped noticing the app and just talk which is good sign"

SL

SleepyBadger

"characters feel more consistent here. they dont randomly change personality"

LA

lastingequation

"way less random replies compared to what i used before"

VC

violent\_curator

"i stopped noticing the app and just talk which is good sign"

SL

SleepyBadger

"not perfect english on my side but conversation flows better than expected"

GB

gullible\_basin

"feels less repetitive than most ai chats i tried"

SP

spottediceberg

"memory doesnt feel forced. it comes up when it makes sense"

KA

KaleidoscopicMeans

"not perfect english on my side but conversation flows better than expected"

GB

gullible\_basin

"feels less repetitive than most ai chats i tried"

SP

spottediceberg

"memory doesnt feel forced. it comes up when it makes sense"

KA

KaleidoscopicMeans

Guides

## There's a lot here. That's the point.

LettuceAI gives you real control, and that can feel like a lot at first. These guides walk you through it step by step, no guesswork needed.

[

### AI Basics

New to AI chat? Learn what tokens, context, and providers mean in plain language.

](/docs/ai-basics)

[

### Quick Start

Set up your first character and start chatting in under 5 minutes.

](/docs/quickstart)

[

### Characters

Create characters with personalities, scenes, and lore that stick.

](/docs/characters)

[

### Memory

How LettuceAI remembers details across long conversations.

](/docs/memory)

[

### System Prompts

Fine-tune AI behavior with conditional logic and templates.

](/docs/system-prompts)

[

### Text to Speech

Give your characters a voice with built-in TTS support.

](/docs/tts)

[Browse all documentation](/docs)

FAQ

## Common questions

[View all FAQs](/faq)

Why do I need my own API key? 

Do I have to pay to use LettuceAI? 

Are there any free providers? 

What do people actually use LettuceAI for? 

Do I need a good PC or GPU for this? 

How is this different from other AI chat apps? 

Can characters remember things from old conversations? 

Is my data shared or tracked? 

Can I run models locally without an internet connection? 

Does local inference work on phones too? 

## Your story awaits. Start creating.

[Docs](/docs)[Download](/download)
