Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

471 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fox Schema

Compare schemas · generate migrations · run SQL — across 10 dialects.

Install once, then open the local web UI (foxschema) for Schema Sync and the SQL Editor. Self-host with Docker when you need a server.

foxschema.com · Install · User guide · Publish · Contributing

npm Docker TypeScript Node ESM License

Install

Requires Node.js ≥ 22.5 (npm / Homebrew). Docker needs no Node.

# npm — macOS, Windows, Linux (arm64 + x64)
npm install -g foxschema

# Homebrew — macOS (formula in this repo; Homebrew 6+ needs trust once)
brew tap tedious-code/foxschema https://github.com/tedious-code/foxschema
brew trust tedious-code/foxschema
brew install foxschema

# Docker — servers (linux/amd64, includes Db2)
docker pull 5nickels/foxschema:latest

Windows:

winget install OpenJS.NodeJS.LTS
npm install -g foxschema

Full matrix: docs/INSTALL.md.

Use the app

foxschema                 # start UI on http://localhost:3210 and open the browser
foxschema shortcut        # put a Fox icon on your Desktop
foxschema stop            # stop the background server
foxschema doctor

Headless / CI:

foxschema compare --source a --target b
foxschema migrate --source a --target b
foxschema tui

SQL Editor (0.2)

A full query workbench next to Schema Sync — not a thin prompt.

SQL Editor — multi-destination run, Data Peek, FoxScript

Feature What you get
Multi-destination Run Same SQL against every checked connection; By-cred or Side-by-side results
Notebook cells SQL + -- @js / -- @ts / -- @node cells with per-cell ▶ and Out [n]
FoxScript Monaco language, fences, markers, schema-aware tokens
Data Peek Cmd/Ctrl-click a table in Schema, or click rust FK cells in results
Peek tools WHERE / ORDER BY / LIMIT, Prev/Next, drag ⋮⋮ to arrange, resize
Schema explorer Insert names, autocomplete, edit table / view source
Variables & secrets ${{name}}, @set, session secrets, code-cell vars
Safe mode Confirm writes; bookmarks & samples included

Walkthrough: User guide → SQL Editor.

Schema Sync

Point Fox at a source and a target. It introspects both, shows a color-coded diff, then generates DDL to align the target (dry-run by default).

Fox Schema demo — connect, compare, migration SQL

  • Schema diff — tables, columns, keys, indexes, constraints, views, routines…
  • Migration generation — reviewable target-dialect DDL
  • Cross-dialect aware — fewer false positives (e.g. Postgres → MySQL)
  • Safe apply — dry-run default; skip-on-error optional; history recorded
  • Credentials encrypted at rest — passwords never returned to the browser

Cross-dialect demo:

Cross-dialect compare

Docker (self-host)

docker run -d --name foxschema \
  -p 3001:3001 \
  -v foxschema_data:/data \
  5nickels/foxschema:latest

Open http://localhost:3001. Guide: docs/DEPLOYMENT.md.

Supported dialects

PostgreSQL · MySQL · MariaDB · SQL Server · Azure SQL · Oracle · IBM Db2 · SQLite · ClickHouse · Amazon Redshift

One product — Docker image includes Db2 on linux/amd64.

Package notes (npm)

The published foxschema CLI is built from TypeScript and ships as Node ESM ("type": "module") with a types entry for tooling. Native drivers may load as CommonJS at runtime. Requires Node ≥ 22.5.

How it's built

Workspace Role
packages/core Diff / migration engine and dialect providers
apps/web Express API + React UI (CLI launcher + Docker)
apps/cli foxschema CLI, desktop shortcut, TUI
apps/e2e Playwright tests against dockerized databases

Maintainers: docs/PUBLISH.md · docs/ARCHITECTURE.md.

License

Copyright 2024–2026 Huy Phan <huyplb@gmail.com> and tedious-code contributors. See NOTICE and LICENSE (Apache-2.0).

Keep copyright / NOTICE / LICENSE when you fork or redistribute — stripping authorship notices is not allowed under the License.

Releases

Packages

Used by

Contributors

Languages