[READ-ONLY] Mirror of https://github.com/metruzanca/squeal. TUI app for viewing databases in your terminal
database rust sql tui
0

Configure Feed

Select the types of activity you want to include in your feed.

Rust 100.0%
59 1 2

Clone this repository

https://tangled.org/metru.dev/squeal https://tangled.org/did:plc:rq5djka3u2attdupxpcpegzf
git@tangled.org:metru.dev/squeal git@tangled.org:did:plc:rq5djka3u2attdupxpcpegzf

For self-hosted knots, clone URLs may differ based on your setup.



README.md

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.