Sable
Active betaA Cinny fork focused on quality-of-life features; v1 (Sable Legacy) is in maintenance and development moved to the Sable v2 rewrite ("Sable next").
web, desktop · licence AGPL-3.0-only · fork of cinny
- Web
- Windows
- macOS
- Linux
- Last commit
- today 5 Nov 2026
- Commits, last year
- 7.1k 7.0k in 90 days
- Authors, 90 days
- 44 56 in a year, 107 ever
- Bus factor
- 1 authors making half of last year's commits
- Last release
- latest 4 Nov 2026 · 84 tags in a year
- Lines of code
- 623k TypeScript
AI
AI policy
What the project says about AI-made contributions
Banned (fits the chosen stance)(against the chosen stance)“Sable declines any contribution believed to include or derive from AI-generated content, including ChatGPT, Claude, Copilot, Llama and similar tools.”
AI in development
Whether the developers use AI tools on the repository
None found (fits the chosen stance)(against the chosen stance)The collector's evidence alone would suggest “Config only”; the value above was kept after checking: the four agent files in Sable v1 (CLAUDE.md, AGENTS.md, .cursorrules, copilot-instructions.md) hold the same short text addressed to AI agents, a deterrent rather than a working configuration; Sable v2 bans AI-generated contributions.
Collector: 0 of 7.1k commits in the last year credit an AI tool (0.0 %). 4 agent files, 0 AI workflows. A lower bound: most AI use leaves no trace.
- v2 (Sable-next): no agent files, no AI-attributed commits in the last 365 days (first-parent history, 3,981 commits) at 4bfde17ab615
- v1 (Sable-Legacy): CLAUDE.md, AGENTS.md, .cursorrules and .github/copilot-instructions.md hold the same short deterrent text telling AI agents not to open issues or PRs; they are not working agent configs
- v1: 3 commits in its whole merged history carry Copilot co-author trailers; none in its own first-parent history of the last year
-
.cursorrules(cursor, Sable-Legacy) -
.github/copilot-instructions.md(copilot, Sable-Legacy) -
AGENTS.md(agents.md, Sable-Legacy) -
CLAUDE.md(claude, Sable-Legacy)
AI in the product
Whether the product itself has AI features
None found (fits the chosen stance)(against the chosen stance)Activity
Languages
Apps
Features
| Feature | Value | How we know | Evidence |
|---|---|---|---|
| SDK | matrix-rust-sdk v2: own Rust core on matrix-sdk / matrix-sdk-ui (crates/sable-core), compiled to WASM; v1 used matrix-js-sdk like Cinny | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Encryption (E2EE) | Yes: Yes pattern match [megolm] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Cross-signing | Yes: Yes pattern match [cross-signing] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Key backup | Yes: Yes pattern match [key backup] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Sliding sync | Yes: Yes pattern match [sliding_sync] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Next-gen auth (OIDC) | Yes: Yes pattern match [auth_metadata] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Multiple accounts | Not found: Not found | — | — |
| Threads | Yes: Yes pattern match [thread_root] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Spaces | Yes: Yes pattern match [SpaceChild] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| 1:1 calls | Yes: Yes pattern match [call_invite] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Group calls | Yes: Yes pattern match [msc4143] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Reactions | Yes: Yes pattern match [m.reaction] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Edits | Yes: Yes pattern match [m.replace] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Replies | Yes: Yes pattern match [in_reply_to] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Polls | Yes: Yes pattern match [org.matrix.msc3381] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Custom emoji | Yes: Yes pattern match [emoticon] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Stickers | Yes: Yes pattern match [m.sticker] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Location | Yes: Yes pattern match [geo:] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Voice messages | Yes: Yes pattern match [voice-message] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Rich text editor | Not found: Not found | — | — |
| URL previews | Yes: Yes pattern match [link_preview] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Push notifications | Yes: Yes pattern match [UnifiedPush] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Private read receipts | Yes: Yes pattern match [m.read.private] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Presence | Yes: Yes pattern match [presence] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Room upgrades | Yes: Yes pattern match [tombstone] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Moderation tools | Yes: Yes pattern match [/report] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Accessibility | yes pattern match [a11y] | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Translations | Not found: Not found | — | — |
| Telemetry | opt-in Sentry; events are dropped unless the user consented (telemetryConsent) | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
| Default homeserver | yes v1 config homeserverList starts with matrix.org | code | github.com/SableClient/Sable-Legacy/blob/3adfe1e |
| Fork-friendliness | partial AGPL-3.0; v2 is a Rust workspace (about 10 crates) plus a TypeScript UI and Electron shell, built with pnpm and mise; about 3,400 files | code | git.sable.moe/SableClient/Sable-next/src/commit/ |
Health signals
- Bus factor (last year)
- 1
- Issue first response
- not measured (the forge did not give it)
- Release cadence
- 84 tags in the last year, latest latest (4 Nov 2026)
- CI
.forgejo/workflows/cloudflare-web.yml.forgejo/workflows/dco.yml.forgejo/workflows/docker-publish.yml.github/workflows/cloudflare-web-preview.yml.github/workflows/cloudflare-web.yml.github/workflows/codeql.yml- Tests
- test files found
- Security policy
- SECURITY.md
- Licence
- AGPL-3.0-only
- Funding
- none listed
- Telemetry SDKs in manifests
- Sentry (package.json) · Sentry (electron/package.json) · Sentry (src-tauri/Cargo.toml) · Sentry (crates/sable-push/Cargo.toml) · Sentry (src-tauri/gen/android/app/build.gradle.kts) · Sentry (package.json) · Sentry (src-tauri/Cargo.toml)
Repositories
| Repository | Role | Activity | Last commit | Commits 1y | Authors 90d | Measured at |
|---|---|---|---|---|---|---|
| git.sable.moe/SableClient/Sable-next | main | Active | 5 Nov 2026 | 7.0k | 44 | f96e9748c |
| github.com/SableClient/Sable-Legacy | other | Small team | 16 Oct 2026 | 149 | 1 | 3adfe1e6c |
Notes
Sable Legacy (v1) PR template asked for an AI disclosure (none / partially / fully AI generated), so v1 was "restricted"; v2 bans AI-generated content outright. The fork adds over Cinny: quality-of-life features, cosmetics, a Tauri/Electron desktop app; v2 replaces the matrix-js-sdk core with a Rust one. Metrics: count the v2 repo; v1 history includes all of Cinny.
Researched by an AI agent (Claude) on 5 Nov 2026, not checked by a person; metrics collected on 5 Nov 2026. Source file: data/projects/client/sable.yaml. Spotted a mistake? Open an issue with a link.