Overview
JanitorAI is a hosted platform for chatting with community-created character chatbots. Its defining structural feature is that the website itself does not run one fixed model for every conversation; it separates the character definition (personality, backstory, scenario) from the LLM that generates responses, and lets the user choose which model powers that layer. Setting up a character means working through a creation page with several distinct fields rather than one free-text box: a required avatar image and character name for the bot's card, a Character Chat Name that can differ from the display name, and an optional Character Bio (supporting basic HTML) that's there purely for human readers browsing the site and isn't sent to the model.
Core experience and character-creation fields
The fields that shape generation are Personality (the bulk of the character's traits, appearance, backstory, and speech patterns) and an optional Scenario field for setting, time period, or the character's relationship to the user's persona, with optional Scripts: JanitorAI's framework for triggers, events, and lorebooks that add structured logic to how a character behaves over the course of a conversation. JanitorAI's own creator guidance recommends keeping permanent content in the Personality/Scenario fields under roughly 2,500 tokens, since going past that risks the character's memory degrading more quickly as a conversation runs on. Up to ten searchable Tags help the character surface in the site's browse and filter system, and a required Initial Message sets the tone for the very first reply a user sees.
Lorebooks and context management
Beyond the always-active Personality and Scenario fields, JanitorAI supports lorebooks: sets of conditional world facts (locations, factions, relationships, past events) each tied to one or more keyword triggers. An entry only enters the model's context when its trigger word appears in the conversation, so a lorebook can hold far more background detail than would fit in permanent memory without costing context tokens on every single message. This keyword-triggered structure is a meaningfully different memory mechanic from the always-on Personality/Scenario fields, and from platforms that rely on a single flat memory bank.
Bring-your-own-model mechanic and janitor+ Router
JanitorAI ships with a free, built-in default model called JanitorLLM (JLLM). Users who want a different model can connect an external API-based provider instead, either through janitor+ Router (a built-in, credit-based system where JanitorAI itself brokers access to third-party model providers and deducts usage-based "Router Credits") or by manually configuring a proxy connection with their own API key and API URL from a service such as OpenRouter. Router subscribers pick from a list of dozens of third-party models (spanning providers like Anthropic, OpenAI, Google, and DeepSeek) directly inside JanitorAI's own interface, with each option showing its context window and per-token cost before a chat starts; Router access is currently limited to janitor+ subscribers and to the web client, with mobile-app support planned but not yet available. This lets the same characters and scenarios run on different backing models depending on what the user connects.
- Choose a model source. Use the free JLLM, spend Router Credits through janitor+ Router, or connect an external provider directly.
- Provide credentials for the external route. Enter an API key and API URL for a proxy or model provider in JanitorAI's API settings.
- Chat as normal. Character definitions stay the same; only the model generating replies changes.
Content policy and adult-content positioning
JanitorAI's community guidelines explicitly permit adult sexual content between characters presented as consenting adults, while prohibiting specific categories regardless of consent framing, including content sexualizing characters coded or likely to be under 18, content involving real animals, sexual content between characters coded as blood relatives, and pornographic imagery such as nudity or depicted sexual activity in generated images. Any minor-coded character is barred from sexual or romantic portrayal, and the guidelines list specific red flags (school attendance, guardianship references, "innocence"/"purity" framing) used to catch attempts to disguise minor characters as adults. The service is restricted to users 18 and older.
NSFW content is disabled by default in JanitorAI's mobile app to comply with app-store policies. It can be enabled by logging into the same account on the website, turning on "Enable NSFW on Mobile" in account settings, and restarting the app: content settings apply per account rather than per platform.
Access model and pricing structure
The native JLLM model is free to use with daily message limits. A paid janitor+ subscription raises those limits, extends context length, and unlocks janitor+ Router. Separately from any subscription, users who prefer a manual setup can still connect their own third-party model via API key or proxy without paying JanitorAI directly for model access at all: a structural option most platforms in this category don't offer.
Limitations
JanitorAI has no native image or voice generation; any images seen in a chat are static files a creator uploaded in advance (commonly hosted externally and linked in), not something the platform generates itself. There's no public developer API for building outside integrations, response quality and content behavior vary by whichever backend a given user has connected, and janitor+ Router is currently web-only rather than available inside the mobile apps.
Important distinctions
JanitorAI is often discussed alongside Character.AI and CHAI, but differs structurally from both: those platforms run every conversation on their own fixed in-house models, while JanitorAI's defining structural choice is letting the model itself vary per user: through the free JLLM, janitor+ Router's credit-based access to outside models, or a manually configured proxy. That also means JanitorAI's actual content behavior, unlike CHAI's and Character.AI's, can shift depending on which backend a given conversation is running on rather than being fixed by JanitorAI's own model.
Related glossary concepts
Related database entries
Sources & further reading
- JanitorAI — Official site
- JanitorAI — Community Guidelines
- JanitorAI Help Center — FAQ: How do I enable NSFW content in the app?
- JanitorAI Help Center — Beginner's Guide to Using a Proxy with Janitor
- JanitorAI Help Center — Minor Related Content
- JanitorAI — Terms of Use
- JanitorAI Help Center — The Basics: The Character Creation Page Overview
- JanitorAI Help Center — Advanced Lorebook
- JanitorAI — Introducing janitor+ Router
- JanitorAI Help Center — FAQ: How do I download the Janitor mobile app?
- JanitorAI Help Center — FAQ: Mobile App Moderation