GameCult chat web client, a fork of Cinny (AGPL-3.0). Steward: Void. https://chat.gamecult.org
  • TypeScript 94.3%
  • JavaScript 3.4%
  • GLSL 1.9%
  • CSS 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Void 6110292e3b Pose pill grows upward when its name wraps, clear of the bubble text
Anchored by its bottom edge 13px inside the bubble instead of its top edge 15px above it,
so a wrapped name and time never cover the first line of text.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-09 10:50:24 +00:00
.github preview: pretend homeserver for the dev preview, in-page and off by default 2026-11-07 18:49:59 +00:00
.husky chore: add semantic release (#2759) 2026-03-19 16:26:25 +11:00
.vscode Replace Webpack to Vite (#1023) 2022-12-20 20:47:51 +05:30
contrib brand: Ratatoskr README front door, package name, theme colour, contrib confs 2026-11-06 07:09:25 +00:00
docs/gamecult docs: Ratatoskr map: Yggdrasil scene, orbiting Personas, shared activity vocabulary 2026-10-31 16:54:09 +01:00
harness scene: ridge scene as the default background, no WebGL 2026-11-06 18:34:13 +00:00
preview-demo/poses preview: portrait thumbs at 480px (were 160px), long-post demo fixtures 2026-11-07 19:50:59 +00:00
public Merge remote-tracking branch 'origin/void/pose-catalogue' into void/preview-all 2026-11-07 18:03:05 +00:00
scripts preview: portrait thumbs at 480px (were 160px), long-post demo fixtures 2026-11-07 19:50:59 +00:00
src Pose pill grows upward when its name wraps, clear of the bubble text 2026-11-09 10:50:24 +00:00
.dockerignore Improve Dockerfile (#256) 2022-01-30 20:58:38 +05:30
.eslintignore Replace Webpack to Vite (#1023) 2022-12-20 20:47:51 +05:30
.eslintrc.cjs Fix unread reset and notification settings (#1824) 2024-07-23 15:14:32 +10:00
.gitignore poses: read labels only from the catalogue; add a client-status pose line 2026-11-04 14:06:18 +00:00
.node-version Pin all the action deps to SHA (#2725) 2026-03-04 12:31:36 +11:00
.npmrc Add authenticated media support (#1930) 2024-09-07 19:15:55 +05:30
.prettierignore poses: read labels only from the catalogue; add a client-status pose line 2026-11-04 14:06:18 +00:00
.prettierrc.json Replace Webpack to Vite (#1023) 2022-12-20 20:47:51 +05:30
build.config.ts GameCult theme, steward-grouped project rooms, preview base override 2026-10-31 05:00:32 +01:00
CODE_OF_CONDUCT.md Create Code of Conduct (#1908) 2024-08-21 15:43:40 +05:30
config.json Merge remote-tracking branch 'origin/dev' into dev 2026-11-07 18:12:03 +00:00
CONTRIBUTING.md Merge remote-tracking branch 'origin/dev' into dev 2026-11-07 18:12:03 +00:00
docker-nginx.conf remove libolm related code (#2300) 2025-03-31 19:10:24 +11:00
Dockerfile chore(deps): bump nginx from 1.31.4-alpine to 1.31.5-alpine (#3098) 2026-09-10 15:33:46 +10:00
HACKING.md brand: Ratatoskr README front door, package name, theme colour, contrib confs 2026-11-06 07:09:25 +00:00
index.html brand: Ratatoskr README front door, package name, theme colour, contrib confs 2026-11-06 07:09:25 +00:00
LICENSE Change license to AGPLv3 (#1115) 2023-02-24 17:28:04 +05:30
netlify.toml remove libolm related code (#2300) 2025-03-31 19:10:24 +11:00
package-lock.json Merge remote-tracking branch 'origin/void/three-doors-look' into void/preview-all 2026-11-07 18:03:10 +00:00
package.json Merge remote-tracking branch 'origin/nibu/scene-host' into void/preview-all 2026-11-07 18:03:10 +00:00
README.md README: drop the OBS media receiver disambiguation 2026-11-06 12:39:02 +00:00
tsconfig.json Add authenticated media support (#1930) 2024-09-07 19:15:55 +05:30
vite.config.js pose-aware chat bubble behind a Pose Portraits setting 2026-11-01 19:22:21 +00:00

Ratatoskr

GameCult's Matrix chat client, a fork of Cinny. It opens on GameCult's estate (spaces, project rooms grouped by steward, Minds, and your own place in it) instead of an invite list. Mobile first.

Live now: the Cinny engine (matrix-js-sdk, Rust crypto, sync) under a Ratatoskr UI: branding, GameCult theme, estate navigation, pose portraits (opt-in setting), a background scene and soundscape (opt-in, off by default). Planned: see docs/gamecult/ratatoskr-target.md for the target and cut sequence. Internal names that are protocol or stored state (cinny_* localStorage keys, the in.cinny.room.power_level_tags event type, CINNY_BASE) are unchanged on purpose.

Entry points: src/app/ (client UI), src/app/features/scene/ (background scene), src/app/features/soundscape/ (audio socket), harness/ (estate drive scripts), scripts/gen-brand.mjs (regenerates the logo and icons).

Upstream

Ratatoskr is based on Cinny by Ajay Bura and contributors, licensed AGPL-3.0. Cinny's own README, desktop app and releases live at https://github.com/cinnyapp/cinny. We do not ship its releases or images.

Developing

See HACKING.md. Contribution notes are in CONTRIBUTING.md.

Self-hosting

Build with npm ci && npm run build and serve dist/ with your webserver.

  • The default homeservers and explore pages are defined in config.json.
  • Serving the assets needs redirects to index.html. Examples: netlify, nginx, caddy. Without them you can enable hash routing (hashRouter); URLs then carry /#/.
  • To deploy on a subdirectory, rebuild with the base path set, either in build.config.ts or through CINNY_BASE (for example CINNY_BASE=/app/ npm run build).

License

Ratatoskr is a fork of the Cinny project
Copyright © 2024–present Ajay Bura
https://cinny.in

Cinny is licensed under the GNU Affero General Public License, Version 3 of the License (AGPL-3.0-only). You may obtain a copy of the License at https://www.gnu.org/licenses/agpl-3.0.html