{
  "schemaVersion": "1.0",
  "item": {
    "slug": "duckdb-cli-ai-skills",
    "name": "DuckDB CLI skills",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/CamelSprout/duckdb-cli-ai-skills",
    "canonicalUrl": "https://clawhub.ai/CamelSprout/duckdb-cli-ai-skills",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/duckdb-cli-ai-skills",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=duckdb-cli-ai-skills",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/duckdb-cli-ai-skills"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/duckdb-cli-ai-skills",
    "agentPageUrl": "https://openagent3.xyz/skills/duckdb-cli-ai-skills/agent",
    "manifestUrl": "https://openagent3.xyz/skills/duckdb-cli-ai-skills/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/duckdb-cli-ai-skills/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "DuckDB CLI Specialist",
        "body": "Helps with data analysis, SQL queries and file conversion via DuckDB CLI."
      },
      {
        "title": "Read data files directly with SQL",
        "body": "# CSV\nduckdb -c \"SELECT * FROM 'data.csv' LIMIT 10\"\n\n# Parquet\nduckdb -c \"SELECT * FROM 'data.parquet'\"\n\n# Multiple files with glob\nduckdb -c \"SELECT * FROM read_parquet('logs/*.parquet')\"\n\n# JSON\nduckdb -c \"SELECT * FROM read_json_auto('data.json')\""
      },
      {
        "title": "Open persistent databases",
        "body": "# Create/open database\nduckdb my_database.duckdb\n\n# Read-only mode\nduckdb -readonly existing.duckdb"
      },
      {
        "title": "Output formats (as flags)",
        "body": "FlagFormat-csvComma-separated-jsonJSON array-tableASCII table-markdownMarkdown table-htmlHTML table-lineOne value per line"
      },
      {
        "title": "Execution arguments",
        "body": "ArgumentDescription-c COMMANDRun SQL and exit-f FILENAMERun script from file-init FILEUse alternative to ~/.duckdbrc-readonlyOpen in read-only mode-echoShow commands before execution-bailStop on first error-header / -noheaderShow/hide column headers-nullvalue TEXTText for NULL values-separator SEPColumn separator"
      },
      {
        "title": "CSV to Parquet",
        "body": "duckdb -c \"COPY (SELECT * FROM 'input.csv') TO 'output.parquet' (FORMAT PARQUET)\""
      },
      {
        "title": "Parquet to CSV",
        "body": "duckdb -c \"COPY (SELECT * FROM 'input.parquet') TO 'output.csv' (HEADER, DELIMITER ',')\""
      },
      {
        "title": "JSON to Parquet",
        "body": "duckdb -c \"COPY (SELECT * FROM read_json_auto('input.json')) TO 'output.parquet' (FORMAT PARQUET)\""
      },
      {
        "title": "Convert with filtering",
        "body": "duckdb -c \"COPY (SELECT * FROM 'data.csv' WHERE amount > 1000) TO 'filtered.parquet' (FORMAT PARQUET)\""
      },
      {
        "title": "Schema inspection",
        "body": "CommandDescription.tables [pattern]Show tables (with LIKE pattern).schema [table]Show CREATE statements.databasesShow attached databases"
      },
      {
        "title": "Output control",
        "body": "CommandDescription.mode FORMATChange output format.output fileSend output to file.once fileNext output to file.headers on/offShow/hide column headers.separator COL ROWSet separators"
      },
      {
        "title": "Queries",
        "body": "CommandDescription.timer on/offShow execution time.echo on/offShow commands before execution.bail on/offStop on error.read file.sqlRun SQL from file"
      },
      {
        "title": "Editing",
        "body": "CommandDescription.edit or \\eOpen query in external editor.help [pattern]Show help"
      },
      {
        "title": "Data export",
        "body": "csv - Comma-separated for spreadsheets\ntabs - Tab-separated\njson - JSON array\njsonlines - Newline-delimited JSON (streaming)"
      },
      {
        "title": "Readable formats",
        "body": "duckbox (default) - Pretty ASCII with unicode box-drawing\ntable - Simple ASCII table\nmarkdown - For documentation\nhtml - HTML table\nlatex - For academic papers"
      },
      {
        "title": "Specialized",
        "body": "insert TABLE - SQL INSERT statements\ncolumn - Columns with adjustable width\nline - One value per line\nlist - Pipe-separated\ntrash - Discard output"
      },
      {
        "title": "Navigation",
        "body": "ShortcutActionHome / EndStart/end of lineCtrl+Left/RightJump wordCtrl+A / Ctrl+EStart/end of buffer"
      },
      {
        "title": "History",
        "body": "ShortcutActionCtrl+P / Ctrl+NPrevious/next commandCtrl+RSearch historyAlt+< / Alt+>First/last in history"
      },
      {
        "title": "Editing",
        "body": "ShortcutActionCtrl+WDelete word backwardAlt+DDelete word forwardAlt+U / Alt+LUppercase/lowercase wordCtrl+KDelete to end of line"
      },
      {
        "title": "Autocomplete",
        "body": "ShortcutActionTabAutocomplete / next suggestionShift+TabPrevious suggestionEsc+EscUndo autocomplete"
      },
      {
        "title": "Autocomplete",
        "body": "Context-aware autocomplete activated with Tab:\n\nKeywords - SQL commands\nTable names - Database objects\nColumn names - Fields and functions\nFile names - Path completion"
      },
      {
        "title": "Create table from file",
        "body": "CREATE TABLE sales AS SELECT * FROM 'sales_2024.csv';"
      },
      {
        "title": "Insert data",
        "body": "INSERT INTO sales SELECT * FROM 'sales_2025.csv';"
      },
      {
        "title": "Export table",
        "body": "COPY sales TO 'backup.parquet' (FORMAT PARQUET);"
      },
      {
        "title": "Quick statistics",
        "body": "SELECT\n    COUNT(*) as count,\n    AVG(amount) as average,\n    SUM(amount) as total\nFROM 'transactions.csv';"
      },
      {
        "title": "Grouping",
        "body": "SELECT\n    category,\n    COUNT(*) as count,\n    SUM(amount) as total\nFROM 'data.csv'\nGROUP BY category\nORDER BY total DESC;"
      },
      {
        "title": "Join on files",
        "body": "SELECT a.*, b.name\nFROM 'orders.csv' a\nJOIN 'customers.parquet' b ON a.customer_id = b.id;"
      },
      {
        "title": "Describe data",
        "body": "DESCRIBE SELECT * FROM 'data.csv';"
      },
      {
        "title": "Pipe and stdin",
        "body": "# Read from stdin\ncat data.csv | duckdb -c \"SELECT * FROM read_csv('/dev/stdin')\"\n\n# Pipe to another command\nduckdb -csv -c \"SELECT * FROM 'data.parquet'\" | head -20\n\n# Write to stdout\nduckdb -c \"COPY (SELECT * FROM 'data.csv') TO '/dev/stdout' (FORMAT CSV)\""
      },
      {
        "title": "Configuration",
        "body": "Save common settings in ~/.duckdbrc:\n\n.timer on\n.mode duckbox\n.maxrows 50\n.highlight on"
      },
      {
        "title": "Syntax highlighting colors",
        "body": ".keyword green\n.constant yellow\n.comment brightblack\n.error red"
      },
      {
        "title": "External Editor",
        "body": "Open complex queries in your editor:\n\n.edit\n\nEditor is chosen from: DUCKDB_EDITOR → EDITOR → VISUAL → vi"
      },
      {
        "title": "Safe Mode",
        "body": "Secure mode that restricts file access. When enabled:\n\nNo external file access\nDisables .read, .output, .import, .sh etc.\nCannot be disabled in the same session"
      },
      {
        "title": "Tips",
        "body": "Use LIMIT on large files for quick preview\nParquet is faster than CSV for repeated queries\nread_csv_auto and read_json_auto guess column types\nArguments are processed in order (like SQLite CLI)\nWSL2 may show incorrect memory_limit values on some Ubuntu versions"
      }
    ],
    "body": "DuckDB CLI Specialist\n\nHelps with data analysis, SQL queries and file conversion via DuckDB CLI.\n\nQuick Start\nRead data files directly with SQL\n# CSV\nduckdb -c \"SELECT * FROM 'data.csv' LIMIT 10\"\n\n# Parquet\nduckdb -c \"SELECT * FROM 'data.parquet'\"\n\n# Multiple files with glob\nduckdb -c \"SELECT * FROM read_parquet('logs/*.parquet')\"\n\n# JSON\nduckdb -c \"SELECT * FROM read_json_auto('data.json')\"\n\nOpen persistent databases\n# Create/open database\nduckdb my_database.duckdb\n\n# Read-only mode\nduckdb -readonly existing.duckdb\n\nCommand Line Arguments\nOutput formats (as flags)\nFlag\tFormat\n-csv\tComma-separated\n-json\tJSON array\n-table\tASCII table\n-markdown\tMarkdown table\n-html\tHTML table\n-line\tOne value per line\nExecution arguments\nArgument\tDescription\n-c COMMAND\tRun SQL and exit\n-f FILENAME\tRun script from file\n-init FILE\tUse alternative to ~/.duckdbrc\n-readonly\tOpen in read-only mode\n-echo\tShow commands before execution\n-bail\tStop on first error\n-header / -noheader\tShow/hide column headers\n-nullvalue TEXT\tText for NULL values\n-separator SEP\tColumn separator\nData Conversion\nCSV to Parquet\nduckdb -c \"COPY (SELECT * FROM 'input.csv') TO 'output.parquet' (FORMAT PARQUET)\"\n\nParquet to CSV\nduckdb -c \"COPY (SELECT * FROM 'input.parquet') TO 'output.csv' (HEADER, DELIMITER ',')\"\n\nJSON to Parquet\nduckdb -c \"COPY (SELECT * FROM read_json_auto('input.json')) TO 'output.parquet' (FORMAT PARQUET)\"\n\nConvert with filtering\nduckdb -c \"COPY (SELECT * FROM 'data.csv' WHERE amount > 1000) TO 'filtered.parquet' (FORMAT PARQUET)\"\n\nDot Commands\nSchema inspection\nCommand\tDescription\n.tables [pattern]\tShow tables (with LIKE pattern)\n.schema [table]\tShow CREATE statements\n.databases\tShow attached databases\nOutput control\nCommand\tDescription\n.mode FORMAT\tChange output format\n.output file\tSend output to file\n.once file\tNext output to file\n.headers on/off\tShow/hide column headers\n.separator COL ROW\tSet separators\nQueries\nCommand\tDescription\n.timer on/off\tShow execution time\n.echo on/off\tShow commands before execution\n.bail on/off\tStop on error\n.read file.sql\tRun SQL from file\nEditing\nCommand\tDescription\n.edit or \\e\tOpen query in external editor\n.help [pattern]\tShow help\nOutput Formats (18 available)\nData export\ncsv - Comma-separated for spreadsheets\ntabs - Tab-separated\njson - JSON array\njsonlines - Newline-delimited JSON (streaming)\nReadable formats\nduckbox (default) - Pretty ASCII with unicode box-drawing\ntable - Simple ASCII table\nmarkdown - For documentation\nhtml - HTML table\nlatex - For academic papers\nSpecialized\ninsert TABLE - SQL INSERT statements\ncolumn - Columns with adjustable width\nline - One value per line\nlist - Pipe-separated\ntrash - Discard output\nKeyboard Shortcuts (macOS/Linux)\nNavigation\nShortcut\tAction\nHome / End\tStart/end of line\nCtrl+Left/Right\tJump word\nCtrl+A / Ctrl+E\tStart/end of buffer\nHistory\nShortcut\tAction\nCtrl+P / Ctrl+N\tPrevious/next command\nCtrl+R\tSearch history\nAlt+< / Alt+>\tFirst/last in history\nEditing\nShortcut\tAction\nCtrl+W\tDelete word backward\nAlt+D\tDelete word forward\nAlt+U / Alt+L\tUppercase/lowercase word\nCtrl+K\tDelete to end of line\nAutocomplete\nShortcut\tAction\nTab\tAutocomplete / next suggestion\nShift+Tab\tPrevious suggestion\nEsc+Esc\tUndo autocomplete\nAutocomplete\n\nContext-aware autocomplete activated with Tab:\n\nKeywords - SQL commands\nTable names - Database objects\nColumn names - Fields and functions\nFile names - Path completion\nDatabase Operations\nCreate table from file\nCREATE TABLE sales AS SELECT * FROM 'sales_2024.csv';\n\nInsert data\nINSERT INTO sales SELECT * FROM 'sales_2025.csv';\n\nExport table\nCOPY sales TO 'backup.parquet' (FORMAT PARQUET);\n\nAnalysis Examples\nQuick statistics\nSELECT\n    COUNT(*) as count,\n    AVG(amount) as average,\n    SUM(amount) as total\nFROM 'transactions.csv';\n\nGrouping\nSELECT\n    category,\n    COUNT(*) as count,\n    SUM(amount) as total\nFROM 'data.csv'\nGROUP BY category\nORDER BY total DESC;\n\nJoin on files\nSELECT a.*, b.name\nFROM 'orders.csv' a\nJOIN 'customers.parquet' b ON a.customer_id = b.id;\n\nDescribe data\nDESCRIBE SELECT * FROM 'data.csv';\n\nPipe and stdin\n# Read from stdin\ncat data.csv | duckdb -c \"SELECT * FROM read_csv('/dev/stdin')\"\n\n# Pipe to another command\nduckdb -csv -c \"SELECT * FROM 'data.parquet'\" | head -20\n\n# Write to stdout\nduckdb -c \"COPY (SELECT * FROM 'data.csv') TO '/dev/stdout' (FORMAT CSV)\"\n\nConfiguration\n\nSave common settings in ~/.duckdbrc:\n\n.timer on\n.mode duckbox\n.maxrows 50\n.highlight on\n\nSyntax highlighting colors\n.keyword green\n.constant yellow\n.comment brightblack\n.error red\n\nExternal Editor\n\nOpen complex queries in your editor:\n\n.edit\n\n\nEditor is chosen from: DUCKDB_EDITOR → EDITOR → VISUAL → vi\n\nSafe Mode\n\nSecure mode that restricts file access. When enabled:\n\nNo external file access\nDisables .read, .output, .import, .sh etc.\nCannot be disabled in the same session\nTips\nUse LIMIT on large files for quick preview\nParquet is faster than CSV for repeated queries\nread_csv_auto and read_json_auto guess column types\nArguments are processed in order (like SQLite CLI)\nWSL2 may show incorrect memory_limit values on some Ubuntu versions"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/CamelSprout/duckdb-cli-ai-skills",
    "publisherUrl": "https://clawhub.ai/CamelSprout/duckdb-cli-ai-skills",
    "owner": "CamelSprout",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/duckdb-cli-ai-skills",
    "downloadUrl": "https://openagent3.xyz/downloads/duckdb-cli-ai-skills",
    "agentUrl": "https://openagent3.xyz/skills/duckdb-cli-ai-skills/agent",
    "manifestUrl": "https://openagent3.xyz/skills/duckdb-cli-ai-skills/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/duckdb-cli-ai-skills/agent.md"
  }
}