Skip to main content

Terminal-native, keyboard-first async database IDE

Project description

Teridex 📟

Terminal-native, keyboard-first async database IDE

Teridex is a TUI database client built on a clean async core and a plugin-first architecture. It combines a rich query editor, lazy schema browser, virtualized result tables, and a fuzzy command palette — all inside your terminal.


✨ Features

  • 🎹 Keyboard-First Layout: Fully navigatable using Vim keys or custom layout keymaps.
  • ⚡ Asynchronous Execution Engine: Run queries in the background. Long-running queries will never freeze the UI, and can be cancelled with a single keystroke.
  • 🔌 Pluggable Architecture: Extend functionality with custom panels, commands, and hooks subscribing to runtime event lifecycles.
  • 📊 Interactive TUI: Rich results viewer, schema tree explorer, syntax highlighting, and batch rendering.
  • 🛠️ Command Line Interface: Fast, standalone utilities to connect, test connections, and execute queries directly to standard output.

🗄️ Supported Databases

Teridex is database-agnostic and loads drivers dynamically via optional extras.

Database Extra Adapter Protocol Details
DuckDB [duckdb] duckdb Direct in-process analytics engine
SQLite [sqlite] aiosqlite Async local database access
PostgreSQL [postgres] asyncpg Native async driver for Postgres
MySQL [mysql] asyncmy2 Native async driver for MySQL
All Drivers [all] Installs all supported drivers

🚀 Installation

Teridex requires Python 3.13 or newer. It is recommended to install using pipx or uv to keep the dependencies isolated.

Using uv (Recommended)

# Install with all database drivers
uv tool install "teridex[all]"

# Install with PostgreSQL and SQLite support only
uv tool install "teridex[postgres,sqlite]"

Using pipx

# Install with DuckDB support
pipx install "teridex[duckdb]"

📖 Quick Start

You can run queries one-shot from the shell or jump into the terminal user interface.

Running a One-Shot Query

Use the run command to execute a single query and render the result as a styled table:

teridex run --dsn "sqlite:///./my_database.db" "SELECT * FROM users LIMIT 5"

Starting the TUI

Launch the full interactive terminal IDE:

teridex tui --dsn "postgres://user:pass@localhost:5432/my_db"

Command Reference

# Display help and options
teridex --help

# Print version and discovered database adapters
teridex version

# Sanity check database connection
teridex connect --dsn "mysql://root:secret@127.0.0.1/test"

# List discovered plugins
teridex plugins list

⚙️ Configuration

Teridex configuration is loaded in layers: Defaults ➡️ TOML Configuration ➡️ Environment Variables ➡️ CLI Flags.

The default configuration file is searched at ~/.config/teridex/config.toml. The configuration file must have secure permissions (e.g., 0600) if it contains credentials.

Here is an example config file (see config.example.toml):

[ui]
theme = "monokai"               # Theme: "monokai" (warm) | "nord" (cool)
keymap = "default"              # Keymap: "default" | "vim"
show_status_bar = true          # Toggle bottom status bar
row_batch_size = 1000           # Query result batch loading size
max_display_rows = 10000        # Caps rows stored in results view

[engine]
default_timeout_seconds = 60.0  # Soft limit for query runs
max_history_entries = 1000      # Max CLI query history entries
pool_size = 5                   # Connection pool size

[plugins]
enabled = []                    # Allowlist (empty loads all discovered)
disabled = []                   # Blocklist

Environment Overrides

Any configuration value can be overridden via environment variables using the pattern TERIDEX_<SECTION>__<FIELD>.

Examples:

# Override the UI theme
export TERIDEX_UI__THEME="nord"

# Override keymap to vim
export TERIDEX_UI__KEYMAP="vim"

🤝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

🔐 Security

If you discover a security vulnerability, please see our Security Policy.

📝 License

Distributed under the MIT License. See LICENSE for more information.


Author: Salvatore Corvaglia

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

teridex-0.7.0.tar.gz (159.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

teridex-0.7.0-py3-none-any.whl (89.9 kB view details)

Uploaded Python 3

File details

Details for the file teridex-0.7.0.tar.gz.

File metadata

  • Download URL: teridex-0.7.0.tar.gz
  • Upload date:
  • Size: 159.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for teridex-0.7.0.tar.gz
Algorithm Hash digest
SHA256 551139a4d9fee79cc2682f67f89ed9f3e9e0646e47a266399db08c34106b437a
MD5 565103b7756b5c53273b15520332536d
BLAKE2b-256 50614cd9b6d29fe82f5274e8fd5fef55f8798d876c9f7e981fd7c919e86c29e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for teridex-0.7.0.tar.gz:

Publisher: release.yml on salvatorecorvaglia/teridex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file teridex-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: teridex-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 89.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for teridex-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 51cd9647cd3b003fb23beec231b955d87b6b5c3994a0fc5592a4b145474ffbb3
MD5 3a35a18d39e11ead57ba338b446d6009
BLAKE2b-256 f230045139979b331540b207f53fafeddc9442bd467169c1b758ee28410b31bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for teridex-0.7.0-py3-none-any.whl:

Publisher: release.yml on salvatorecorvaglia/teridex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page