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 f5ceadbe1b
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 3m16s
desk: render rows in the served order; one open count (the list's open_count)
buildDesk no longer sorts (the list is newest first by card.order); counts.open is
list.open_count, so the status line cannot claim an empty desk while forks are open.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 21:13:23 +00:00
.github CI: cancel superseded runs with workflow concurrency groups 2026-11-09 22:50:10 +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 desk: read the gamecult.fork.* contract as served (#83) 2026-11-10 21:08:12 +00:00
harness scene: ridge heightfields with slope shading and endless world-x drift 2026-11-10 18:31:56 +00:00
preview-demo/poses Merge pull request 'preview-demo: README for the pose thumbnails (provenance)' (#29) from void/poses-readme into dev 2026-11-09 10:59:20 +00:00
public dings: Aqua's v4 set (Void single onset, Nibu proposal 3 everywhere), still behind dings.enabled 2026-11-10 17:59:07 +00:00
scripts preview: drop the Ratatoskr publisher; keep only the build recipe the shared publisher takes (build-dev-preview.sh) 2026-11-10 18:19:04 +00:00
src desk: render rows in the served order; one open count (the list's open_count) 2026-11-10 21:13:23 +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 dings: port the hook from #36 onto dev, wire Aqua's v3 set behind dings.enabled (default off) 2026-11-10 17:03:17 +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 preview-demo: drop the submit-event shim; manifest link relative 2026-11-08 02:12:11 +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 auth: test the emitted footer rule; wrap its comment; correct the terrain luminance figure 2026-11-10 03:48:36 +00:00
package.json auth: test the emitted footer rule; wrap its comment; correct the terrain luminance figure 2026-11-10 03:48:36 +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 dings: port the hook from #36 onto dev, wire Aqua's v3 set behind dings.enabled (default off) 2026-11-10 17:03:17 +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