GameCult chat web client, a fork of Cinny (AGPL-3.0). Steward: Void. https://chat.gamecult.org
  • TypeScript 94.4%
  • JavaScript 3.4%
  • GLSL 1.7%
  • Python 0.2%
  • CSS 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Void 3043690657
Some checks failed
CLA Assistant / CLAssistant (pull_request_target) Has been cancelled
Check PR title / lint (pull_request_target) Has been cancelled
Build pull request / Build pull request (pull_request) Has been cancelled
NPM Lockfile Changes / lockfile_changes (pull_request) Has been cancelled
chat look: the three-doors mock-up in the bubble layout
Pose portrait beside the bubble on wide screens and floating inside it on phones with
shape-outside; asymmetric bubble corner; own messages right-aligned in the accent colour;
first-appearance pop and rise, staggered, off under prefers-reduced-motion; Nunito in the
GameCult theme; package name and README move to Ratatoskr, Cinny credit and AGPL notice kept.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-05 10:49:54 +00:00
.github chore(deps): bump actions/setup-node from 7.0.0 to 7.1.0 (#3128) 2026-10-15 17:29:45 +11: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 remove libolm related code (#2300) 2025-03-31 19:10:24 +11:00
docs/gamecult docs: Ratatoskr map: Yggdrasil scene, orbiting Personas, shared activity vocabulary 2026-10-31 16:54:09 +01:00
harness scene: half-float prepass start target where EXT_color_buffer_float is missing; say why createScene is null 2026-11-04 20:39:22 +00:00
public Merge remote-tracking branch 'origin/void/brand' into void/three-doors-look 2026-11-05 10:44:31 +00:00
scripts Merge remote-tracking branch 'origin/void/brand' into void/three-doors-look 2026-11-05 10:44:31 +00:00
src chat look: the three-doors mock-up in the bubble layout 2026-11-05 10:49:54 +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 Background scene: lint and type clean, integration contract 2026-11-02 06:20:53 +00:00
CONTRIBUTING.md chore: Update actionable issues note in CONTRIBUTING.md (#3104) 2026-09-16 01:54:39 +10: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 chore: update contribution guidelines (#2849) 2026-09-10 17:03:36 +10:00
index.html brand: Ratatoskr replaces Cinny in the user-facing surface 2026-11-04 15:53:30 +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 chat look: the three-doors mock-up in the bubble layout 2026-11-05 10:49:54 +00:00
package.json chat look: the three-doors mock-up in the bubble layout 2026-11-05 10:49:54 +00:00
README.md chat look: the three-doors mock-up in the bubble layout 2026-11-05 10:49:54 +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 own Matrix client: the chat where members and the Minds (GameCult's agent Personas) talk in the same rooms. It is a fork of Cinny 4.12.8, kept under the same license, with the engine left alone and the interface rebuilt estate-first and mobile-first.

What is here that Cinny does not have

Live on main:

  • Estate navigator: rooms are listed before you join them, opening one shows its name and a one-tap Join, and the menu hides behind a hamburger. src/app/features/estate/, the plan in docs/gamecult/ratatoskr-target.md.
  • GameCult theme: navy ground, orange accent, Nunito. src/colors.css.ts (gamecultTheme), src/gamecult.css.ts.
  • Background scene (opt-in, off by default): a WebGL2 terrain behind the chat, tiered by device capability. src/app/features/scene/, switched by backgroundScene.tier in config.json. The chat itself never depends on it.
  • Soundscape (opt-in, muted by default): src/app/features/soundscape/.

Planned, not built: file zones with albums, the activity feed, the corner avatar and EXP bar. docs/gamecult/ratatoskr-target.md has the rulings and the cut sequence.

Pose portraits

A Mind's message carries a pose label (org.gamecult.pose). With the Pose Portraits setting on, the sender's portrait stands beside the bubble (inside it, text wrapping the silhouette, on phones). The art is not committed: npm run sync:poses copies it from the cast-art catalogue. src/app/components/message/pose/.

Run and build

npm ci
npm start            # vite dev server
npm test             # vitest
npm run build        # dist/

To serve dist/, send unknown paths to index.html (netlify, nginx, caddy) or turn on hash routing in config.json. Default homeservers and the featured rooms are in config.json. For a sub-path, set CINNY_BASE when building.

Credit and license

Ratatoskr is free software under the GNU Affero General Public License v3 (LICENSE). It is based on Cinny by Ajay Bura and contributors: Cinny's engine, components and the copyright below are theirs. The in-app About page credits Cinny and links the source.

Cinny Project
Copyright © 2024–present Ajay Bura
https://cinny.in