Help make Enclave better, together
Enclave is fully open source under the MIT license, raised slowly by a tiny team and its users. Whether you want to share a character concept, report a bug or submit a PR — there's a place here for you to pitch in.
Four ways to take part
Create characters, talk lore
The characters you create in the app, the lore you dream up, the clever ways you use it — all worth sharing. Post them in GitHub Discussions and talk them over with other players and developers; many features started as ideas there.
Report issues
Hit a bug or an awkward experience? Open a GitHub Issue with reproduction steps and environment details (OS, browser, self-hosted or cloud). A clear issue is as valuable as a fix.
Fix bugs, build features
Fork the repo, create a branch, make sure pnpm build passes, then open a PR describing your change. Use semantic commit prefixes (feat: / fix: / docs: etc.). Starting with a small fix is a great way in.
Translation and docs
Enclave supports Chinese, English, Japanese and Korean; all copy lives in the catalogs under packages/i18n, and the README and dev docs come in four languages too. Fixing one translation or adding one paragraph of docs is a real contribution.
Developers: a local environment in three steps
Set up the environment
Node.js ≥ 18 and pnpm 8.15.4 (corepack enable recommended to pin the version). The database is built-in SQLite — nothing extra to install.
Install dependencies
After cloning, run pnpm install for the workspace packages; api has its own npm lockfile and sits outside the pnpm workspace, so it needs a separate cd api && npm install.
Configure and launch
Copy api/.env.example to api/.env and fill in at least one model API key; then pnpm dev:api starts the backend (:3000) and pnpm dev:app starts the frontend (:5180). Note: don't run plain pnpm dev — that command is for the multi-tenant cloud mode; for self-hosting / local dev use dev:api + dev:app.
For the full port table, log locations and Android debugging notes, see DEVELOPMENT.md in the repo.
The repo at a glance
A single monorepo: apps/app is the main application (organized by feature modules — chat, Moments, games, pet, knowledge base, schedule…), api is the NestJS backend, apps/site is this website, and packages holds shared contracts and i18n resources. Most frontend changes touch just one feature directory under apps/app.
Pluggable model layer (BYOK)
AI model integration is pluggable: use your own API keys for cloud models like OpenAI, Claude, Gemini and DeepSeek, or point at local Ollama / vLLM to run fully offline. See the Integrations page for how to hook up each provider.
Start here
Not sure where to begin? Say hi in Discussions and tell us what you'd like to do, or browse Issues for a small one you can understand. The full contribution guidelines live in CONTRIBUTING.md.