Skip to content
CAI
Software that uses CAICheck a score

Eugeny/tabby

43.6

Weak · 28 September 2026

28k

lines of production code

TypeScript

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Tabby is a cross-platform terminal emulator built on Electron and Angular, designed to manage local shells, SSH, Telnet, and serial connections through a modular plugin architecture. It provides a unified interface for terminal sessions, featuring profile management, configuration synchronization, and extensibility via a community-driven plugin system. The application supports multiple operating systems with platform-specific integrations, including Windows UAC elevation, macOS Automator workflows, and Linux sandboxing workarounds.

How it got here

2016 — Tabby rebrand and architectural cleanup

12 changes.

This period marks the rebranding of the project from Terminus to Tabby, accompanied by a significant restructuring of the build system and plugin architecture. Legacy AngularJS components and custom styling layers were removed to streamline the codebase, while platform-specific build configurations for Windows and macOS were updated to ensure proper installation and runtime behavior.

2018–2021 — Tabby rebrand and plugin architecture

26 changes.

The project was rebranded from Terminus to Tabby, establishing a modular plugin architecture with a comprehensive core API and dedicated modules for terminal, SSH, and web clients. This period focused on expanding connectivity options by adding serial, Telnet, and web-based support, while introducing a robust plugin manager and community color scheme ecosystem.

2022–2026 — Build infrastructure and plugin expansion

7 changes.

This period focused on restructuring the project's build and release pipeline through modular Node.js scripts and consolidating Electron-specific shell providers. It also introduced new functionality, including an auto-sudo-password plugin for SSH sessions, expanded language support, and various stability fixes for Wayland and serial ports.

Features

Add Telnet client with profile settings and session management

This change introduces a new Telnet client module, providing a full user experience for connecting to Telnet hosts. Users can now create Telnet profiles via a dedicated settings component that configures host, port, login scripts, and input processing options. The module includes a terminal tab with a toolbar showing connection status and a reconnect button, supports quick-connect syntax (host:port), and implements the Telnet protocol (including option negotiation and remote echo handling). It also integrates with the platform's tab recovery system to restore sessions after upgrades and defines a hotkey to restart the current Telnet session.

tabby-telnet · high confidence

Add community terminal color scheme provider

Introduces a new Angular module that registers a \TerminalColorSchemeProvider\ to load and apply community-contributed color schemes in the terminal. The implementation parses scheme files containing \\#define\ variables and \\*.\ key-value pairs to extract foreground, background, cursor, and standard color palette settings, making them available to the Tabby terminal interface.

tabby-community-color-schemes/src · high confidence

Added funding manifest URL

A new .well-known/funding-manifest-urls file has been added to the repository, pointing to https://null.page/funding.json. This allows external tools and services to discover the project's funding information via the standard well-known URI path.

.well-known · high confidence

macOS users can now use two new Finder services: 'Open Tabby here' opens a new Tabby window in the selected folder, and 'Paste path into Tabby' pastes the selected path into the current Tabby session. On Windows, the Clink readline library has been updated to version 1.7.6, bringing fixes for TAB expansion with 'cd \~', improved Unicode/emoji width measurements, and various prompt and coloring corrections.

extras · high confidence

Added v86 JavaScript emulator binary to the web demo

The tabby-web-demo now includes the v86\_all.js file, a compiled JavaScript bundle for the v86 x86 emulator. This addition enables the demo to run virtual machines directly in the browser, providing the underlying emulation engine for the web-based virtualization experience.

tabby-web-demo · high confidence

Expanded terminal color scheme library

The \tabby-community-color-schemes/schemes\ directory has been populated with a large set of new community-contributed terminal color schemes. This update adds support for numerous popular themes—including 3024 Day/Night, AdventureTime, Afterglow, Atom, Dracula, Gruvbox Dark, and many others—allowing users to apply these specific visual styles to their terminal tabs.

tabby-community-color-schemes/schemes · high confidence

Initial project scaffolding and documentation

The repository is initialized with core project files, including a MIT license, a Code of Conduct, and a comprehensive HACKING.md guide for developers. The project structure is defined with an Electron main process and an Angular-based frontend, organized into modular plugins (e.g., tabby-core, tabby-terminal). Documentation is provided in multiple languages (English, German, Spanish, Russian, Korean, Italian, Chinese, Japanese, Indonesian, Portuguese, and Polish), and contributor recognition is automated via the .all-contributorsrc file.

(repo-wide) · high confidence

Initial project scaffolding for community color schemes

The tabby-community-color-schemes location has been initialized with essential build and configuration files. This includes an EditorConfig to enforce 15-space indentation for scheme files, TypeScript configuration files (tsconfig.json and tsconfig.typings.json) to support source-based compilation and declaration generation, and a webpack configuration (webpack.config.mjs) that extends the shared plugin config and specifically handles scheme assets as source modules.

tabby-community-color-schemes · high confidence

Initial web client shell with configurable tab-closure warning

This change introduces the foundational structure for the Tabby web client, including the Angular module, platform service, and core services (logging, window management, config). A key user-facing behavioral change is the introduction of a 'prevent accidental tab closure' feature; by default, this is disabled (no warning on close), but users can enable it via settings to trigger a browser confirmation dialog before closing the tab.

tabby-web · high confidence

Introduce Tabby Local Plugin for local shell integration

A new 'Tabby Local' plugin has been added to bundle a clickable-links feature and provide local shell capabilities. This addition includes the plugin's source structure, TypeScript configuration for building and generating typings, and a Webpack setup to package the module. Users can now import the \ShellProvider\ from 'tabby-local' and register custom shell implementations via Angular providers to extend local shell functionality.

tabby-local · high confidence

Introduce bundled Tabby Linkifier plugin

The Tabby Linkifier plugin is now bundled with the application, providing a new capability where URLs, IP addresses, and file paths within the terminal become clickable and include a context menu for quick copying. This change includes the necessary build configuration (TypeScript and Webpack) to integrate this plugin into the core product.

tabby-linkifier · high confidence

Introduce new UAC elevation helper component

Added a new C++ project (tabby-uac) that provides a Windows pseudo-console (ConPTY) wrapper for elevated administrative tabs. This component handles secure input/output piping and character encoding conversion, allowing the terminal to run commands with administrator privileges without requiring debug Visual C++ libraries in release builds.

tabby-uac · high confidence

Introduction of the tabby-core plugin API

The tabby-core module now exposes a comprehensive plugin API, allowing third-party extensions to integrate with the application's core services. This includes abstract base classes and interfaces for defining custom commands, hotkeys, configuration options, file providers, and profile providers, as well as services for managing tabs, recovery, theming, and platform interactions. The diff also includes the main application root component structure and CLI handling logic, establishing the foundational architecture for plugin-driven features.

tabby-core · high confidence

New Plugins settings tab with search, install, and upgrade capabilities

A new Plugins settings tab has been added to the application, providing a dedicated UI for managing plugins. Users can now search for and install available plugins from the npm registry, view installed plugins, and upgrade them when newer versions are detected. The interface includes separate sections for 'Available' and 'Installed' plugins, with options to enable/disable plugins (except for core system plugins), uninstall third-party plugins, and view plugin details such as version and author. The implementation uses debounced search inputs for performance and handles busy states during installation and uninstallation operations.

tabby-plugin-manager · high confidence

New auto-sudo-password plugin for SSH sessions

A new plugin has been added that automatically detects sudo password prompts in SSH terminal sessions and offers to paste a saved password. It supports multi-language sudo prompts (including English, German, French, Spanish, Chinese, Japanese, etc.) and sudo-rs, integrating with the existing password storage service to streamline authentication.

tabby-auto-sudo-password · high confidence

A new linkifier plugin has been added to Tabby, enabling clickable links within terminal tabs. This feature supports URLs (HTTP/HTTPS), IP addresses, and local file paths on both Unix and Windows systems. It integrates with the terminal's xterm frontend to highlight and open links, while allowing users to configure a modifier key for triggering link activation.

tabby-linkifier/src · high confidence

New modular build and release scripts for the Tabby application

This change introduces a new set of dedicated Node.js scripts in the \scripts/\ directory to manage the build, packaging, and release lifecycle of the Tabby terminal application. The new \vars.mjs\ centralizes configuration, including versioning logic (supporting nightly builds), Electron version detection, and Keygen licensing details for Windows, macOS, and Linux. Platform-specific build scripts (\build-macos.mjs\, \build-linux.mjs\, \build-windows.mjs\) now handle Electron Builder configurations, including code signing (using SignTool on Windows and native notarization on macOS), architecture targeting (x64, arm64, armv7l), and publishing rules (triggered only on tags). Additional scripts manage specific tasks: \build-modules.mjs\ and \build-native.mjs\ handle Webpack bundling and native module rebuilding via \@electron/rebuild\; \build-docs.mjs\ and \build-typings.mjs\ generate API documentation and TypeScript definitions; \prepackage-plugins.mjs\ prepares bundled plugins; \publish-plugins.mjs\ handles npm publishing; \sentry-upload.mjs\ manages source map and debug file uploads; \generate-icon-metadata.mjs\ processes FontAwesome icons; and \i18n-extract.mjs\ extracts translation strings. The \install-deps.mjs\ script manages dependency installation with patch-package support. This refactoring separates build concerns into distinct, maintainable modules.

scripts · high confidence

New serial port connection support

Added a new Serial tab and profile system, enabling users to connect to serial devices via configurable ports, baud rates, data bits, stop bits, parity, and flow control (RTS/CTS, XON/XOFF). The feature includes a dedicated toolbar with Connect, Disconnect, and Reconnect buttons, a 'Slow feed' mode for byte-by-byte transmission, and support for per-profile color schemes and login scripts.

tabby-serial · high confidence

New tabbed settings interface with dedicated profile, hotkey, and config sync management

The application now features a dedicated tabbed settings interface (tabby-settings) that centralizes configuration management. Users can manage connection profiles and groups through a hierarchical tree view with support for nesting, icons, colors, and default settings inheritance. A new Hotkeys tab allows searching, assigning, and detecting duplicate key bindings. Additionally, a Config Sync tab enables users to connect to a remote Tabby Web instance to upload, download, and automatically synchronize their configuration, with options to selectively sync hotkeys, appearance, and vault data.

tabby-settings · high confidence

New web entry point and browser polyfills for plugin loading

The web client now uses a dedicated entry structure (entry.preload.ts and entry.ts) to bootstrap the Angular application in the browser. This change introduces a custom module loading system that allows plugins to be loaded dynamically via HTTP, including a progress callback for better user feedback during startup. It also adds comprehensive browser polyfills (buffer, crypto, net, stream, etc.) to emulate Node.js modules, enabling existing desktop plugins to run in the web environment.

web · high confidence

Terminal plugin initialization and core infrastructure

The tabby-terminal plugin is introduced, providing the foundational components for terminal tabs, frontends, and session management. This includes the base terminal tab component, a connectable terminal tab class for handling reconnection and session lifecycle, and a middleware stack for processing session streams. The plugin also adds a CLI handler for pasting text into active terminals, default dark and light color schemes, and a comprehensive appearance settings UI for configuring fonts, weights, cursor styles, and color schemes.

tabby-terminal · high confidence

Removals

Removal of legacy Angular Electron service layer

The application has removed the entire legacy service layer located in app/src/services, including ConfigService, ElectronService, HostAppService, LogService, ModalService, NotifyService, and QuitterService. This change eliminates the previous Angular-based implementation for managing Electron integration, configuration migration, logging, and UI notifications, indicating a significant architectural shift away from this specific service structure.

app/src/services · high confidence

Removal of legacy SVG logo asset

The file app/assets/img/logo.svg has been deleted from the application. This removes the specific vector graphic asset previously stored at this path, which will no longer be available for use in the application's interface or build process.

app/assets/img · high confidence

Architecture

Electron shell providers moved to tabby-electron/src/shells

Shell provider implementations (Cmder, Cygwin, Git Bash, MSYS2, PowerShell, WSL, and OS defaults) have been moved from the tabby-local package into the tabby-electron package. This change ensures that Windows-specific shell detection and configuration logic is bundled with the Electron application, while the core tabby-local package remains platform-agnostic.

tabby-electron/src/shells · high confidence

Electron-specific services moved to tabby-electron

Electron-specific implementations of core services (including DockMenu, Docking, Electron, FileProvider, HostApp, HostWindow, Log, Platform, ShellIntegration, Touchbar, UAC, and Updater) have been moved from tabby-local into the tabby-electron/src/services directory. This change centralizes the Electron host logic, ensuring that platform-specific behaviors like window docking, dock/taskbar menus, shell integration, and update handling are now managed exclusively within the Electron application layer.

tabby-electron/src/services · high confidence

Behavioural changes

Application rebranded to Tabby with new CLI and URL scheme support

The application has been rebranded from Terminus to Tabby, introducing a new \tabby://\ URL scheme handler and a comprehensive CLI interface (defined in \app/lib/cli.ts\) that supports commands like \open\, \run\, \profile\, \paste\, and \quickConnect\. The main process entry point (\app/lib/index.ts\) now initializes the \Application\ class, manages multiple windows, and handles second-instance locking. Configuration storage has been updated to use the \TABBY\_CONFIG\_DIRECTORY\ environment variable, with a migration path from the legacy \terminus\ config path. The window management system (\app/lib/window.ts\) now supports Windows 11 Acrylic effects via \glasstron\ and handles platform-specific visual effects, while the PTY manager (\app/lib/pty.ts\) implements flow control to prevent buffer overflows.

app/lib · high confidence

Electron build configuration and project structure initialization

The tabby-electron module now includes its own TypeScript configuration files (tsconfig.json and tsconfig.typings.json) that extend the root project settings, establishing specific base URLs and declaration output paths. Additionally, a new Webpack configuration file (webpack.config.mjs) has been added to manage the build process for the Electron environment by importing and wrapping the shared plugin configuration.

tabby-electron · medium confidence

Electron-specific terminal and SSH features moved to tabby-electron

Electron-specific components have been relocated from tabby-local to tabby-electron, including the PTY interface, SSH profile importers (with support for Include directives and tilde paths), SFTP context menu actions (edit locally, copy full path), terminal path-drop handling, and terminal export functionality. This change also introduces Hyper theme support for terminal color schemes and configures platform-specific hotkeys for the Electron app.

tabby-electron/src · high confidence

Expanded language support and updated translation infrastructure

The application now includes new translations for Afrikaans, Bulgarian, Czech, Danish, German, Spanish, and French, alongside updates to existing locales. The translation workflow has been centralized to Crowdin, as indicated by the new STOP.txt file, and the source template (app.pot) has been refreshed to reflect current interface strings.

locale · high confidence

Fix CLI crashes on Wayland and patch Glasstron X11 error handling

Resolves CLI crashes on Wayland by fixing unhandled X11 errors in the Glasstron native module, ensuring proper error rejection instead of silent failures. Additionally, applies a patch to @serialport/bindings-cpp to improve Windows serial port enumeration by switching to wide-character (UTF-16) registry queries, which enhances compatibility with non-ASCII device identifiers.

app/patches · high confidence

Hardcoded Linux package name for Tabby Terminal

The patch modifies the \app-builder-lib\ build tool to force the Linux package name to 'tabby-terminal', overriding the previous logic that derived the name from the project metadata. This ensures a consistent package identifier for Linux builds regardless of the source configuration.

patches · high confidence

Migration to Tabby branding and plugin system overhaul

The application has been rebranded from Terminus to Tabby, introducing a new plugin architecture that supports a blacklist for deprecated or broken plugins (such as clickable-links and fig-integration) and bundles specific plugins directly with the core. The UI has been updated with a new splash screen, improved toast notifications, and better styling for high-contrast modes, while the underlying module system now uses a centralized lookup to handle legacy and built-in modules more robustly.

app/src · high confidence

New local profile settings UI with command-line and environment editors

The local profile configuration interface has been updated to include dedicated editors for command-line arguments and environment variables. Users can now toggle between a single escaped command string and a split view of program and individual arguments, with automatic parsing and quoting handled by the shell-quote library. An environment variable editor allows adding, removing, and editing key-value pairs, with platform-specific PATH examples and substitution support. The profile settings tab also integrates a working directory picker and a toggle to run as administrator (where UAC is available). Additionally, the shell settings tab exposes a toggle to use the bundled ConPTY backend on supported Windows versions, with a warning if the OS build is too old.

tabby-local/src/components · high confidence

New local terminal profile system with Windows environment refresh and script handling

The local terminal plugin now uses a new profile system that supports built-in shells (including msys2) and allows users to open script files (.sh, .command, .bat, .ps1) directly from the command line, which will run in a terminal that pauses on exit. On Windows, the environment is now refreshed from the registry for new sessions (controlled by the new \terminal.windowsRefreshEnvironment\ config, defaulting to true), fixing issues with stale environment variables. The default behavior for auto-opening a new tab on startup has changed to \true\ (controlled by \terminal.autoOpen\), and the system now correctly resolves guest working directories for WSL sessions.

tabby-local/src · high confidence

New terminal service with profile-aware CWD resolution

A new TerminalService has been introduced to manage terminal tab creation, integrating with the new profile system to select default profiles and resolve the current working directory (CWD). The service now validates that the CWD is an existing directory and resolves guest paths against the shell's file system base before launching, ensuring that invalid or non-directory paths are ignored rather than causing errors.

tabby-local/src/services · high confidence

Rebrand to Tabby and introduce modular build architecture

The application has been rebranded from 'ELEMENTS Benchmark' to 'Tabby', reflected in the new window title, startup logo, and branding assets. Under the hood, the build system has been significantly restructured: the previous single-entry main process script has been replaced by dedicated TypeScript configurations (tsconfig.main.json) and separate Webpack entry points for the main process (webpack.config.main.mjs) and the renderer (webpack.config.mjs). This separation allows for distinct compilation targets (electron-main vs node) and enables the use of modern ES modules for configuration, laying the groundwork for a more maintainable codebase.

app · high confidence

Removal of legacy AngularJS-based UI components

The application has removed the legacy \app\, \checkbox\, and \settingsModal\ components (including their TypeScript, Pug, and Less files) from the \app/src/components\ directory. This deletion eliminates the previous implementation of the main application shell, a custom checkbox control, and the settings modal dialog, indicating a migration away from the older AngularJS-based UI architecture.

app/src/components · high confidence

Removal of legacy Bootstrap LESS styling assets

The application has removed the \app/assets/bootstrap\ directory, deleting the LESS files (\bootstrap.less\, \include.less\, \overrides.less\, \variables.less\) that previously managed the visual theme. This change eliminates the custom styling overrides, color palette, and component adjustments (such as button and form control appearances) that were layered on top of the Bootstrap library, effectively stripping this specific styling layer from the application.

app/assets/bootstrap · high confidence

SSH plugin rewritten with russh and new profile architecture

The SSH plugin has been completely rewritten to use the russh library instead of ssh2, introducing a new profile-based configuration system with support for multiple connection modes (direct, proxy command, jump host, SOCKS, HTTP proxy). The update includes a redesigned SFTP panel with folder operations, keyboard-interactive authentication with URL detection, host key verification with mismatch warnings, and configurable SSH algorithms with mlkem768x25519-sha256 support. Port forwarding configuration is now available through a dedicated modal, and the plugin supports WinSCP integration with private key forwarding.

tabby-ssh · high confidence

Updated application logo and removed custom toast styling

The application now uses a new SVG logo asset, replacing the previous version. Additionally, the custom Less styles that previously forced full-width, borderless, and icon-less toast notifications have been removed, reverting the toast container to its default styling behavior.

app/assets · high confidence

Windows installer UI and build files removed

The custom Windows installer theme (wix-theme.xml) and the associated WiX source files (build.wxs, elements.wxs) have been deleted. This removes the custom graphical interface and specific installation logic previously defined in these files, likely reverting to default WiX installer behavior or preparing for a different packaging approach.

build/windows · high confidence

Windows installer now bundles Visual C++ Redistributable

The Windows installer (NSIS) now automatically installs the Visual C++ Redistributable if the required vcruntime140.dll is missing. This ensures that native modules like node-pty function correctly, preventing issues where the application shows the splash screen but the terminal fails to load. The build configuration file config.gypi has been removed as part of this update.

build · high confidence

macOS entitlements and build configuration updated

The macOS build process now includes a new entitlements file granting permissions for AppleScript automation, Just-In-Time compilation, unsigned executable memory, and access to audio and camera hardware. This change coincides with the removal of the previous Distribution.xml installer manifest, the Elements.component.plist bundle definition, the Elements.postinst.sh post-installation script (which previously modified system volumes and network settings), and the Info.plist file, indicating a shift in how the application is packaged and configured on macOS.

build/mac · high confidence

Fixes

Linux installer creates a wrapper script to launch the application with --no-sandbox

The Linux installation process now generates a wrapper script at /usr/bin/${executable} that invokes the actual application binary located in /opt/${productFilename}/ with the --no-sandbox flag. This change addresses issues where the application failed to start on certain Linux environments due to sandboxing restrictions, ensuring the CLI and GUI launch correctly out-of-the-box for Debian-based distributions.

build/linux · high confidence

Dependencies

Updated project dependencies and lockfiles

This change updates the dependency manifests and lockfiles for the application and its built-in plugins (including tabby-core, tabby-electron, tabby-auto-sudo-password, and tabby-community-color-schemes). The updates reflect the latest resolved versions for packages such as @electron/remote, @ngx-translate/core, mixpanel, and various build tools, ensuring the project uses the current set of library versions defined in the repository.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 30 → 44 (+13.2)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.16) — scores are not directly comparable.

Lenses

  • Code Health 89 → 82 (-7.3)
  • Architecture 43 (new)
  • Maturity 47 → 61 (+14.0)
  • Readiness 16 → 39 (+22.7)
  • Security 30 → 68 (+37.8)
  • Accessibility 41 (new)
  • Performance 60 (new)

Resolved (103)

  • Boundary-crossing change coupling: platform.service.ts ↔ platform.ts (tabby-electron/src/services/platform.service.ts)
  • Boundary-crossing change coupling: profiles.ts ↔ profiles.ts (tabby-ssh/src/profiles.ts)
  • Boundary-crossing change coupling: serialTab.component.ts ↔ sshTab.component.ts (tabby-serial/src/components/serialTab.component.ts)
  • Boundary-crossing change coupling: serialTab.component.ts ↔ telnetTab.component.ts (tabby-serial/src/components/serialTab.component.ts)
  • Boundary-crossing change coupling: sftpPanel.component.ts ↔ platform.ts (tabby-ssh/src/components/sftpPanel.component.ts)
  • Boundary-crossing change coupling: sshTab.component.ts ↔ telnetTab.component.ts (tabby-ssh/src/components/sshTab.component.ts)
  • Change coupling: baseTerminalTab.component.ts ↔ hotkeys.ts (tabby-terminal/src/api/baseTerminalTab.component.ts)
  • Change coupling: entry.preload.ts ↔ polyfills.ts (web/entry.preload.ts)
  • Change coupling: sshTab.component.ts ↔ config.ts (tabby-ssh/src/components/sshTab.component.ts)
  • Critical CVE: [GHSA redacted] (app/yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (web/yarn.lock)
  • Critical CVE: [GHSA redacted] (web/yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (web/yarn.lock)
  • Critical CVE: [GHSA redacted] (web/yarn.lock)
  • Critical CVE: [GHSA redacted] (web/yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Dimension evaluation failed
  • …and 83 more

New (142)

  • AppRootComponent.constructor (cognitive 42) (tabby-core/src/components/appRoot.component.ts)
  • AppRootComponent.constructor (cyclomatic 28) (tabby-core/src/components/appRoot.component.ts)
  • BaseTerminalTabComponent.attachTermContainerHandlers (cognitive 32) (tabby-terminal/src/api/baseTerminalTab.component.ts)
  • BaseTerminalTabComponent.attachTermContainerHandlers (cyclomatic 22) (tabby-terminal/src/api/baseTerminalTab.component.ts)
  • BaseTerminalTabComponent.constructor (cognitive 17) (tabby-terminal/src/api/baseTerminalTab.component.ts)
  • BaseTerminalTabComponent.constructor (cyclomatic 33) (tabby-terminal/src/api/baseTerminalTab.component.ts)
  • BaseTerminalTabComponent.paste (cognitive 23) (tabby-terminal/src/api/baseTerminalTab.component.ts)
  • ClassTooLong: SSHSession (tabby-ssh/src/session/ssh.ts)
  • ClassTooLong: SplitTabComponent (tabby-core/src/components/splitTab.component.ts)
  • ClassTooLong: XTermFrontend (tabby-terminal/src/frontends/xtermFrontend.ts)
  • CommandService.getCommands (cognitive 22) (tabby-core/src/services/commands.service.ts)
  • ConfigService.maybeDecryptConfig (cognitive 21) (tabby-core/src/services/config.service.ts)
  • ConfigService.migrate (cognitive 65) (tabby-core/src/services/config.service.ts)
  • ConfigService.migrate (cyclomatic 33) (tabby-core/src/services/config.service.ts)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • FileTooLong: api/baseTerminalTab.component.ts (tabby-terminal/src/api/baseTerminalTab.component.ts)
  • FileTooLong: components/splitTab.component.ts (tabby-core/src/components/splitTab.component.ts)
  • FileTooLong: frontends/xtermFrontend.ts (tabby-terminal/src/frontends/xtermFrontend.ts)
  • FileTooLong: session/ssh.ts (tabby-ssh/src/session/ssh.ts)
  • High CVE: [GHSA redacted] (yarn.lock)
  • …and 122 more

Changes since last survey

  • 63 commits — 24 feature/other, 39 fixes

By area

  • tabby-terminal/src — 11 commits
  • tabby-core/src — 10 commits
  • tabby-ssh/src — 10 commits
  • (root) — 8 commits
  • app/lib — 6 commits
  • tabby-local/src — 4 commits
  • (repo) — 2 commits
  • tabby-electron/src — 2 commits
  • tabby-settings/src — 2 commits
  • .github/workflows — 1 commit
  • app/package.json — 1 commit
  • tabby-core/yarn.lock — 1 commit
  • tabby-linkifier/src — 1 commit
  • tabby-plugin-manager/src — 1 commit
  • tabby-serial/src — 1 commit
  • tabby-settings/yarn.lock — 1 commit
  • tabby-ssh/package.json — 1 commit

Notable commits

  • fix: Fix PowerShell 7 (pwsh) detection for Microsoft Store/MSIX installs (#11654)
  • fix: Fix Sogou IME commit when pressing Shift on Windows (#11650)
  • fix: Fix WSL sessions not starting in home directory on newer Windows builds (#11663)
  • fix: Fix Windows-only plugin install failures via broken postinstall/prepare scripts (#11525)
  • fix: Fix chained public key and keyboard-interactive authentication (#11492)
  • fix: Fix window title not syncing with renamed tabs (#11494)
  • fix: build fix
  • fix: fix cjs deps
  • fix: fix profile proxy usage
  • fix: fix(UAC): fix "Unknown verb -- 'inject '" error in CMD(clink) (#11367)
  • fix: fix(build): remove unused dependencies and deprecated webpack loaders (#11386)
  • fix: fix(cli): CLI subcommands crash in v1.0.235 (#11513)
  • fix: fix(core): save tab recovery state before disabling it on close (#11621)
  • fix: fix(electron): guard window opacity and traffic-light IPC against closed windows (#11524)
  • fix: fix(local): only accept directories as the session CWD (#11592)
  • fix: fix(local): resolve guest cwd against the shell's fsBase before validating (#11625)
  • fix: fix(local): restore mouse scrolling in Windows TUIs (#11614)
  • fix: fix(serial): fix serial quickConnect not working (#11384)
  • fix: fix(ssh): allow blank passwords in profile and keychain auth (#11358)
  • fix: fix(ssh): import hosts without explicit HostName (#11598)
  • …and 43 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

Eugeny/tabby was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 28 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 4004cc51e95574658c96270322df8234d9d253ab — the exact code this score is about.
  • Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-eb9197011364.