HomeBrowseUpload
← Back to registry
// Skill profile

SQLFormat

name: SQLFormat

by bytesagain3 · published 2026-03-22

开发工具数据处理
Total installs
0
Stars
★ 0
Last updated
2026-03
// Install command
$ claw add gh:bytesagain3/bytesagain3-sqlformat
View on GitHub
// Full documentation

---

name: SQLFormat

description: "Format, lint, and pretty-print SQL with dialect conversion. Use when checking style, validating syntax, formatting queries, generating clean SQL."

version: "2.0.0"

author: "BytesAgain"

homepage: https://bytesagain.com

source: https://github.com/bytesagain/ai-skills

tags: ["sql","format","lint","query","database","developer"]

categories: ["Developer Tools", "Utility"]

---

# SQLFormat

SQL query formatter, linter, and devtools toolkit. Check SQL style, validate syntax, format and pretty-print queries, lint for best practices, explain execution plans, convert between dialects, and manage SQL templates — all from the command line.

Commands

Run `sqlformat <command> [args]` to use. Each command records timestamped entries to its own log file.

Core Operations

| Command | Description |

|---------|-------------|

| `check <input>` | Check SQL code for style or correctness issues |

| `validate <input>` | Validate SQL syntax against rules |

| `generate <input>` | Generate formatted SQL snippets or boilerplate |

| `format <input>` | Format and pretty-print a SQL query with proper indentation |

| `lint <input>` | Lint SQL for style violations and anti-patterns |

| `explain <input>` | Record query explanation or execution plan notes |

| `convert <input>` | Convert SQL between dialects (MySQL ↔ PostgreSQL, etc.) |

| `template <input>` | Store or retrieve reusable SQL templates |

| `diff <input>` | Record differences between SQL versions |

| `preview <input>` | Preview a formatting transformation before applying |

| `fix <input>` | Log an applied fix to a SQL issue |

| `report <input>` | Record a formatting or lint report |

Utility Commands

| Command | Description |

|---------|-------------|

| `stats` | Show summary statistics across all log files (entry counts, disk usage) |

| `export <fmt>` | Export all data in a given format: `json`, `csv`, or `txt` |

| `search <term>` | Search across all log files for a keyword (case-insensitive) |

| `recent` | Display the last 20 lines from the activity history log |

| `status` | Health check — version, data dir, entry count, disk usage |

| `help` | Show the full command reference |

| `version` | Print current version (v2.0.0) |

> **Note:** Each core command works in two modes — call with no arguments to view recent entries (last 20), or pass input to record a new timestamped entry.

Data Storage

All data is stored locally in plain-text log files:

~/.local/share/sqlformat/
├── check.log          # Style check records
├── validate.log       # Syntax validation results
├── generate.log       # Generated SQL snippets
├── format.log         # Formatted query records
├── lint.log           # Lint findings
├── explain.log        # Execution plan notes
├── convert.log        # Dialect conversion records
├── template.log       # Reusable SQL templates
├── diff.log           # SQL version diffs
├── preview.log        # Preview entries
├── fix.log            # Applied fix records
├── report.log         # Lint/format reports
└── history.log        # Unified activity log (all commands)

Each entry is stored as `YYYY-MM-DD HH:MM|<input>` (pipe-delimited). The `history.log` file receives a line for every command executed, providing a single timeline of all activity.

Requirements

  • **Bash** 4.0+ (uses `set -euo pipefail`)
  • Standard Unix utilities: `date`, `wc`, `du`, `tail`, `grep`, `sed`, `cat`, `basename`
  • No external dependencies — pure bash, works on any Linux or macOS system
  • When to Use

    1. **Code review prep** — use `format` and `lint` to clean up SQL before submitting a pull request

    2. **SQL style enforcement** — use `check` and `lint` to document style violations across a codebase

    3. **Dialect migration** — use `convert` when porting queries from MySQL to PostgreSQL (or vice versa)

    4. **Query documentation** — use `explain` and `template` to catalog common query patterns with notes

    5. **Batch formatting workflows** — use `generate` and `preview` to build formatted SQL output pipelines

    Examples

    # Format a messy query
    sqlformat format "SELECT u.id,u.name,o.total FROM users u JOIN orders o ON u.id=o.user_id WHERE o.status='active'"
    
    # Lint SQL for anti-patterns
    sqlformat lint "SELECT * FROM users WHERE 1=1"
    
    # Validate SQL syntax
    sqlformat validate "INSERT INTO products (name, price) VALUES ('Widget', 9.99)"
    
    # Convert MySQL to PostgreSQL syntax
    sqlformat convert "MySQL: AUTO_INCREMENT -> PostgreSQL: SERIAL"
    
    # Store a reusable template
    sqlformat template "pagination: SELECT * FROM {table} LIMIT {limit} OFFSET {offset}"
    
    # Export all records to CSV
    sqlformat export csv
    
    # Search for entries about JOIN formatting
    sqlformat search JOIN
    
    # View statistics
    sqlformat stats

    Configuration

    Set the `SQLFORMAT_DIR` environment variable to change the data directory:

    export SQLFORMAT_DIR="/custom/path/to/data"

    Default: `~/.local/share/sqlformat/`

    ---

    Powered by BytesAgain | bytesagain.com | hello@bytesagain.com

    // Comments
    Sign in with GitHub to leave a comment.
    // Related skills

    More tools from the same signal band