Skip to content

metruzanca/squeal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

squeal

A lightweight TUI database viewer for SQLite and PostgreSQL, built in Rust.

squeal lets you open any SQLite or PostgreSQL database and browse its tables directly in the terminal. It features a split-pane interface. Navigation is intuitive and easy, and large tables are lazily loaded.

asciinema

Features

  • SQLite & PostgreSQL — auto-detects connection type from the URL
  • Recent databases — startup screen with recently opened databases
  • Split-pane layout — table list on the left, data on the right
  • Vim-style navigation — supports vim movement keys natively, as well as arrow keys
  • Lazy row loading — loads 100 rows at a time, fetches more on demand as you scroll
  • Column filtering — type-aware operators: exact match, substring, numeric comparisons
  • Column sorting — sort any column ascending or descending
  • Foreign key record view — press Enter on a row to view related records from referenced tables
  • Custom queries — write, save, and browse ad-hoc SQL queries
  • Auto-refresh — table data refreshes every 5 seconds (manual refresh with r)
  • Help overlay — press ? anytime to see all available keybindings

Installation

# Install via cargo binstall (picks up prebuilt binaries from GitHub releases)
cargo binstall squeal
# Install from source via GitHub
cargo install --git https://github.com/metruzanca/squeal
# Oneliner for servers
curl -sL https://github.com/metruzanca/squeal/releases/latest/download/squeal-x86_64-unknown-linux-musl.tar.gz | tar -xz && ./squeal

Usage

Open a database:

squeal my-database.db                # SQLite
squeal postgres://user:pass@host/db  # PostgreSQL
squeal --demo                        # preview with dummy data

Tech Stack

  • ratatui — terminal UI framework
  • rusqlite — SQLite bindings for Rust
  • postgres — PostgreSQL client for Rust
  • crossterm — cross-platform terminal input
  • clap — CLI argument parsing
How AI was used

This project was written entirely through agentic coding. I (@metruzanca) didn't write a single line of code—everything was done through prompts with Kimi K2.5 via Opencode. I've been writing code professionally since late 2019 and coding even longer than that, so while I didn't write the code, I wasn't flying blind when steering the agent in the right direction.

I'm currently using squeal in my own dev environment and it's working well. You're free to use it as-is or modify it to suit your needs.

Why is it called squeal?

Based on how ThePrimeagen jokingly pronounces SQL.

About

TUI app for viewing databases in your terminal

Resources

Stars

Watchers

Forks

Contributors

Languages