The Most Overkill Messaging App in the World.
- 📑 tabs
- 🀄 tiling window manager
- 🧵 threaded messages
- 📡 voice, video, and screen share
- 📝 real-time wiki channels using Y.js
- zen mode
🅱️ keyboard shortcuts- 📨 direct messages
and upcoming:
- 🌎 built-in community finder
- 🔍 search channels
- 🪐 DID-based usernames
- 🥸 subdomains for multiple personas and identities
- 🔒 encryption
- 🎨 custom themes
- 🛒 marketplace for extensions and integrations
Prerequisites:
proto install
pnpm install
# Copy .env.example to .env and set the variables
cp ./.env.example ./.env
# Reset and seed the environment
just reset-dev-envMikoto uses a Moon-based monorepo.
To develop apps and packages, run the following command:
docker compose up -d # Run auxiliary services
just run-core # runs the base scriptsIf you're iterating on client UI and don't need a local backend, you can point the dev client at the production API instead:
just run-client-prodThis runs the client on http://localhost:3510 and proxies API, media,
and WebSocket traffic through to the production services same-origin
(no local Docker, superego, or migrations required). See
apps/client/docs/PROD-BACKEND-DEV.md
for details.
To build all apps and packages, run the following command:
moon :buildAll Mikoto services use ports in the 351X or 351XX range to avoid conflicts with other common services:
| Service | Port | Description |
|---|---|---|
| Client | 3510 | Web client |
| Superego | 3511 | API server |
| Collab | 3512 | Collaboration service |
| MediaServer | 3513 | Media handling service |
| Service | Ports | Description |
|---|---|---|
| PostgreSQL | 35101 | Database |
| Redis | 35102 | Cache & pub/sub |
| RustFS (S3) | 35103, 35104 | Object storage |
| LiveKit | 35105, 35106, 35107 | Real-time audio/video |
| MailHog | 35108, 35109 | Development mail server |
MIT Licensed. See LICENSE.

