CharacterPlus is a Character AI–style web application that enables conversations with fully-fledged stateful agents powered by Letta.
- Persistent Memory: Each character maintains long-term memory across conversations
- Shared User Profile: Characters share knowledge about you through a common memory block
- Tool-Calling Capabilities: Agents can perform actions beyond just chatting
- REST API Integration: Built-in endpoints compatible with Python and TypeScript/Node.js SDKs
Built during the "Stateful Agents Vibecoding" meetup using Vercel v0.
Click the ⚙️ Settings icon and enter your Letta Cloud API key.
Using Self-Hosted Letta?
- Replace
api.letta.comin the source code with your server's IP address - Use your server password as the API key (or a dummy value if not password-protected)
Click the 👤 Profile icon to edit your human memory block. This shared memory block contains information about you that all characters can access.
How Memory Works:
- Shared Memory: When one character learns something about you, all characters receive that information
- Private Memory: Each character has their own persona and individual memories
- Character Personas: Pre-defined in
/lib/characters.json
Character States:
- Active: Agent exists and will resume previous conversations
- New: Agent will be created on first interaction
Actions:
- Chat Now: Start or resume a conversation
- 🔁 Reset: Delete the character's memory and start fresh
View and manage your characters in the Letta Agent Development Environment:
Characters created by the app are prefixed with character_*.
- Visit the v0 project link
- Click "Deploy" to create your own live version
- Share with friends or preview in the v0 window
Prerequisites:
- Node.js 18.17 or later
- A package manager (npm, yarn, or pnpm)
# Clone the repository
git clone https://github.com/letta-ai/characterai-memory.git
cd characterai-memory
# Install dependencies
npm install # or yarn / pnpm install
# Set up environment variables
# Create a .env.local file with your Letta API key
echo "LETTA_API_KEY=sk-ltta-..." > .env.local
# Start the development server
npm run dev # or yarn dev / pnpm dev
# Open http://localhost:3000 in your browserNote: v0 projects use Next.js 14+ with the App Router by default. If you encounter any issues, ensure your Node.js version meets the requirements.
The current demo uses your personal Letta Cloud API key, which isn't suitable for multi-user applications. For production deployment, implement user authentication using Letta's identity system:
- Each end-user should have a unique identity
- Agents are associated with user identities, not your developer account
- Modify agent creation and listing API calls to include identity parameters
📚 Learn more about multi-user support in Letta.
We welcome contributions! Feel free to:
- Improve the UI/UX
- Enhance memory management features
- Add new demo characters
- Fix bugs or improve documentation
Join the Community: Chat with the Letta team and other developers on Discord.
[Add your license information here]