Skip to content

developer82/Spiral

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spiral logo

SPIRAL

A modern multi-database client for SQL, Redis, and MongoDB — built with Electron, React, and TypeScript.

About

Spiral is a cross-platform desktop client for managing and querying multiple database engines from one app. It pairs a lazy-loaded schema explorer with full CRUD tooling for tables, views, stored procedures, users, and more — plus dedicated dialogs for backup/restore, schema comparison, and an embedded AI assistant for writing SQL.

Developed by Ophir Oren using AI agents, for educational purposes. Main motivation: after moving to macOS, lacked a good tool to manage databases, create ERD diagrams, and do database profiling.

Spiral - Solar theme   Spiral - Dark theme   Spiral - Glass theme

Features

  • Multi-database support — SQL Server, MySQL, PostgreSQL, SQLite, MongoDB, and Redis (standalone, cluster, and sentinel modes), via a pluggable provider architecture.
  • Explorer — lazy-loaded database tree (tables, views, stored procedures, functions, types, columns, keys, constraints, triggers, indexes, statistics) with full CRUD dialogs for tables, views, stored procedures, table types, and collections.
  • Query Editor — Monaco-based SQL/JSON/Redis-command editor with execution plans, client statistics, and result grids; MongoDB shell-style and JSON command syntax.
  • Interactive Tables — query results render as editable grids: sort, create, and delete rows directly, with an enhanced look & feel. Auto-disabled for connections marked as a Critical environment to prevent accidental edits.
  • SQL Profiler — dedicated profiling page with execution plan visualization, client statistics, and query result export.
  • User & Security Management — per-provider user/role management (SQL Server logins & roles, MySQL server/database privileges, MongoDB roles, Redis ACL users).
  • Backup & Restore — native or pure-JS engines per provider (SQL Server, MySQL, PostgreSQL, SQLite, MongoDB, Redis) with compression, scope, and conflict-resolution options.
  • Compare — save source/target comparison configs, run schema & row-level diff reports, generate sync scripts, and execute (or revert) syncs directly against a target database.
  • Redis Dashboard — live server INFO snapshot (memory, stats, persistence, replication, cache efficiency) with safe and destructive maintenance commands.
  • MongoDB Tooling — document editor (EJSON, all BSON types), aggregation pipeline builder with live preview, and schema validation rule editor/tester.
  • AI Assistant — local, embedded AI (SQLCoder via node-llama-cpp) for SQL help inside the Explorer.
  • Smart Execution Documentation (SED) — task-driven panel for guided multi-step database operations.
  • Internationalization — English and Hebrew (full RTL support), extensible via i18n locale files.
  • Connection Management — environments (Production/QA/Dev) with color tagging, critical-environment query safeguards, SSH tunneling, TLS/SSL, auto-connect, and background schema auto-refresh.
  • Customization — dark/light themes, resizable panels, native-feeling toolbars (macOS capsule style / Windows & Linux flat style), and a Tips & Tricks notification system.
  • Auto-Update — built-in release checking and update flow.

AI Assistant (experimental)

Spiral AI assistant

Chat with your data and build queries using natural language. The assistant runs on a local model — nothing leaves your machine, no data is ever sent to a remote provider, so your databases stay private. Model management (download, switch, remove) lives in Settings → AI, and more models are coming soon. This feature is experimental and still evolving.


ERD Scheme

Spiral ERD diagram

Visualize your database schema as an interactive entity-relationship diagram. Tables and their relationships are laid out automatically in a modern, draggable editor — customize the layout, annotate diagrams with notes, and export them for documentation or sharing.


Query Statistics & Execution Plan

Spiral client statistics

See exactly what a query costs and where the time goes. The Execution Plan view renders SQL Server's query plan as an interactive graph — operators, cost percentages, and row estimates per step — making it easy to spot scans, missing indexes, or expensive joins. Client Statistics complements it with runtime numbers (execution time, rows returned, bytes sent), so you can compare runs and confirm a change actually made a query faster, not just guess.


Spiral execution plan

Database Environments

Spiral environments

Keep Production, QA, and Development apart at a glance. Create your own named environments, give each a color, and assign them to saved connections — the color shows up throughout the Explorer so it's always clear what you're connected to. Mark sensitive environments as Critical to get extra guardrails: non-read-only queries prompt for confirmation before running, and Interactive Tables are automatically disabled to prevent accidental edits.


Native Shells

Spiral native Mongo shell

For MongoDB and Redis, the query tab acts as a native shell rather than a translated query builder. Write real db.collection.method(...) MongoDB shell syntax or plain Redis commands (GET, HGETALL, etc.) and run them directly against the database — no abstraction layer in between, no SQL-shaped compromise. Results come back structured (document cards for Mongo, normalized tables for Redis) so you still get a readable view on top of the raw command output.


Personal & Secure

Spiral user profile

Set up a user profile — name and avatar — so the app feels like yours, not a generic tool. More importantly: everything stays local. Your profile, connections, passwords, and queries are stored on your machine and never leave it — no account, no telemetry-backed cloud sync, no remote server in the loop.


Password Protected

Spiral password protection

Spiral manages your saved database connections, and can remember their passwords for you. To keep that safe, you can set an application password — doing so also encrypts every stored connection password on disk, not just the app itself.

Once a password is set, Auto-Lock options control when Spiral locks itself: Lock on Startup (require the password every time the app launches) and Lock on Inactivity (lock automatically after a configurable idle timeout). When locked, a full-screen lock screen blocks access to the app until the correct password is entered — also triggered on OS suspend or screen-lock events.

There is no password recovery: forgetting it means clearing the app's user data directory to regain access.


Project Setup

Install

$ npm install

Development

$ npm run dev

Build

# For windows
$ npm run build:win

# For macOS
$ npm run build:mac

# For Linux
$ npm run build:linux

Contributing

Spiral grows with help from people who use it. Whether it's a bug, a rough edge, or an idea for a feature — open an issue and let's talk about it. Pull requests are very welcome too. Every contribution, big or small, is genuinely appreciated.

About

A cross-platform database client and administration tool for SQL and NoSQL databases, featuring interactive ERD visualizers, visual execution plans, database profiling, schema comparison, and a local AI query generator.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors