Alice is a digital AI avatar I've been working with and developing since December 2022, right after the "ChatGPT moment". Alice has her own personality, appearance, voice, and memory. She also possesses a range of skills, allowing her to use the Internet and access applications, services, and even devices.
I am developing the "Alice" project along two paths: public, in the form of a desktop application available at heyalice.app, and private, an advanced server application version, exclusively accessible to me, available through various interfaces.
Publicly available version
The public version of Alice is a desktop app that makes it easy to access large language models from OpenAI, Anthropic, and open-source models via Groq and Ollama. Besides interacting with models, it also lets you connect them with your own automations via the Make platform or custom programming integrations.
The "Alice" app is a customisable "blank slate." By default, it lacks integrations or prompt libraries, so you'll need some initial setup time to tailor it to your needs. To help you with this, we've created a playlist of Alice 101 videos walking you through the basic setup.
The key concepts of Alice are:
- Assistants: Profiles with a name, avatar, and main system prompt defining their behavior.
- Snippets: These skills, described through prompts, can be assigned to the assistant and invoked during conversations via the
/
button or the available menu. - Remote Snippets: These skills use a prompt to generate a JSON object, which can be sent to Make automation or custom integrations to perform operations. If a response in the format
{"data": "...response"}
is returned from the integration, its content will be added to the conversation and can be used in further dialogue.
Private version
Private version of Alice
is a server application (API) with advanced logic based on large language models. The system enables end-to-end
information processing with a single entry and exit point. It can receive any data in text, image, or sound form and independently decide what to do with it, using long-term memory and a skill set.
The technologies I use to develop Alice include:
Node.js
and the NestJS framework- PostgreSQL database with Objection.js ORM
- Qdrant as a Vector Search Engine
- OpenAI GPT-4o as Large Language Model
- ElevenLabs as Text To Speech
- DigitalOcean for hosting
Alice's skills:
- Long-term Memory: Remembers and organizes info using categories and tags for precise retrieval in conversations or tool usage.
- Task Management: Reads and modifies tasks in Linear, organizes into projects, and describes per your rules.
- Calendar Management: Reads and organizes calendar events.
- Spotify: Uses Spotify API to search, play songs on devices, and create playlists.
- Newsfeed: Manages your newsfeed, especially "Read Later," by adding entries from followed sources or your messages.
- Web Search: Searches the internet, focusing on your chosen knowledge sources.
- Sending SMS/Email/Voice Notification: Sends emails, SMS, or voice notifications from your Mac or phone.
- Google Maps: Finds place info and calculates travel time from your current location.
- File Uploading: Uploads given file to the FTP
- Wolfram Alpha: It's a skill primarily used for advanced calculations.
- Light Management: Control the lights in my house, turning them on and off.
- Loading URLs: Reads contents of the url which may be a website, youtube video, file (markdown, pdf, txt) or Notion document
- Read Documents: Includes actions like answering based on entire documents or fragments, generating summaries, extracting key information, extracting resources, and memorizing them.
- Transform Documents: Includes actions like proofreading, translation, and fact-checking.
- Notification System: It's the notification queue that allows Alice to notify herself about something (like finished task) or me.
- Scheduling: This action lets me schedule tasks for Alice
Interfaces:
- API: This crucial interface enables chatting with Alice and lets her interact with her memories and available tools.
- Slack: Alice has two channels: one for DMs and one for notifications. I use it mainly on my phone
- Siri Shortcuts: I can send Alice a message through the Shortcuts app on my Apple Watch.
- Alice app: My custom build of the Alice app lets me chat with her on my Mac.
- Web Interface: Alice is also available as a simple website, which I use in my car.