Skip to content
CAI
Software that uses CAICheck a score

achristmascarl/rainfrog

68.4

Adequate · 30 September 2026

17.1k

lines of production code

Rust

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Rainfrog is a terminal-based SQL client that provides a tabbed interface for editing, executing, and managing queries across multiple database engines including PostgreSQL, MySQL, Oracle, SQLite, and DuckDB. It features a vim-emulated editor with intelligent autocomplete, a system for saving and searching favorite queries, and a history of past executions. The application supports cross-platform development through containerized environments and includes robust configuration options for UI behavior, keybindings, and secure connection handling.

Features

Add Oracle database driver support

Users can now connect to and query Oracle databases using the new Oracle driver. This change introduces connection option parsing (including JDBC URL support and SSL/TLS via the \ssl-required\ flag), connection pooling, and query execution capabilities specific to Oracle, integrating it into the application's existing database abstraction layer.

src/database/oracle · high confidence

Added cross-database test data schemas for DuckDB, MySQL, Oracle, PostgreSQL, and SQLite

New SQL initialization scripts have been added to the \dev\ directory to provide consistent test data across five database engines: DuckDB, MySQL, Oracle, PostgreSQL, and SQLite. These scripts define a shared schema including \user\, \robot\, \part\, \robot\_parts\, and \sensor\_data\ tables, populated with sample data and supporting structures like views and functions (where applicable). This enables developers to run and verify application logic against a uniform dataset regardless of the underlying database driver being tested.

dev · high confidence

Introduces SQL autocomplete with ranking and UI rendering

Adds a new completion system for SQL queries, including a coordinator that manages background catalog discovery, candidate ranking, and debounced requests, alongside a TUI dropdown renderer that displays suggestions with labels, details, and viewport scrolling.

src/completion · high confidence

Major UI overhaul with external editor, vim emulation, and favorites

The application has been restructured around a new tabbed interface that replaces the previous 'IDE' component with an Editor, History, and Favorites tabs. Users can now edit SQL queries in their preferred external editor (defined by the VISUAL or EDITOR environment variables) via a new \RequestExternalEditor\ action. The built-in editor now supports vim-style keybindings (Normal, Insert, Visual, Replace modes) for navigation and editing. A new Favorites system allows users to save, search, and manage named query snippets. The UI also introduces resizable sections, a data export feature (CSV), and improved connection handling with support for structured config entries, keyring password storage, and SSL requirements.

src · high confidence

New database drivers for DuckDB, MySQL, and SQLite

The application now supports connecting to DuckDB, MySQL, and SQLite databases in addition to the existing PostgreSQL support. This change introduces dedicated driver implementations for each new database engine, enabling users to execute queries, browse schema objects (tables, views, functions), and utilize autocomplete features specific to each platform. The drivers are integrated into the central database module and expose built-in function lists for intelligent code completion.

src/database · high confidence

New developer tooling and contribution guidelines

The project now includes a CONTRIBUTING.md file that establishes guidelines for AI-generated contributions, requiring disclosure and human verification. A new Dockerfile and docker-compose.yml provide containerized development environments for PostgreSQL, MySQL, Oracle, and DuckDB, while a Makefile simplifies local setup with targets for running the app against different databases and managing CI database instances. An install.sh script allows users to download and install pre-built binaries from GitHub releases, and the build.rs script has been updated to use vergen\_git2 to embed more detailed build metadata (Cargo, Git, Rustc, Sysinfo) into the binary.

(repo-wide) · high confidence

Behavioural changes

Configuration format migrated from JSON5 to TOML with expanded settings

The application configuration file has moved from \.config/config.json5\ to \.config/rainfrog\_config.toml\, introducing a new structure that supports additional settings beyond keybindings. Users will now find options for UI behavior such as \mouse\_mode\, \data\_compact\_columns\, and \autocomplete\ parameters (debounce time, trigger length) in the \\[settings\]\ section. The keybinding definitions have been expanded to cover more interface sections (Menu, Editor, History, Data, Favorites, PopUp) and include new actions like \AbortQuery\, \RequestExternalEditor\, and section resizing controls, replacing the previous limited set of focus and quit commands.

.config · high confidence

Major UI component refactor with new editor, favorites, and history modules

The \src/components\ module has been restructured from a single file into a modular directory, introducing dedicated components for the query editor (\editor.rs\), saved queries (\favorites.rs\), and query history (\history.rs\). The legacy \ide.rs\ and \fps.rs\ components have been removed. The core \Component\ trait has been updated to pass \AppState\ to event handlers and drawing methods, enabling components to access shared state directly. A new \scroll\_table.rs\ component handles data grid rendering and scrolling, replacing the previous inline table logic in \data.rs\. The editor now includes a completion menu system, while the favorites and history modules provide searchable, navigable lists of saved and past queries.

src/components · high confidence

Structured confirmation dialogs for critical actions

The application now uses dedicated confirmation popups for high-impact operations, requiring explicit user approval before proceeding. This includes confirming query execution (with specific warnings for EXPLAIN ANALYZE and write statements), bypassing the SQL parser, exporting large datasets, yanking rows to the clipboard, and committing or rolling back transactions. Additionally, a new popup allows users to name favorites with input sanitization and duplicate-name warnings.

src/popups · high confidence

Updated demo video script

The VHS demo tape script has been updated to reflect the current state of the application, including new commands for querying user data and performing deletions, as well as adjusted timing and typing speeds for the generated GIF.

vhs · high confidence

Dependencies

Rainfrog v0.4.6: Major dependency upgrade and edition bump

The application has been updated to version 0.4.6, migrating the Rust edition from 2021 to 2024 and raising the minimum supported Rust version to 1.88. This release performs a comprehensive upgrade of core dependencies, including significant version jumps for the TUI framework (ratatui 0.26→0.30), the async runtime (tokio 1.32→1.43), and the SQL parser (sqlparser 0.58→0.62). It also introduces new optional features for database connectivity, specifically adding support for Oracle and DuckDB drivers, while updating clipboard handling via the arboard library.

(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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 66 → 68 (+2.1)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 79 → 78 (-0.5)
  • Architecture 100 → 96 (-3.8)
  • Maturity 57 → 57 (+0.6)
  • Readiness 75 → 73 (-2.6)
  • Security 65 → 75 (+10.2)
  • Event Sourcing 100 → 100 (+0.0)
  • Performance 100 (new)

Resolved (12)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Hotspot: src/components/favorites.rs (src/components/favorites.rs)
  • Hotspot: src/config.rs (src/config.rs)
  • Hotspot: src/database/duckdb.rs (src/database/duckdb.rs)
  • Hotspot: src/database/mysql.rs (src/database/mysql.rs)
  • Hotspot: src/database/postgresql.rs (src/database/postgresql.rs)
  • Hotspot: src/database/sqlite.rs (src/database/sqlite.rs)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)

New (26)

  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium vulnerability: RUSTSEC-2026-0285 (Cargo.lock)
  • Medium: security finding (details withheld)
  • Outdated: async-trait
  • Outdated: chrono
  • Outdated: clap
  • Outdated: csv
  • Outdated: duckdb
  • Outdated: futures
  • Outdated: human-panic
  • Outdated: indexmap
  • Outdated: libc
  • Outdated: log
  • Outdated: rpassword
  • Outdated: serde
  • Outdated: serde_json
  • Outdated: tempfile
  • …and 6 more

Changes since last survey

  • 5 commits — 4 feature/other, 1 fixes

By area

  • (root) — 3 commits
  • .github/workflows — 1 commit
  • src/components — 1 commit

Notable commits

  • fix: fix: highlight consecutive SQL keywords (#344)
  • change: Build GNU releases against glibc 2.28 (#341)
  • change: bump to v0.4.6 (#343)
  • change: shortcut to full screen results (#342)
  • change: update database driver information in README (#340)

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

Survey your own repository

achristmascarl/rainfrog 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 30 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 771fa61b86bc9a4838c952d729ba79319a556f33 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-505904ce13c1.