A free tool for everyone — by choice, not by accident.
This app was created as a voluntary passion project with one goal: to give everyone access to a private, uncensored, and independent AI companion experience — completely free of charge, forever. No subscriptions, no accounts, no data collection. Everything runs locally in your browser, so your conversations truly belong to you.
It is offered in this spirit and must stay that way. You're welcome to use it, adapt it for your own private needs, and share the original with others. All that's asked is that you don't redistribute modified versions publicly or use it commercially — so that everyone can always benefit from it equally.
Found a bug or have an idea? Let me know! This form is anonymous by default — no personal data is collected unless you choose to provide it.
Want a reply? Leave your email address below. This is the only way I can get back to you — there is no other contact channel.
Welcome! This is a fully functional application designed for creating, managing, and interacting with your own detailed AI characters. The core feature is the ability to engage in dynamic, text-based role-playing chats with any characters you want. The app has been developed from scratch with the aim of being easier, more intuitive, and faster to use than other platforms.
Hi, my name is Michael and I'm just an Austrian guy in his 30s who enjoys these AI character roleplays himself a lot. Although there are many good character chat platforms, there were always things that bothered me. Either they lacked certain features, weren't user-friendly enough, didn't have the best AI models, or required payment. So I decided to simply program my own platform with all the features I wanted. Then I thought, why not just make it freely accessible to everyone? And so, a new AI character chat application was born, freely accessible to everyone while keeping your data 100% private. Have fun with it! :)
I'm still developing and improving this app and try to implement even more and better features, while keeping it super simple to use for anyone. So, stay tuned for more cool Updates!
The app is a fully local web application that runs directly in your browser — no installation, no server, no cloud required. You simply open the index.html file in your browser (or use a Live Server for the best experience). When you send a message, your browser sends the request directly to your chosen AI provider (e.g., OpenRouter) using the personal API key you store in the App Settings. Your key never leaves your own device to a third-party server.
Your privacy is paramount. All of your data—including every character you create, all your chat histories, images, and your personal settings—is stored directly on your computer inside your browser's secure IndexedDB database. This technology allows for large amounts of data to be stored privately and offline. This means your data remains entirely on your device and is preserved even after you close the browser tab. No one else, including the developer, can access your characters or conversations.
This is the first screen you see when you open the app. From here, you can access all of your characters and core features.
The header provides access to the app's main functions:
.json file for backup. All AI models and global model prompts are included in the backup. You can use the Import button to load all your data back into the app on any computer. ALSO: You can import any Character Cards from other online platforms, both PNG and JSON - try it!This bar gives you quick access to your most-used and favourite characters. To add a character to this bar, simply hover over their card in the main list below and click the star icon (★) in the top-right corner.
To help you find specific characters quickly, the app features two separate search bars:
This is the main area where all of your non-archived characters are displayed as individual cards, automatically sorted in alphabetical order. Clicking a card takes you to that character's chat dashboard. When you hover over a card, two buttons appear:
Here you can select and delete multiple characters or even all characters with a single click if you want.
If your character list gets too crowded or you simply want to hide a character, you can move characters to the archive to keep your main screen clean. This section appears at the bottom of the screen once you have at least one archived character. Click the "Show" / "Hide" button to expand or collapse the list of archived characters.
After clicking on a character card from the main screen, you'll land on their personal dashboard. This is the central hub for all your conversations with that specific character.
This central element displays the character's avatar and name, along with two important management functions:
This section shows all the separate chat sessions you have saved with this character. Each character can have dozens of independent conversations.
This is where you bring your characters to life. You can access the editor by clicking the 🤖 + Create Character button on the main screen or the Edit Character button on a character's chat dashboard. Any changes you make in this character editor will take effect immediately for the character, without having to refresh the site (even during chats).
{{char}} and what appears in the chat interface..png, .jpg). You can also upload a local image from your computer by clicking the folder icon (📁) next to the input field.Note: An ideal amount of words here is often between 500 and 1000 words. This way, your character will be very detailed without causing memory/context problems for the AI. But it's also still alright if you have a little more, e.g., 1200 words. For anything beyond that, you can simply use the lorebook below.
📖 Narrator button. (e.g. "Reply only as an omniscient narrator now," or "Describe what happens in the current scene")You can use the dynamic placeholder {{char}} in these fields, and it will be automatically replaced with the character's name in the prompt. This allows you for example to copy your instructions to multiple characters without having to enter the individual character names each time.
Global Model Prompts are standard instructions and reminders that you can set directly for a specific AI model.
Why is this useful? Imagine you're using an AI model that always requires a specific base instruction for the right role-playing style or a special format. Instead of entering this instruction for every single character, you simply define it once globally for the model.
You can find this setting in the "App Settings" window (the gear icon ⚙️ in the main menu). For each of your listed AI models, there is a collapsible section called "Global Prompts". Simply click on it to open the three text fields for AI Instructions, Character Reminder, and Narrator Reminder and enter your global instructions. Don't forget to click "Save Settings" at the end.
Important to know: If you have entered both a global prompt for the model and a specific prompt for the character, both will be used. The app combines them intelligently:
The global prompt from the model is always placed before the character-specific prompt. This means the AI first receives the general instruction and then the specific one, which usually leads to the best results.
Scenarios are pre-written starting points for a chat. This is perfect for setting up a specific scene or situation. Each scenario consists of a Title (for your own reference) and a Description, which usually contains the opening message of the chat.
Optional: At the beginning of the scenario description, you can add an "Out-of-character note" for the AI with important meta information about the scenario. It has usually even higher priority for the AI than the character description. For example: If your character description says that the character is good, then you can simply write in an OOC-note that the chracter is evil in this scenario. You can add other OOC-notes also in your messages during the chat anytime, whenever you need to clarify things for the AI. A note could look like this for example:
### OOC: {{user}} is the equivalent of Natsuki Subaru and replaces him in this scenario. Emilia plays a cold and detached opponent of {{user}}. Elsa Granhiert plays a trustful and loyal ally of {{user}}.
---
Scenario: [Here comes your actual scenario description with a starting scene, including first message of your character if you want.]
+ Add Scenario button to add a new, empty scenario block.🗑️ button next to a scenario to delete that scenario.This is where the magic happens. The chat screen is designed to be immersive and give you a high degree of control over the conversation and its appearance.
The bar at the top of the chat screen provides context and quick access to important features.
This panel gives you deep control over the look and feel of the chat and the AI's responses. All settings are saved locally and automatically applied to all chats.
This is the main area where your conversation is displayed.
ENTER or double-click outside the editor window. All your changes are saved automatically.< and > buttons appear below the message. Use these buttons, or the Left and Right Arrow Keys on your keyboard, to cycle through the different responses.Right Arrow Key will also trigger a regeneration of the AI's last response.<think> block. It will be automatically displayed in a collapsible box ("think block") above the main response. You can click "Show Thoughts" to see the AI's reasoning or internal monologue for its response.
This is where you write your messages.
Character is for standard character responses and dialogue. Narrator instructs the AI to respond purely as an omniscient, third-person narrator, describing the scene and actions without speaking as the character.Note: Sometimes, the AI might get repetitive and it can look like as if the AI ignores the last message and doesn't drive the plot forward. In that case, simply make use of your Reminder instructions (e.g., "Drive the plot actively forward and let something new happen.") and also adjust the Temperature slider.
F key on your keyboard to toggle a distraction-free, immersive fullscreen mode. Press F again (or ESC) to exit fullscreen mode.While most of the app is about the AI characters you chat with, the Persona system is all about defining who you are in the conversation.
You can access this feature by clicking the 🎭 Manage Personas button on the main screen. This will open a dedicated modal window where you can:
+ Create new Persona to open the Persona Editor.The Persona Editor is a streamlined version of the Character Editor, designed for quickly defining your user profile.
Inside a chat, if you have not yet assigned a Persona, a 🎭 Select Persona button will be visible in the header. Clicking it opens a selection screen where you can choose one of your saved Personas for that specific chat session. You can unselect the persona by clicking the button again.
You aren't limited to one-on-one conversations. Any chat can be turned into a group chat with multiple AI characters interacting with you and each other.
To add more characters to an existing conversation, simply click the Add Participant (👥) button in the chat header. This will open a selection modal where you can choose any of your other characters to join the chat.
To direct your message to a specific character in the group, you must use a simple command: Start your message with a forward slash / followed immediately by the character's name (e.g., /Akame "How are you?").
</Akame>) will appear just above it. Clicking one will add the command to the input box for you.The AI is instructed to respond only as the character you addressed. If you don't specify a character, the response will come from the chat's primary character.
However, to be certain, always put the instruction “Reply only as {{char}} now” in the Character Reminder. It will ensure that only your targeted character will speak.
Your data is stored locally in your browser (IndexedDB), which means it's private but also vulnerable if your browser data is cleared. The Import and Export feature is the best way to safeguard your creations.
Exporting creates a single .json file containing all your characters and personas.
⬇️ Export button in the header of the main screen.casualcharacterchat_export_[date].json. Choose a safe location on your computer and click "Save". That's it!Importing allows you to load a previously exported backup file as well as any other .json file with characters in the same format.
⬆️ Import button in the header..json backup file from your computer - or upload any character card (png/V2 or .json) from any other character chat platform.A confirmation window will apear. Once you confirm, the app will load the data. A success message will appear, telling you exactly how many characters and personas were successfully imported. Your existing data will NOT get overwritten and is save! Only the new data will be added to your existing characters and Personas.
Here are answers to some common questions and issues.
A: The quality of AI responses depends heavily on your settings and prompts. If you're not getting the results you want, try the following:
Character Description. Be detailed. Give the AI clear instructions on personality, speech style, and motivations. The same goes for your AI Instructions and Reminder fields.⚙️ Settings panel, try adjusting the Temperature slider. A lower value makes the AI more predictable and focused. A higher value makes it more creative but can lead to randomness.⟳ button (or the right arrow key). Sometimes the AI's first attempt isn't its best, and the next variation might be perfect.A: Since the app communicates directly with your AI provider, slowdowns are caused by the provider's servers (e.g., OpenRouter) being under high load or a free model being temporarily unavailable. The app will automatically retry the request. If you keep getting errors, try switching to a different AI model in the settings, or wait a few minutes and try again.
A: Most of the time this means that either the AI model itself has problems, or your API key isn't valid, or you have reached a rate limit with your provider for requests per minute/per day. Try to use another AI model, another provider/different API key, check any limits of your provider, or simply try again later. In some cases it can also happen while improvements are being made to the website (a few minutes/hours, maximum one day). Please also note that free AI models are often shut down by the providers after a certain period of time - you'll keep getting error messages in such cases.
Character Description and Lorebook?A: Think of it this way: The Character Description defines who the character is - their active personality, their appearance, how they behave right now. The Lorebook contains background knowledge from the character and the world - memories, historical facts, details about the world, etc. This separation helps the AI focus on the active personality while still being able to pull from deeper knowledge when needed. You can also integrate all kinds of additional facts about the character in the lorebook that are not necessary or have less relevance for the character description.
A: Yes. This is precisely what the Export and Import functions are for. Use Export on your old device/browser to save your data to a file, then use Import on the new one to load it all back in.
IMPORTANT: If you want to run your app on another computer, you must copy your app folder with the three code files (index.html,style.css,script.js) to that device. Only then can you start the app on that device by opening theindex.htmlfile in the browser as usual. On smartphones it will only work properly by opening the standalone file that is downloadable on the Github page of this project.
A: This means that your browser's site data (including the IndexedDB database) has been deleted. This can happen when you clear your browser's cache or have settings that automatically delete site data upon closing the browser. That's why the quick and easy "Export" feature is always your perfect insurance. Simply export your data after making major changes or creating new characters, and you're 100% safe. Please note that you won't see your newly created characters and chats in an Incognito-Tab of your browser since cookies are disabled in incognito mode and it doesn't check your local storage.
To use any AI models, the app needs your personal API key of course. This is the only setup step required.
The web app itself is free, but AI model usage is billed through your own key, if you use paid models. While you can add different providers/API keys for different models, it is recommended to use OpenRouter.ai as your main API provider, because the web app is is optimized for OpenRouter and this provider gives you access to most existing AI models in one place. They give you 50 free messages a day - 1000 free massages a day, when you have $10 in your account balance (one-time payment).
That's it! The app is now fully configured and ready to use.
Cheers!--- END ---