id = "harlequin" name = "Harlequin" homepage = "https://harlequin.sh/" description = "Easy, fast, and beautiful database client for the terminal" executables = ["harlequin"] [dotfiles] # Harlequin's official changelog documents the platform config search paths: # ~/.config/harlequin/config.toml or ~/Library/Application Support/harlequin/ # config.toml on macOS/Linux, %LOCALAPPDATA%/harlequin/config.toml on Windows, # plus dedicated harlequin.toml and .harlequin.toml files in HOME. Its official # examples include database passwords in profiles, so all listed files are # treated as secret content. # https://github.com/tconbeer/harlequin/blob/main/CHANGELOG.md # https://harlequin.sh/docs/config-file/creating-config paths = [ "[configHome]/harlequin/", "[appData]/harlequin/", "%LOCALAPPDATA%/harlequin/", ] secret = [ "[configHome]/harlequin/config.toml", "[appData]/harlequin/config.toml", "%LOCALAPPDATA%/harlequin/config.toml", "~/harlequin.toml", "~/.harlequin.toml", ] [commands] format = 1 label = "Open databases" description = "Open one or more database files or connection strings with a chosen adapter. Adapter-specific options are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false } [[commands.source]] id = "docs" kind = "manual" url = "https://github.com/tconbeer/harlequin/blob/main/README.md" revision = "main 2026-10" evidence = """ harlequin "path/to/duck.db" "another_duck.db" harlequin --adapter sqlite harlequin -a sqlite "path/to/sqlite.db" "another_sqlite.db" `--read-only` connects in a mode the database refuses writes in Harlequin takes `--read-only` too. """ [[commands.field]] id = "adapter" label = "Adapter" type = "string" option = ["--adapter", "-a"] suggestions = [{ value = "duckdb", label = "DuckDB" }, { value = "sqlite", label = "SQLite" }] sources = ["docs"] [[commands.field]] id = "read_only" label = "Read-only" type = "boolean" option = ["--read-only"] sources = ["docs"] [[commands.field]] id = "connections" label = "Database files or connection strings" description = "Leave empty for an in-memory database." type = "string" position = 0 multiple = true sources = ["docs"] [[commands.task]] id = "duckdb" label = "Open DuckDB file" fields = ["connections", "read_only"] required = ["connections"] [[commands.task]] id = "sqlite" label = "Open SQLite file" fields = ["adapter", "connections", "read_only"] required = ["connections"] set = { adapter = ["sqlite"] } [[commands.group]] id = "basic" label = "Basic" fields = ["adapter", "connections", "read_only"]